Rails Migration, um eine Spalte auf null zu setzen => true


75

Ich hatte ursprünglich eine Tabelle mit der Spalte als erstellt

t.string   "email",  :default => "", :null => false

Die Anforderung hat sich geändert und jetzt muss ich zulassen, dass E-Mail null ist. Wie kann ich eine Migration schreiben, um Folgendes auszuführen: null => true


Antworten:


93

Versuchen:

change_column :table_name, :email, :string, :null => true

2
Bitte erwägen Sie die Verwendung, change_column_nullda dies change_columnin bestimmten Versionen möglicherweise nicht funktioniert
Morty Choi

103

Ich konnte die obige Lösung nicht für Active Record 4.0.8 und Postgresql 9.3 verwenden

Allerdings change_column_null perfekt gearbeitet.

change_column_null :users, :email, true

Die Rückseite bietet eine nette Option, um vorhandene Datensätze zu aktualisieren (aber nicht den Standard festzulegen), wenn null nicht zulässig ist.


10
Ich würde empfehlen, dies change_column_defaultzusammen zu verwenden, wenn Sie nullder Standardspaltenwert sein möchten . Sonst wird es sein falseoder 0.
Joshua Pinter
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.