Ich arbeite an einer Rails 3-Anwendung für mehrere Datenbanken. Jede Datenbank hat ein anderes Schema (und in der Produktion befinden sich an verschiedenen Orten). Ich habe die App so eingestellt, dass sie mit verschiedenen Datenbanken wie folgt kommuniziert:
datenbank.yml
%Vor%models / other_base.rb
%Vor%models / some_model.rb
%Vor%Nun, das funktioniert gut für die Web-App, aber nicht so gut für das Ausführen von Rake-Tasks, einschließlich Tests (Fixtures werden nicht korrekt geladen). Gibt es dafür einen Edelstein? Jede Hilfe wird geschätzt.
Außerdem wäre es nett, eine schema.rb-Datei zu erstellen, die die verschiedenen Schemas für verschiedene DBs verarbeiten könnte - das würde mir erlauben, Dinge wie rake db: create oder db: setup zu tun und mehrere Datenbanken erstellen zu lassen mit dem datenbankspezifischen Schema.
Ich finde die Verwendung von Umgebungen in diesem Fall als nicht akzeptablen Hack. Sie möchten zwei Datenbanken in derselben Umgebung haben.
Während ich selbst diese Frage recherchierte, stieß ich auf einen Kern des GitHub-Benutzers rafaelchiti . Leider hat er den ursprünglichen Inhalt entfernt. Sie können eine Kopie davon hier finden.
Ich hatte das gleiche Problem und nachdem ich eine halbe Stunde lang nach dem 'loopy_multiple_database'-Plugin gesucht hatte, kam ich zu dem Schluss, dass es aus dem Gesicht des Webs verschwunden war und auf Monkey-Patching der Rails-Rechenaufgaben . Die einzige Aufgabe, die ich beheben wollte, war db:migrate
, aber der gleiche (hässliche) Prozess würde es dir erlauben, auch andere Aufgaben zu patchen.
Fügen Sie unter Rails 3 eine Datei db_migrate_override.rake
hinzu (jeder * .rake Name wird es tun) in lib/tasks
like so:
Dann können Sie
ausführen %Vor%Sie können versuchen, Octopus gem ( Ссылка ) zu verwenden, es hilft Ihnen bei der Einrichtung mehrerer Datenbanken und ist mit Rails 3.2 und Rails kompatibel 4. Mit diesem Juwel können Sie leicht die Datenbank angeben, für die Sie die Migrationen ausführen möchten.
Sie können versuchen loopy mehrere Datenbanken Plugin. Es scheint zu ermöglichen, verschiedene Rake-Konfigurationen einfach zu bestimmen
Tags und Links ruby-on-rails rake-task