【问题标题】:Rails rake specified migrate fileRails rake 指定的迁移文件
【发布时间】:2013-12-05 12:32:21
【问题描述】:

我有 rake migrate 并生成所有表。

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

rake db:migrate

但什么也没发生。

所以我想知道,删除表后rake生成新表应该怎么做?

【问题讨论】:

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


    【解决方案1】:
    rake db:migrate 
    

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

    您也可以从控制台运行特定的迁移,但无论如何都应该避免这样做,而是使用时间戳从终端运行它。

    【讨论】:

      【解决方案2】:

      假设您想更改时间戳为 201311211234 的迁移,并且您只想更改此特定迁移而不影响其他表,然后这样做

      rake db:migrate:down VERSION=201311211234
      

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

      那就做吧

      rake db:migrate:up VERSION=201311211234
      

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          猜你喜欢
          • 2021-03-14
          • 2017-02-18
          • 2016-05-14
          • 1970-01-01
          • 1970-01-01
          • 2011-04-29
          • 2013-07-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多