【发布时间】:2017-05-07 07:12:33
【问题描述】:
我正在为我的数据库(基本版)使用 Heroku Postgres 插件。 Ruby Sequel 是我用于模式管理的 ORM。
最近,一些迁移没有更新数据库架构。
我运行迁移 19, 019_add_last_unique_story_to_user.rb:
Sequel.migration do
up do
alter_table(:state_tables) do
add_column :last_unique_story, Integer, default: 0
add_column :last_unique_story_read?, TrueClass, default: true
end
end
down do
alter_table(:state_tables) do
drop_column :last_unique_story
drop_column :last_unique_story_read?
end
end
end
这会将 DB[:schema_info] 从版本 18 更新到 19,但不会将任何列添加到 :state_table 表中。生产数据库和本地数据库都存在此问题。我已尝试多次迁移并检查数据库 url 是否正确。
我的快速修复:
我将上述代码复制并粘贴到 20th 迁移 020_test.rb 中,然后运行我的 rake 迁移任务 rake db:migrate:up。这成功地更新了数据库。
有人知道这里会发生什么吗?为什么有些迁移运行成功,更新了迁移版本,却没有更新任何列?这可能是命名问题、缓存问题还是 Heroku 问题?谢谢你的帮助!
【问题讨论】:
标签: ruby heroku sequel heroku-postgres sequel-gem