2010-11-22 3 views
0

Ich verwende Schienen 2.3.8. Ich hatte eine Migration für eine Tabelle namens user erstellt, die derzeit viele Datensätze enthält.Schienenmigration: Hinzufügen einer zusätzlichen Spalte zu der Tabelle, für die Datensätze bereits geladen sind

Nun müssen Sie eine neue Spalte hinzufügen.

Ich musste eine neue Migrationsdatei erstellen, da Rollback die anderen Tabellendaten löschen würde. Das Hinzufügen einer neuen Migration funktionierte jedoch nicht.

def self.up 
    add_column "users", "xyz", :string, :default => "0" 
end 

Was könnte der Grund sein?

  • ist es, weil die Daten bereits geladen sind?
  • ist es etwas mit Caching zu tun?

Vielen Dank im Voraus.

+1

Haben Sie den Generator verwendet? Wenn der Zeitstempel älter als die ursprüngliche Migrationsdatei ist, wird nichts unternommen. – elmt

+0

Ja, ich habe den Generator verwendet, um die neue Migration .... script/generate migration add_xyz_to_users zu erstellen. – Rakesh

+0

Zeitstempel sieht gut aus ... – Rakesh

Antwort

1

Im Anschluss an @ ELMT Kommentar, sollten Sie Migrationen erstellen Sie den Befehl in der Schienen-Stammverzeichnis mit:

script/generate migration <your_migration_name> 

Also in Ihrem Fall, dass etwas so sein würde:

script/generate migration add_xyz_to_users 

Diese erstellt einen Dateinamen des Forms db/migrate/20101122183814_add_xyz_to_users.rb. Dort sollten Sie Ihre Migration hinzufügen. Wenn der Dateiname nicht korrekt benannt wird, wird die Migration nicht ausgeführt.

0

Ben wies richtig hin. Möglicherweise liegt dies an der älteren Versionsnummer der Migration. Aber können Sie sagen, welcher Art von Fehler Sie gegenüberstehen? Und ist es während laufender Migration oder was?

Verwandte Themen