Heroku PG 和 JSON 类型
Heroku PG and JSON Types
我有一个应用程序使用 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
postgresql < 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) 使用相同版本的任何您需要的软件
我有一个应用程序使用 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
postgresql < 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) 使用相同版本的任何您需要的软件