我发现了几个关于编辑迁移的类似问题,但我不能解决这个问题。我进行了一次rails迁移,然后打开迁移文件并在字段中添加了一个默认值选项。然后运行rake db:migrate。默认值将按预期进行填充。经过几次迁移后,我决定删除默认值选项。我该怎么做?
如果这是我做的最后一次迁移,我会使用db:rollback并重新创建,但由于是在几次迁移之前完成的,我不确定如何修复这个问题。
感谢你的帮助。
发布于 2014-08-18 06:08:16
创建新的迁移并使用change_column_default
。
http://apidock.com/rails/ActiveRecord/ConnectionAdapters/SchemaStatements/change_column_default
为列设置新的默认值:
change_column_default(:suppliers,:suppliers,‘新建’) change_column_default(:accounts,:authorized,1)
将默认值设置为nil实际上会删除默认值:
用户(:change_column_default,:email,nil)
发布于 2018-05-17 11:29:23
Rails 5+
传递包含:from
和:to
的散列将使此更改成为可逆的迁移:
change_column_default(:posts, :state, from: nil, to: "draft")
因此,我建议在可能的情况下使用这种格式。
https://stackoverflow.com/questions/25357171
复制相似问题