我在迁移中的“self.drop”中有一个错误,因此我无法回滚该迁移。我如何从头开始并从迁移 001 开始构建?另外,有没有办法在不丢失我的数据的情况下做到这一点(它只是测试,但仍然......)
问问题
464 次
3 回答
1
您可以注释 self.down 迁移中的所有语句并回滚到以前的数据库版本。
然后在迁移之前使用 gui/web db 客户端手动应用更改以匹配 db 模式。
之后您将能够再次运行迁移并且您的数据不会丢失。
于 2009-06-18T10:22:29.743 回答
0
rake db:drop
rake db:create
rake db:migrate
它将重置您的数据库并运行所有迁移。如果您不想丢失数据,可以使用插件yaml_db保存它:
rake db:data:dump # stores all data in db/data.yml
...
rake db:data:load # loads db/data.yml to database
如果您在迁移中遇到错误,您可以对其进行编辑,然后尝试回滚。
于 2009-06-17T22:13:59.503 回答
0
我意识到这是一个老问题,但恕我直言仍然相关。如果你想从头开始重新创建你的数据库,一个不回滚并重新运行迁移,一个只做
rake db:setup
这将使用所有迁移的当前组合状态删除、创建和填充数据库。这是因为,绝对在大型系统中,运行所有迁移可能不再有效。但是,运行schema.rb
将始终有效。
我的建议也是尽可能避免回滚迁移,除非您刚刚创建迁移并希望在将迁移推送到您的团队或任何部署之前进行一些添加/错字/修复。
于 2014-05-09T19:07:45.623 回答