gpt4 book ai didi

mysql - rake 数据库 :migrate returns "Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds.."

转载 作者:行者123 更新时间:2023-11-29 10:17:27 25 4
gpt4 key购买 nike

我无法理解我的迁移语法有什么问题,请帮忙。我在 MySql2 中运行了 rake db:migrate、数据库

错误:

Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING CAST(number AS integer) DEFAULT NULL' at line 1: ALTER TABLE seats CHANGE number number integer USING CAST(number AS integer) DEFAULT NULL

下面是语法:

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

我的猜测是,因为我的合作伙伴在本地使用 PostgreSQL,但无论如何还是将代码推送到了 Git。请帮忙。

最佳答案

change_column的最后一个参数:

'integer USING CAST(number AS integer)'

是一种将列从一种类型转换为另一种类型(在本例中为整数)的 postgres 方法 ( see more )。

如果您想在迁移中使用特定于数据库的代码,您需要就您使用的数据库达成一致,并在整个团队中保持一致。 Postgres 特定的代码不会在 Mysql 上运行,反之亦然。

在整个团队中使用相同的数据库以及与生产环境相同的数据库通常是一个好主意(以保留 dev-prod parity )。

关于mysql - rake 数据库 :migrate returns "Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds..",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49921015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com