我正在研究我的ruby on rails项目,当我运行heroku db:migrate时,我收到有关列不存在的错误。
我知道这是因为我有一个我手动编辑的迁移文件,用于删除我之前创建的列而不是创建新的迁移文件。
我删除了remove_column行并迁移了db我的本地数据库但是当我将它迁移到heroku时,它仍会运行迁移文件以删除列,即使该行不再存在于实际文件中。
我删除了我的数据库并再次加载了架构,但仍然发生了heroku错误。
答案 0 :(得分:0)
您是否在更改文件后将提交推送到heroku?
答案 1 :(得分:0)
这是你的问题
我有一个我手动编辑的迁移文件,用于删除我之前创建的列,而不是创建新的迁移文件。
为什么呢?因为迁移文件就像是以非常特定的顺序放置的一系列互连链接,因此当raked允许您重新创建数据库时,例如,生成服务器。如果您打扰其中一个链接,那么构建数据库所需的链就会被破坏,正如您所观察到的那样。这是迁移文件具有特定时间戳的原因之一,它们是用于创建,执行和保存的唯一实体。
现在,您的迁移链已经崩溃了。 有几种选择: