ClearDB в Heroku выдает ошибку при запуске миграции, чтобы создать новую таблицу с полем `details` типа` json` - PullRequest
0 голосов
/ 27 мая 2019

Я использую приложение Rails 5.2.2 и ruby 2.6.3 на Heroku, поддерживаемое базой данных ClearDB.

ПРИМЕЧАНИЕ: локально все это прекрасно работает

мой gem-файл имеет версию mysql2 как таковую: gem 'mysql2', '>= 0.4.4', '< 0.6.0'

Когда я пытаюсь запустить миграцию для создания новой таблицы с полем details типа json, происходит сбой с синтаксической ошибкой.

Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'json'

Удаление поля details типа json и повторный запуск миграции завершаются успешно.

Вот пример содержимого миграции.

class InitTables < ActiveRecord::Migration[5.2]
  def change
    create_table :services do |t|
      t.string :public_id, null: false, index: { unique: true }
      t.json :details
    end
  end
end

Это сообщение об ошибке: Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'json'

1 Ответ

0 голосов
/ 28 мая 2019

Согласно поддержке ClearDB, версия MySQL 5.7 должна быть совместимой с моей миграцией, чтобы использовать поле типа json.

Планы общих ресурсов планов Heroku Ignite, Punch, Drift и Scream в настоящее время доступны только для кластеров, работающих под версиями MySQL 5.5 или 5.6 (5.6 в Европе) и Я ЕСМЬ на плане Heroku Ignite .

Чтобы решить эту проблему, мне потребуются выделенные планы ресурсов (экземпляров), которые можно настроить на использование версии MySQL 5.5, 5.6 или 5.7.

...