rakedb:migrate返回“mysql2::error:you have a error in your sql syntax;检查对应的手册……”

eit6fx6z  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(564)

我不明白我的迁移语法有什么问题,请帮忙。我在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之外。请帮忙。

sd2nnvve

sd2nnvve1#

最后一个论点 change_column :

'integer USING CAST(number AS integer)'

是将列从一种类型转换为另一种类型(在本例中为整数)的postgres方法(请参阅更多)。
如果您想在迁移中使用特定于数据库的代码,您需要同意您使用的数据库,并在整个团队中保持一致。特定于postgres的代码不会在mysql上运行,反之亦然。
一般来说,在整个团队中使用相同的db是个好主意,在生产中使用相同的db(以保持dev-prod奇偶校验)。

相关问题