Heroku,不能推动我的数据库

时间:2011-10-05 12:05:58

标签: mysql ruby-on-rails ruby-on-rails-3 postgresql heroku

我正在尝试将我的数据库推送到heroku,并收到此错误:

Taps Server Error: PGError: ERROR:  invalid byte sequence for encoding "UTF8": 0x89

我在本地数据库中使用mysql,我在application.rb中编写了utf8代码。 我试着用

推进
heroku db:push

heroku db:push mysql2://root:pasword@127.0.0.1/damp?encoding=utf8

我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:1)

在您的数据库中的某个地方,有一个字符需要以UTF-8编码,这是当前不存在的。我过去曾经遇到过这个错误,唯一的解决办法就是找出并改变它。如果你有一个大型数据库会很痛苦。

答案 1 :(得分:0)

在评论中,您提到数据库中有二进制图像。您看到的错误:

  

点击服务器错误:PGError:错误:编码“UTF8”的无效字节序列:0x89

来自某种文本列,varchartext。在MySQL中你想要一个BLOB types,在PostgreSQL中你需要一个BYTEA column,而在ActiveRecord中你需要binary column type。您的表定义应如下所示:

create_table :your_table do |t|
    #...
    t.binary :image_column_name
    #...
end