我正在尝试将我的数据库推送到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
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
在您的数据库中的某个地方,有一个字符需要以UTF-8编码,这是当前不存在的。我过去曾经遇到过这个错误,唯一的解决办法就是找出并改变它。如果你有一个大型数据库会很痛苦。
答案 1 :(得分:0)
在评论中,您提到数据库中有二进制图像。您看到的错误:
点击服务器错误:PGError:错误:编码“UTF8”的无效字节序列:0x89
来自某种文本列,varchar
或text
。在MySQL中你想要一个BLOB types,在PostgreSQL中你需要一个BYTEA
column,而在ActiveRecord中你需要binary
column type。您的表定义应如下所示:
create_table :your_table do |t|
#...
t.binary :image_column_name
#...
end