【问题标题】:table which has been dropped before - create migration again之前已删除的表 - 再次创建迁移
【发布时间】:2018-12-12 03:47:20
【问题描述】:

关于迁移的问题: 几个月前我有一张桌子叫payment 然后我们写了一个迁移并删除了它

现在我又想要那个payment表了

我生成了一个迁移,但是当我迁移它时它实际上会下降并且不会创建付款。

请问,有人可以指导我吗?助教

【问题讨论】:

  • 您能发布您的迁移文件和架构吗?

标签: ruby-on-rails ruby activerecord


【解决方案1】:

这取决于您如何放下桌子。

迁移的工作原理

无论何时创建迁移,它都有自己的时间戳,当您运行 rake db:migrate 时,它将运行 up 方法(在您的情况下创建表)并将该迁移的时间戳存储在 schema_migrations 表中。

您可以使用以下方法检查您的数据库中是否存在 payments 表,

ActiveRecord::Base.connection.tables.include? 'payments'

case - 如果你没有通过 rails 迁移删除表(通过控制台或外部源),那么 schema_migrations 将不会清除创建 payments 表的迁移时间戳(运行下降方法可以清除时间戳)。但添加新的迁移以使用新时间戳创建 payments 表不会影响您。

如果仍然没有帮助,这完全取决于您在“创建付款表”迁移文件中写入的内容,其中调用的方法必须是 change 或 up(附加信息)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 2017-09-03
    • 2014-07-13
    • 1970-01-01
    • 1970-01-01
    • 2021-06-09
    • 2013-09-24
    相关资源
    最近更新 更多