【发布时间】:2015-09-22 07:07:30
【问题描述】:
我正在尝试将我的Address 表的text 属性添加为我的Brewery 表的address 属性,然后删除Address 表。在 git push heroku master 之后,我通过运行 heroku run rake db:migrate 在 Heroku 上执行此操作。
我为数据创建新字段的第一次迁移工作正常。但是我的第二次迁移立即失败-它说找不到Address 表。我的第三次迁移从未运行,但它应该删除Address 表以整理所有内容。
我做错了什么?这些迁移在我的本地机器上工作,但在 Heroku 上失败:
1:
class AddAddressStringToBrewery < ActiveRecord::Migration
def change
add_column :breweries, :address, :string
end
end
2:
class MoveAddressToString < ActiveRecord::Migration
def change
Address.all.each do |address|
brewery = address.brewery
brewery.update(address: address.text)
end
end
end
3:
class DropAddressTable < ActiveRecord::Migration
def change
drop_table :addresses
end
end
我最好的猜测是 Heroku 在运行我的迁移之前正在读取我的架构并删除表。我总是可以在单独的 git 提交中进行这些迁移以强制它工作,但我真的很想知道我哪里出错了。
谢谢!
【问题讨论】:
-
所以你的最终目标是删除
addresses表?为什么在这种情况下其他迁移很重要? -
我的最终目标是在删除之前将数据从addresses表中迁移出来。
标签: ruby-on-rails heroku rails-migrations