Migration von Rails 4: So ordnen Sie Spalten neu an
Habe ich gelernt, dass add_column
hat eine :after
option, um festzulegen, wo die Spalte eingefügt wird. Schade, ich erfuhr es :nach dem hinzufügen einer Reihe.
Wie kann ich schreiben Sie eine migration einfach die Spalten neu anzuordnen?
Kommentar zu dem Problem - Öffnen
Könnten Sie dump Sie die Datenbank zum speichern der Daten ; neu -, um Ihr Schema.rb zu setzen, die Zeitstempel-Spalten am Ende des create_table-block ; run
rake db:drop db:create db:migrate
und dann re-importieren Sie Ihre Daten Nun, das ist eine nicht dokumentierte Funktion : Lesen Sie Kern-Quellen, um es zu finden. Nur zur Information, ich habe rename_column-code : nicht bieten dieses feature (sorry, das es nicht hilft).
Die Verwendung von SQL in einer migration. stackoverflow.com/questions/4095481/...
@Zabba Das ist keine schlechte Idee. Könnten Sie senden Sie als Antwort, vorzugsweise mit etwas code zu zeigen, die syntax für die Ausführung von roh-MySQL in einer migration.
Ich wies darauf hin, eine andere Antwort auf SO, doch Stefan zeigt einen schönen Weg, es zu tun, ohne SQL..
InformationsquelleAutor der Frage emersonthis | 2013-09-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie anrufen
change_column
, aber müssen Sie die Spalte Typ (einfach kopieren und einfügen von anderen die migration):Oder wenn Sie neu anordnen in mehreren Spalten in einer Tabelle:
change_column
AnrufeALTER TABLE
unter der Haube. Aus der MySQL -Dokumentation:InformationsquelleAutor der Antwort Stefan
Stefan ' s Lösung ist perfekt, wenn man den Umgang mit nur einer Handvoll von Spalten. Wenn Sie mehrere Spalten werden neu angeordnet UND zufällig auf einem Mac, ich schlage vor, Sie nehmen einen Blick auf Sequel Pro, eine nette Datenbank-management-tool, das macht re-Bestellung, Datenbank-Spalten ein Kinderspiel. Einfach per drag-and-drop.
PS: ich bin nicht verbunden mit Ihnen in irgendeiner Weise.
InformationsquelleAutor der Antwort Tintin81