Verwendung von SQL- und NoSQL-Datenbanken in Single-Rails-Anwendungen (MySQL, PostgreSQL und MongoDB)

Es gibt bestimmte Gründe, warum Sie über die Verwendung verschiedener Datenbanken in Ihrer Ruby on Rails-Anwendung nachdenken sollten. In meiner Situation hatte ich damit gerechnet, große Datenmengen zu speichern. Bedenken Sie, dass die Standarddatenbank MySQL ist. Schreiben Sie in unserer Anwendungsdatei „database.yml“ auf normale Weise Verbindungen für MySQL. Danach müssen wir benutzerdefinierte Dateien erstellen, um Postgresql in derselben Anwendung zu verbinden. Erstellen Sie die benutzerdefinierten Datenbankdateien, um Postgresql zu verbinden Wir werden eine zweite Datenbank mit dem Namen einrichten "Statistiken" Erstellen Sie zunächst die Datei config/database_stats.yml und füllen Sie es wie mit der Konfigurationsdatei der Primärdatenbank. Ihre Datei sieht in etwa so aus: Entwicklung:   Adapter: postgresql   Kodierung: utf8   erneut verbinden: falsch   Datenbank: db_info_development   Pool: 5   Host: localhost   Benutzername: postgres   Passwort: Wir erstellen jetzt ein Verzeichnis, das das Schema und alle Migrationen der Stats-Datenbank enthält. Verzeichnis mit Namen erstellen db_stats im Schienenstamm und kopieren Sie die Struktur wie unten beschrieben –db   -Wandern   schema.rb   Samen.rb –db_stats   -Wandern   schema.rb   Samen.rb Die erstellten Dateien sollten leer sein. Rake-Aufgaben hinzufügen Für den Umgang mit der Statistikdatenbank müssen wir benutzerdefinierte Aufgaben für Erstellung, Migration und andere Funktionen schreiben. Erstellen Sie eine Datei lib/tasks/db_stats.rake mit dem folgenden Inhalt Namespace :stats tun   Namespace :db do |ns|     Aufgabe :drop do       Rake::Task[„db:drop“].invoke     Ende     Aufgabe :erstellen tun       Rake::Task[“db:create”].invoke     Ende     Aufgabe :setup erledigen       Rake::Task[„db:setup“].invoke     Ende     Aufgabe: migrieren tun       Rake::Task[„db:migrate“].invoke     Ende     Aufgabe :rollback tun       Rake::Task[„db:rollback“].invoke     Ende     Aufgabe :seed do       Rake::Task[„db:seed“].invoke     Ende     Aufgabe :Version erledigen       Rake::Task[„db:version“].invoke     Ende     Namespace :schema do       Aufgabe :load do         Rake::Task[“db:schema:load”].invoke       Ende       Aufgabe :dump do         Rake::Task[“db:schema:dump”].invoke       Ende     Ende     Namespace :test do       Aufgabe :vorbereiten tun         Rake::Task[“db:test:prepare”].invoke       Ende     Ende     # Fügen Sie allen hier oben definierten Aufgaben die richtigen Aufgaben hinzu und stellen Sie ihnen diese voran     ns.tasks.each macht |task|       task.enhance [„stats:set_custom_config“] tun         Rake::Task[“stats:revert_to_original_config”].invoke       Ende     Ende   Ende   Aufgabe :set_custom_config tun     # aktuelle Vars speichern     @original_config = {       env_schema: ENV['SCHEMA'],       config: Rails.application.config.dup     }     # legt Konfigurationsvariablen für die benutzerdefinierte Datenbank fest     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“]   Ende   Aufgabe :revert_to_original_config tun     # hat die Konfigurationsvariablen auf die ursprünglichen Werte zurückgesetzt     ENV['SCHEMA'] = @original_config[:env_schema]     Rails.application.config = @original_config[:config]   Ende Ende Sobald die gesamte Einrichtung abgeschlossen ist, können wir die Statistikdatenbank erstellen und ihre erste Migration durchführen:
$ Rake stats:db:create $ Rake Stats:db:migrate
Dadurch wird die Statistikdatenbank-Schemadatei in generiert db_stats/schema.rb. Fügen Sie einen benutzerdefinierten Migrationsgenerator hinzu. Wir können den Rails-Generator nicht verwenden, da der Pfad den fest codiert db/migration. Daher benötigen wir einen benutzerdefinierten Generator, um alle Migrationen für die Statistikdatenbank zu erstellen. Erstellen Sie den Generator in lib/generators/stats_migration_generator.rb und fügen Sie den folgenden Code ein: require 'rails/generators/active_record/migration/migration_generator' Klasse StatsMigrationGenerator < ActiveRecord::Generators::MigrationGenerator source_root File.join(File.dirname(ActiveRecord::Generators::MigrationGenerator. case_method(:create_migration_file) .source_location.first), „templates“)   def create_migration_file     set_local_assigns!     valid_file_name!     migration_template @migration_template, „db_stats/migrate/#{file_name}.rb“   Ende Ende Nachdem dies alles erledigt ist, können wir nun Migrationen für die Statistikdatenbank generieren:
$-Rails g stats_migration migrationsname
Diese Migrationsdatei wird im Migrationsverzeichnis der Statistikdatenbank erstellt db_stats/migrate. Führen Sie anschließend den folgenden Befehl zur Migration aus.
$ Rake Stats:db:migrate
Schließen Sie die Verbindung und die Modelle ab PostgreSQL Wir sind fast fertig. Fügen Sie eine neue Initialisierungsdatei hinzu config/initializers/db_stats.rb und fügen Sie Folgendes ein:
# speichert Statistikdatenbankeinstellungen in globaler Variable DB_STATS = YAML::load(ERB.new(File.read(Rails.root.join(„config“,database_stats.yml“))).result)[Rails.env]
Mongodb konfigurieren: Mongoid Gem ist ein ODM-Framework (Object-Document-Mapper) für MongoDB in Ruby.
gem 'mongoid', '~> 5.1.0'
Sie können eine Konfigurationsdatei generieren, indem Sie den Generator ausführen. Mongoid kümmert sich dann von dort aus um alles Weitere.
$ Schienen g mongoid:config
Dann entsteht mongoid.yml wie nachstehend Entwicklung:     Kunden:         Standard:             Datenbank: mongoid             Gastgeber:                 -localhost:27017 Jetzt haben wir das erfolgreich in unsere Anwendung integriert MySQL, postgresql Und mongodb Betrachten Sie drei Modelle – Benutzer, Produkt, Bild. Die Verwendung dieser drei Modelle wird uns helfen, verschiedene Datenbanken in unserer Anwendung zu verbinden. Benutzermodell mit MySQL-Anbindung Klasse User < ActiveRecord::Base Ende $ Rails G Migration create_users field_names rake db:migrieren Diese Migrationsdatei wird unter db/migrate erstellt und in der MySQL-Datenbank gespeichert. Klasse Produkt < ActiveRecord::Base     etablieren_Verbindung DB_STATS Ende $ Schienen g stats_migration create_products       Erstellen Sie db_stats/migrate/20151201191642_create_products.rb Diese Migrationsdatei wird im Migrationsverzeichnis der Statistikdatenbank db_stats/migrate erstellt. Klassenbild     Mongoid::Document einschließen     Feld: Name, Typ: String     Feld: Beschreibung, Typ: Zeichenfolge Ende Da dies der Fall ist, müssen keine Migrationen für Mongodb durchgeführt werden ODM. Diese Daten werden unter erstellt MongoDB. Fühlen sich frei kontaktiere uns wenn Sie Fragen haben.
Katneni Naga Sai Tejaswi
Sr. Softwareentwickler

Abonnieren Sie die neuesten Updates

zusammenhängende Posts

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

de_DEGerman