我不明白我的迁移语法有什么问题,请帮忙。我在mysql2中运行了rakedb:migrate,数据库
错误:
mysql2::error:您的sql语法有错误;检查与您的mysql服务器版本相对应的手册,在第1行:alter table的“using cast(number as integer)default null”附近使用正确的语法 seats
改变
number number
整数使用强制转换(数字为整数)默认为空
下面是语法:
class ChangeNumberTypeInSeats < ActiveRecord::Migration
def change
change_column :seats, :number, 'integer USING CAST(number AS integer)'
end
end
我猜是因为我的搭档在本地使用postgresql,但还是把代码推到了git之外。请帮忙。
1条答案
按热度按时间sd2nnvve1#
最后一个论点
change_column
:是将列从一种类型转换为另一种类型(在本例中为整数)的postgres方法(请参阅更多)。
如果您想在迁移中使用特定于数据库的代码,您需要同意您使用的数据库,并在整个团队中保持一致。特定于postgres的代码不会在mysql上运行,反之亦然。
一般来说,在整个团队中使用相同的db是个好主意,在生产中使用相同的db(以保持dev-prod奇偶校验)。