Rake-Aufgaben für mehrere Datenbanken mit unterschiedlichen Schemas

8

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.

    
Paul 23.02.2011, 02:20
quelle

4 Antworten

3

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.

    
wrtsprt 07.08.2013 11:11
quelle
1

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:

%Vor%

Dann können Sie

ausführen %Vor%     
David Waller 23.06.2011 14:51
quelle
1

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.

    
Nikhil Taneja 23.01.2016 13:45
quelle
0

Sie können versuchen loopy mehrere Datenbanken Plugin. Es scheint zu ermöglichen, verschiedene Rake-Konfigurationen einfach zu bestimmen

    
Kyle Macey 23.02.2011 14:14
quelle

Tags und Links