【发布时间】:2018-12-12 03:47:20
【问题描述】:
关于迁移的问题: 几个月前我有一张桌子叫payment 然后我们写了一个迁移并删除了它
现在我又想要那个payment表了
我生成了一个迁移,但是当我迁移它时它实际上会下降并且不会创建付款。
请问,有人可以指导我吗?助教
【问题讨论】:
-
您能发布您的迁移文件和架构吗?
标签: ruby-on-rails ruby activerecord
关于迁移的问题: 几个月前我有一张桌子叫payment 然后我们写了一个迁移并删除了它
现在我又想要那个payment表了
我生成了一个迁移,但是当我迁移它时它实际上会下降并且不会创建付款。
请问,有人可以指导我吗?助教
【问题讨论】:
标签: ruby-on-rails ruby activerecord
这取决于您如何放下桌子。
迁移的工作原理
无论何时创建迁移,它都有自己的时间戳,当您运行 rake db:migrate 时,它将运行 up 方法(在您的情况下创建表)并将该迁移的时间戳存储在 schema_migrations 表中。
您可以使用以下方法检查您的数据库中是否存在 payments 表,
ActiveRecord::Base.connection.tables.include? 'payments'
case - 如果你没有通过 rails 迁移删除表(通过控制台或外部源),那么 schema_migrations 将不会清除创建 payments 表的迁移时间戳(运行下降方法可以清除时间戳)。但添加新的迁移以使用新时间戳创建 payments 表不会影响您。
如果仍然没有帮助,这完全取决于您在“创建付款表”迁移文件中写入的内容,其中调用的方法必须是 change 或 up(附加信息)。
【讨论】: