rake db: migrate возвращает «Mysql2 :: Error: у вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, которое соответствует .. ”

0

Я не могу понять, что случилось с моим синтаксисом миграции, пожалуйста, помогите. Я запускал rake db: migrate, database в MySql2

ошибка:

Mysql2 :: Ошибка: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с "ИСПОЛЬЗОВАНИЕ CAST (число AS целое число) DEFAULT NULL" в строке 1: ALTER TABLE seats CHANGE number number integer ИСПОЛЬЗОВАНИЕ CAST (число AS целое) DEFAULT NULL

под ним синтаксис:

class ChangeNumberTypeInSeats < ActiveRecord::Migration
  def change
    change_column :seats, :number, 'integer USING CAST(number AS integer)'
  end
end

Я предполагаю, что, поскольку мой партнер использует PostgreSQL локально, но все равно вытолкнул код из Git. Пожалуйста помоги.

  • 0
    @Monica_Agustin Можете ли вы добавить свой database.yml к вопросу?
Теги:
mysql2
migrate

1 ответ

1

Последний аргумент change_column:

'integer USING CAST(number AS integer)'

является способом postgres для преобразования столбца из одного типа в другой (в этом случае в целое число) (см. больше).

Если вы хотите использовать код, специфичный для базы данных, в миграциях, вам нужно согласовать, какую базу данных вы используете, и последовательно ее выполнять в команде. Код, специфичный для Postgres, не будет работать на Mysql и наоборот.

Как правило, хорошая идея иметь одну и ту же БД по всей команде и ту же самую, что и при производстве (чтобы сохранить паритет dev-prod).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню