我有一个应用程序,它使用rails作为API并使用ember作为前端(使用ember-rails gem)。
在生产和开发过程中,一切都在我的本地机器上完美运行。但是,每次在部署应用程序后运行heroku run rake db:migrate
时,我都会收到以下错误:
PG::UndefinedObject: ERROR: type "json" does not exist
它失败的迁移是:
class AddProjectimageToImages < ActiveRecord::Migration
def change
add_column :images, :project_image, :json
end
end
有谁知道为什么heroku不接受JSON类型并且有解决方法吗?
Ember在从API接收JSON时非常依赖JSON格式正确,所以我希望尽可能保持JSON类型。
答案 0 :(得分:1)
JSON
数据类型9.2
因此,您有两种选择:
1)(推荐)按照以下heroku教程将PG版本升级到(至少)9.2:https://devcenter.heroku.com/articles/upgrading-heroku-postgres-databases
2)将JSON
存储到text
数据类型中,如果您不使用任何postgresql json函数,则可能就足够了。然后,您可以在模型中使用serialize
,以便在保存activerecord模型时处理转换:
class Image < ActiveRecord::Base
serialize :project_images, JSON
end
为防止出现此类问题,我强烈建议您确保不同的环境(dev / staging / prod)使用您需要的任何软件的相同版本