如何在迁移轨道中更改postgresql上的列?

时间:2015-11-20 16:50:02

标签: ruby-on-rails postgresql migration

我使用Rails 3.12。另外,我使用PostgreSQL。 我会在迁移时更改my字段的默认值。

change_column :tables, :field, :integer, :default => nil
change_column_default :tables, :field,nil

我测试了这些说明,但都没有。

你能帮帮我吗? 谢谢

1 个答案:

答案 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

部分中所述的未来插入