rake db:migrate возвращает "Mysql2:: Ошибка: в вашем синтаксисе SQL есть ошибка; проверьте соответствующее руководство.."

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

ошибка:

Mysql2:: Ошибка: у вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса, который можно использовать рядом с 'USING CAST(число AS, целое число) DEFAULT NULL' в строке 1: ALTER TABLE seats МЕНЯТЬ numbernumber целое число с использованием CAST (число как целое число) DEFAULT NULL

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

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

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

1 ответ

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

'integer USING CAST(number AS integer)'

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

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

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

Другие вопросы по тегам