我使用Rails 3.12。另外,我使用PostgreSQL。 我会在迁移时更改my字段的默认值。
change_column :tables, :field, :integer, :default => nil
change_column_default :tables, :field,nil
我测试了这些说明,但都没有。
你能帮帮我吗? 谢谢答案 0 :(得分:0)
您的命令应该有效。我认为第二个更好。但是,可能是在生成迁移时,如:
rails g migration change_column_default :tables, :field, nil
它会在db目录中的migrate目录中生成一个迁移文件,但如果检查它,则生成的迁移文件为空。我不知道为什么会发生这种情况。所以当你运行
rake db:migrate
实际上什么都没做。
我认为你应该做的事情:
进入迁移目录中生成的迁移文件并添加:
change_column_default :tables, :field, nil
在更改方法中。 然后运行rake db:migrate。 运行rails console并测试一些数据。 NB:更改postgresql列的默认值不会影响现有行。它仅影响5.5.5 here
部分中所述的未来插入