heroku部署中的字符变化错误

时间:2014-05-25 15:02:53

标签: ruby-on-rails heroku

我在部署到heroku时出现问题,但我的应用在本地工作正常。我得到了:

PG::UndefinedFunction: ERROR:  operator does not exist: character varying = integer
LINE 1: ...category_id" = 1 AND "questions"."start_language" = 1 AND "q...
                                                         ^
HINT:  No operator matches the given name and argument type(s). You might need to add     explicit type casts.
: SELECT "questions".* FROM "questions"  WHERE "questions"."category_id" = 1 AND "questions"."start_language" = 1 AND "questions"."end_language" = 2

这很奇怪,因为我所说的category_id不是整数,它在数据库中存储为整数:

  Column     |            Type             |                       Modifiers
 id             | integer                     | not null default nextval('questions_id_seq'::regclass)
 category_id    | integer                     | 
 query          | character varying(255)      | 

我修复了问题,我的应用已成功部署到Heroku。我必须改变的事情:

  1. 我的数据库是sqlite3而不是postgres
  2. 问题不在于category_id,但是对于开始和结束语言数据类型,sqlite3非常宽容并且从他们的id中呈现语言。 postgres没那么多。
  3. 使用正确的信息重新设置我的数据库
  4. 总的来说,这是因为在部署之后,有很多小错误汇集在一起​​并炸毁了应用程序。

1 个答案:

答案 0 :(得分:0)

确保您迁移生产数据库:

heroku run rake db:migrate