Schienenmigration: Einschränkung entfernen

135

Ich habe eine Tabelle in einer Rails-Anwendung, die (in schema.rb) wie folgt aussieht:

create_table "users", :force => true do |t|
   t.string "name", :null=>false
   t.string "address", :null=>false
end

Ich möchte eine Rails-Migration schreiben, um Nullen für das Adressfeld zuzulassen. dh nach der Migration sieht die Tabelle folgendermaßen aus:

create_table "users", :force => true do |t|
   t.string "name", :null=>false
   t.string "address"
end

Was muss ich tun, um die Einschränkung zu entfernen?

Jay Godse
quelle

Antworten:

247

In Rails 4+ können Sie Folgendes verwenden, um die Nicht-Null-Einschränkung zu entfernen change_column_null:

change_column_null :users, :address, true
deepak
quelle
Hast du das tatsächlich versucht? Wenn Sie sich den Quellcode für die Funktion ansehen, sehen Sie nichts als:raise NotImplementedError, "change_column_null is not implemented"
Drusepth
3
habe es in postgresql verwendet. Rails definiert es im datenbankspezifischen Adapter, siehe postgres , mysql . kann in apidock nach anderen suchen . Also muss der Datenbankadapter auf Unterstützung überprüft werden, falls jemand einenNotImplementedError
deepak
1
Upvote! Hier ist auch der Link zu den Rails-Guides .
McKain
1
Dies sollte die ausgewählte Antwort sein
nahtnam