rake db:migrate возвращает "Mysql2:: Ошибка: в вашем синтаксисе SQL есть ошибка; проверьте соответствующее руководство.."
Я не могу понять, что не так с моим синтаксисом миграции, пожалуйста, помогите. Я запустил rake db: перенести, базу данных в MySql2
ошибка:
Mysql2:: Ошибка: у вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса, который можно использовать рядом с 'USING CAST(число AS, целое число) DEFAULT NULL' в строке 1: ALTER TABLE
seats
МЕНЯТЬnumber
number
целое число с использованием 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 и наоборот.
Как правило, рекомендуется использовать одну и ту же базу данных в одной команде и ту же, что и на производстве (для сохранения паритета разработчиков).