Rails rake指定了迁移文件

时间:2013-11-21 06:43:50

标签: ruby-on-rails rake database-migration

我有rake迁移并生成所有表。

现在,我想更改一个表,但我不想更改迁移。我只想删除该表并再次执行命令:

rake db:migrate

但什么都没发生。

所以我想知道,当我删除表格后生成新表格时,我该怎么办?

3 个答案:

答案 0 :(得分:1)

如果您正在运行更改,则应使用:

rake db:rollback
... make changes ...
rake db:migrate

现在要修复它,你必须删除schema_migrations表中的最后一个条目(因为你没有运行我正在猜测的回滚)。

答案 1 :(得分:1)

假设您要更改带有时间戳的迁移:201311211234并且您只想更改此特定迁移而不影响其他表,那么

rake db:migrate:down VERSION=201311211234

然后对该迁移文件进行更改

然后就这样做

rake db:migrate:up VERSION=201311211234

第二个选项是从schema_migrations表中删除版本201311211234的行,然后运行rake db:migrate

答案 2 :(得分:1)

rake db:migrate 

更新架构文件。编写迁移文件时,请确保在self.down中推送代码。因此,当您运行rake db:rollback时,将执行以下命令。您可以手动更改架构文件以解决此问题。

您也可以从控制台运行特定的迁移,但在任何情况下都应该避免使用时间戳从终端运行它。