我在删除我在迁移中创建的表时遇到问题。
执行rake db:migration VERSION=0
似乎是成功的但是查看mysql表仍然存在且schema.rb
数据未被删除。
def up
create_table :subjects do |t|
t.string "name"
t.integer "position"
t.boolean "visible", :default => false
t.timestamps
end
def down
drop_table :subjects
end
错字编辑:主题 - >受试者
只有在我使用def down
时才会发生这种情况。 def change
没有问题,删除了表格。
答案 0 :(得分:1)
你应该这样重写:
def up
drop_table :subjects
end
def down
create_table :subjects do |t|
t.string "name"
t.integer "position"
t.boolean "visible", :default => false
t.timestamps
end
end
注意如何使用:主题而不是:主题。
在此之后,您现在应该运行rake db:migrate
。要恢复表,请运行rake db:rollback
。 up
方法应描述迁移和down
方法回滚
答案 1 :(得分:1)
您的迁移很好,但需要drop_table :subjects
而不是drop_table :subject
答案 2 :(得分:0)
请尝试:
rake db:migrate:down VERSION=xxx
其中xxx
是您的迁移文件的版本。例如,如果您的迁移文件名为20160710042640_create_subjects.rb
,则运行db:migrate:down VERSION=20160710042640