Utilizzo di database SQL e NoSQL in applicazioni Single Rails (MySQL, PostgreSQL e MongoDB)

Ci sono ragioni distintive per cui dovresti pensare di avere vari database nella tua applicazione Ruby on Rails. Nella mia situazione, mi aspettavo di archiviare grandi quantità di dati. Considera che il database predefinito è MySQL. Nel nostro file database.yml dell'applicazione scriviamo le connessioni per MySQL in modo normale. Successivamente, per connettere postgresql nella stessa applicazione dobbiamo creare file personalizzati. Crea i file di database personalizzati per connettere postgresql Creeremo un secondo database chiamato “Statistiche” Prima di tutto, crea il file config/database_stats.yml e popolarlo come si fa con il file di configurazione del database primario. Il tuo file sarà simile a questo: sviluppo:   adattatore: postgresql   codifica: utf8   riconnettersi: falso   banca dati: db_info_development   piscina: 5   ospite: host locale   nome utente: postgres   parola d'ordine: Creeremo ora una directory che conterrà lo schema e tutte le migrazioni del database Stats. Crea directory con nome db_stats nella radice dei binari e copia la struttura come indicato di seguito –db   -migrare   schema.rb   semi.rb –db_stats   -migrare   schema.rb   semi.rb I file creati dovrebbero essere vuoti. Aggiungi attività Rake Per gestire il database delle statistiche, dobbiamo scrivere attività personalizzate per la creazione, le migrazioni e altre funzionalità. Crea un file lib/tasks/db_stats.rake con il contenuto seguente namespace :stats lo fanno   spazio dei nomi :db do |ns|     compito: lascia fare       Rake::Task[“db:drop”].invoke     FINE     compito: creare fare       Rake::Task[“db:crea”].invoke     FINE     compito: installazione da eseguire       Rake::Task[“db:setup”].invoke     FINE     compito: migrare fare       Rake::Task[“db:migrate”].invoke     FINE     compito: eseguire il rollback       Rake::Task[“db:rollback”].invoke     FINE     compito: semina fai       Rake::Task[“db:seed”].invoke     FINE     compito: versione do       Rake::Task[“db:versione”].invoke     FINE     namespace :schema do       compito: carica, fai         Rake::Task["db:schema:load"].invoke       FINE       compito: scaricalo         Rake::Task["db:schema:dump"].invoke       FINE     FINE     spazio dei nomi: test da eseguire       compito: preparare fare         Rake::Task[“db:test:prepare”].invoke       FINE     FINE     # aggiunge e antepone i compiti propri a tutti i compiti definiti qui sopra     ns.tasks.each esegue |attività|       task.enhance ["stats:set_custom_config"] fare         Rake::Task[“stats:revert_to_original_config”].invoke       FINE     FINE   FINE   attività: set_custom_config esegui     # salva le var correnti     @config_originale = {       env_schema: ENV['SCHEMA'],       configurazione: Rails.application.config.dup     }     # imposta le variabili di configurazione per il database personalizzato     ENV['SCHEMA'] = “db_stats/schema.rb”     Rails.application.config.paths['db'] = ["db_stats"]     Rails.application.config.paths['db/migrate'] = ["db_stats/migrate"]     Rails.application.config.paths['db/seeds'] = ["db_stats/seeds.rb"]     Rails.application.config.paths['config/database'] = ["config/database_stats.yml"]   FINE   attività: ripristina_to_originale_config esegui     # ripristina le variabili di configurazione sui valori originali     ENV['SCHEMA'] = @original_config[:env_schema]     Rails.application.config = @original_config[:config]   FINE FINE Una volta completata tutta questa configurazione, possiamo creare il database delle statistiche ed eseguire la prima migrazione:
Statistiche rake $:db:crea Statistiche rake $:db:migrazione
Questo genererà il file di schema del database Stats in db_stats/schema.rb. Aggiungi un generatore di migrazione personalizzato Non possiamo utilizzare il generatore di binari perché il percorso codifica il file db/migrazione. Pertanto, è necessario disporre di un generatore personalizzato per creare tutte le migrazioni per il database delle statistiche. Crea il generatore in lib/generators/stats_migration_generator.rb e incolla il seguente codice: require 'rotaie/generatori/active_record/migration/migration_generator' class StatsMigrationGenerator < ActiveRecord::Generators::MigrationGenerator source_root File.join(File.dirname(ActiveRecord::Generators::MigrationGenerator. example_method(:create_migration_file) .source_location.first), “templates”)   def crea_file_di_migrazione     set_local_assigns!     convalida_nome_file!     migrazione_template @migration_template, “db_stats/migrate/#{nome_file}.rb”   FINE FINE Con tutto ciò a posto, ora possiamo generare migrazioni per il database Stats:
$ rails g stats_migration nome_migrazione
Questo file di migrazione viene creato nella directory di migrazione del database delle statistiche db_stats/migrate. Successivamente, esegui il comando seguente per eseguire la migrazione.
Statistiche rake $:db:migrazione
Finalizzare la connessione e i modelli per PostgreSQL Abbiamo quasi finito. Aggiungi un nuovo file di inizializzazione config/initializers/db_stats.rb e incolla quanto segue:
# salva le impostazioni del database delle statistiche nella var globale DB_STATS = YAML::load(ERB.new(File.read(Rails.root.join(“config”,”database_stats.yml”))).result)[Rails.env]
Configurazione di mongodb: Mongoid gem è un framework ODM (Object-Document-Mapper) per MongoDB in Ruby.
gemma 'mongoide', '~> 5.1.0'
È possibile generare un file di configurazione eseguendo il generatore. Mongoid gestirà quindi tutto il resto da lì.
Guide $ g mongoid:config
Quindi crea mongoid.yml come sotto sviluppo:     clienti:         predefinito:             banca dati: mongoide             ospiti:                 -hostlocale:27017 Ora nella nostra applicazione abbiamo integrato con successo il file MySQL, postgresql E mongodb Consideriamo tre modelli: Utente, Prodotto, Immagine. L'utilizzo di questi tre modelli ci aiuterà a connettere diversi database nella nostra applicazione. Modello utente con connessione MySQL classe Utente < ActiveRecord::Base FINE $ guida la migrazione create_users field_names rake db:migrare Questo file di migrazione viene creato in db/migrate e verrà archiviato nel database MySQL. classe Prodotto < ActiveRecord::Base     stabilire_connessione DB_STATS FINE $ binari g stats_migration create_products       creare db_stats/migrate/20151201191642_create_products.rb Questo file di migrazione viene creato nella directory di migrazione del database delle statistiche db_stats/migrate. immagine di classe     includere Mongoid::Documento     campo:nome, tipo: Stringa     campo: descrizione, tipo: Stringa FINE Non è necessario eseguire alcuna migrazione per mongodb poiché lo è ODM. Questi dati vengono creati sotto MongoDB. Sentiti libero di Contattaci se hai qualche domanda
Katneni Naga Sai Tejaswi
Sviluppatore software senior

Iscriviti per gli ultimi aggiornamenti

Articoli correlati

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

it_ITItalian