【发布时间】:2015-08-18 10:06:11
【问题描述】:
我正在尝试测试从 version=0 到最新版本的迁移,但是当我运行 rake db:migrate version=0 时,它不会删除任何表。
为什么?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4
我正在尝试测试从 version=0 到最新版本的迁移,但是当我运行 rake db:migrate version=0 时,它不会删除任何表。
为什么?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4
不要自始至终测试您的迁移。迁移只是为了对数据库应用更改,而不是从头开始构建它 - 这就是 schema.rb 的用途。
要从头开始重建您的数据库,请使用rake db:schema:load,它将从schema.rb 构建您的数据库。
事实上,关于迁移,有些人甚至会删除旧的迁移,并且已经在需要运行的任何地方运行。真的,没有必要把它们留在身边。
一次必须运行的迁移越多,出现问题的可能性就越大。甚至不要费心去尝试,这是徒劳的练习。你永远不需要这样做。
【讨论】:
ActiveRecord::Schema.define(version: xxxxx) do 中放置什么版本?
您可以尝试 $ bundle exec rake db:rollback 来卸载前一个表。
【讨论】: