Ich habe das Problem, dass ich eine Migration in Rails habe, die eine Standardeinstellung für eine Spalte festlegt, wie in diesem Beispiel:
def self.up
add_column :column_name, :bought_at, :datetime, :default => Time.now
end
Angenommen, ich möchte diese Standardeinstellungen in einer späteren Migration löschen. Wie mache ich das mit Rails-Migrationen?
Meine aktuelle Problemumgehung ist die Ausführung eines benutzerdefinierten SQL-Befehls in der Rails-Migration wie folgt:
def self.up
execute 'alter table column_name alter bought_at drop default'
end
Dieser Ansatz gefällt mir jedoch nicht, da ich jetzt davon abhängig bin, wie die zugrunde liegende Datenbank diesen Befehl interpretiert. Im Falle einer Änderung der Datenbank funktioniert diese Abfrage möglicherweise nicht mehr und die Migration wird unterbrochen. Gibt es eine Möglichkeit, das Rückgängigmachen einer Standardeinstellung für eine Spalte in Schienen auszudrücken?
CHARACTER VARYING
Spalten nicht gelöscht, sondern nur auf gesetztNULL::character varying
.