Derzeit arbeite ich mit einer riesigen Rails-Anwendung und mehreren Filialen mit jeweils einer neuen Funktion für diese Anwendung. Es passiert viel, ein Feature erfordert Migrationen, was kein Problem sein sollte, bis Sie es mit Master zusammenführen: schema.rb wurde mit den Informationen Ihrer dev-Datenbank aktualisiert!schema.rb vermasselt wegen Migrationen in anderen Branchen
Zur Klarstellung:
1. Branch A has migration create_table_x
2. Branch B has migration create_table_y
3. Branch A adds another create_table_z and runs db:migrate
4. You want to merge Branch A with Master and you see table_x, table_y and table_z in the schema.rb of Branch A.
Es ist keine Option + zurücksetzen die Datenbank in einem Zweig vor jeder Migration Saatgut oder eine Datenbank pro Zweig erstellen. Aufgrund der großen Größe von 2 GB SQL-Daten wäre es nicht praktikabel.
Meine Frage:
Ist es wirklich erforderlich schema.rb im Repository zu halten, da sie jede Migration wieder aufgebaut wird?
Wenn ja, ist es möglich, ein Schema aus den Migrationen anstelle des Datenbank-Dumps zu erstellen?
Ich denke, Sie sollten Ihre schema.rb in Ihrem Repository behalten. Es könnte passieren, dass jemand die Migrationsdateien aufräumt und ein paar ungenutzte Migrationen aus der Vergangenheit löscht ... und wenn Sie kein einheitliches Schema haben.rb könnte ich in Unordnung geraten. Die Schemadatei wird bei jeder Migration aktualisiert und nicht vollständig neu erstellt. aber trotzdem eine interessante Frage. – Mattherick
Ja, das Problem ist, dass es von der aktuellen Datenbankstruktur generiert wird, unabhängig davon, ob die Tabellen in der Datenbank in der übergeordneten oder der Zweigstelle, in der Sie sich befinden, hinzugefügt wurden. Das meine ich mit 'neu erstellt'. Ich hoffe, dass jemand einen schöneren Weg kennt, die Datenbank vom Master jedes Mal zu fallen/zu kopieren, wenn Sie einen Zweig mit Migrationen wechseln :) – Vikko
Mögliches Duplikat von [Was ist der bevorzugte Weg, um schema.rb in git zu verwalten?] (Http: // stackoverflow .com/questions/737854/what-is-the-preferred-way-to-manage-schema-rb-in-git) – Tachyons