2016-04-19 4 views
0

Ich habe zwei ähnliche Rails App und verwenden eine gemeinsame DB und basierend auf der Anforderung müssen wir Migration auf beiden App hinzufügen. jetzt, was ich ich willZwei ähnliche Anwendungen teilen eine DB muss die Migration auf einer App basierend auf Anforderung hinzufügen und sollte von anderen App

- Add a migration on app1 
- run rake db:migrate one app2 

Es muss Migration vorhanden auf app1 laufen und umgekehrt ist es möglich?

Im einfachen jede Migration hinzugefügt werden auf jeder App sollte update DB wenn rake db: migrieren auf andere app.

Ich denke, wir können mit Schienen Motor, aber nicht sicher, wie, irgendein Vorschlag?

+0

Ich möchte nicht die gleiche Migration für jede App kopieren – Thorin

+0

Können Sie erklären, warum Sie eine Migration auf app2 ausführen müssen? Es ist eine schlechte Idee, zwei Apps mit Migrationen in derselben Datenbank zu haben. Sie werden unweigerlich Konflikte haben. Lieber alles in einem db. –

Antwort

0

Ist es eine gemeinsame Datenbank oder ein allgemeines Schema?

Wenn es sich tatsächlich um eine gemeinsam genutzte Datenbank handelt, müssen Sie die Migration nur einmal ausführen und nur die Migrationen in einer der beiden Anwendungen speichern. Änderungen, die über eine Anwendung an der Datenbank vorgenommen werden, wirken sich sofort auf die andere Anwendung aus.

+0

Es ist gemeinsame Datenbank – Thorin

+0

Dann, sobald Sie in db1 migrieren, wird es in db2 widerspiegeln –

+0

Nein habe ich gemeinsame db, sobald eine Migration auf app1 und Rake db hinzugefügt: migrieren auf app2 sollte es in DB widerspiegeln, scheint es albern Frage aber in meinem Fall brauche ich diese – Thorin

0

In Ihrem anderen App, diese Rake Aufgabe auszuführen:

bundle exec rake db:schema:dump 

Diese werden ein Schema aus der Datenbank generieren, kann keine Notwendigkeit für die Migration copied.But ohne app1, app2 nicht richtig funktionieren.