J'ai une table dans une application Rails) qui (dans schema.rb) ressemble à:
create_table "users", :force => true do |t|
t.string "name", :null=>false
t.string "address", :null=>false
end
Je voudrais écrire une Rails migration pour autoriser les valeurs NULL pour le champ d'adresse. Autrement dit, après la migration, le tableau se présente comme suit:
create_table "users", :force => true do |t|
t.string "name", :null=>false
t.string "address"
end
Que dois-je faire pour supprimer la contrainte?
Pas sûr que vous puissiez appeler t.address
? Quoi qu'il en soit ... je voudrais utiliser change_column
ainsi
change_column :users, :address, :string, :null => true
Docs ... http://apidock.com/Rails/ActiveRecord/ConnectionAdapters/SchemaStatements/change_column
Dans Rails 4+ afin de supprimer la contrainte non nulle, vous pouvez utiliser change_column_null
:
change_column_null :users, :address, true