【发布时间】:2018-01-04 22:38:19
【问题描述】:
我有一个数据库列作为整数设置为限制 19。它在 localhost 上工作正常,因为我有 sqlite。但我无法在 Heroku pg 数据库上迁移。
class AdddivIdToLocations < ActiveRecord::Migration
def change
add_column :locations, :div_id, :integer, :limit => 19
end
end
然后我尝试将列从整数更改为字符串,这样会更好。但是因为它无法进行heroku run rake db:migrate 我无法更改列类型。我该怎么办?
class AdddivIdToLocationsTypeChange < ActiveRecord::Migration
def self.up
change_table :locations do |t|
t.change :div_id, :string
end
end
def self.down
change_table :locations do |t|
t.change :div_id, :integer
end
end
end
【问题讨论】:
-
您不能删除
AdddivIdToLocations迁移并添加一个新的迁移,以将列创建为字符串吗?在此过程中,您可能不得不弄乱您的开发 SQLite 数据库,但这只是提醒您,您不应该在 SQLite 上进行开发并在 PostgreSQL 上进行部署。我强烈建议在您的开发环境中安装 PostgreSQL,以便您的所有三个环境(开发、测试、生产)都使用相同的堆栈。
标签: ruby-on-rails sqlite heroku pg