我为我的 Rails 安装设置了一个数据库,并设置了一些迁移。我希望能够将我的数据库重置为没有表/约束/等,但是在不知道迁移次数或第一次迁移的时间戳的情况下找不到合理的方法来执行此操作。这是我看到的选项:
rake 数据库:迁移:重置
rake db:migrate:down VERSION=20090701154839
其中 20090701154839 是与第一次迁移关联的时间戳rake db:rollback STEP=15
其中有 15 次迁移
db:migrate:reset
的问题是它首先删除数据库(它会执行 db:drop
、db:create
、然后 db:migrate
).
db:migrate:down
的问题是我不想编码开头的 VERSION。
db:rollback
的问题是我不知道它回到开始的步骤数。
我有哪些选择?
最佳答案
rake db:migrate VERSION=0
即使您使用的是较新的带时间戳的迁移文件,它也能正常工作。
更新:我刚刚在 Rails 3.2.1 上测试了它,它仍然有效。它运行 schema_migrations
已知的所有迁移的“向下”部分。我不知道它是否适用于 3.1,但下面的评论表明此功能在那段时间被破坏了。
关于ruby-on-rails - 如何在不首先删除数据库的情况下将带有 Rails 的数据库迁移到第一个修订版?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1196310/