Heroku, не могу подтолкнуть мою БД - PullRequest
1 голос
/ 05 октября 2011

Я пытаюсь отправить свою базу данных на heroku и получаю эту ошибку:

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

Я использую mysql в моей локальной базе данных, и у меня есть кодировка utf8 в application.rb.Я пытаюсь нажать

heroku db:push

или

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

Что я могу сделать, чтобы это исправить?

Ответы [ 2 ]

1 голос
/ 05 октября 2011

Где-то в вашей базе данных есть символ, который должен быть закодирован в UTF-8, чего в данный момент нет.У меня была эта ошибка в прошлом, и единственное решение - найти и изменить ее.Больно, если у вас большая база данных.

0 голосов
/ 05 октября 2011

В комментарии вы упоминаете, что у вас есть двоичные изображения в вашей базе данных. Ошибка, которую вы видите:

Ошибка сервера Taps: PGError: ОШИБКА: неверная последовательность байтов для кодировки «UTF8»: 0x89

происходит из какого-то текстового столбца, либо varchar, либо text. В MySQL вам нужен один из BLOB-типов , в PostgreSQL вы хотите BYTEA столбец , а в ActiveRecord вам нужен binary тип столбца, Ваше определение таблицы должно выглядеть примерно так:

create_table :your_table do |t|
    #...
    t.binary :image_column_name
    #...
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...