更改 Sequel 列字符串大小
change Sequel Column String Size
我想通过迁移更改字符串列的大小。
我试过了
Sequel.migration do
up do
alter_table(:users) do
set_column_type :car_model, :string, size: 30
end
end
down do
end
end
但这给了我一个 SQL 语法错误迁移:
Sequel::DatabaseError: 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 'String(30) NULL' at line 1
有什么办法吗?
所以目前该字段是一个大小为 20 的字符串,我想让它成为一个大小为 30 的字符串。
提前致谢!
更新
我也试过了
set_column_type :car_model, char(30)
然而,这导致我得到一个 String :car_model, :size=>255
列:/
我不知道 Sequel,但在 Postgres 中你可以像这样使用 change_column
和 :limit
:
change_column :users, :car_model, :string, limit: 30
希望对您有所帮助!
你几乎是正确的。您需要使用 String
而不是 :string
:
set_column_type :car_model, String, size: 30
请注意,这里使用的是 varchar(30)
,而不是 char(30)
。一般来说,除非你知道你想要 char
,否则你最好选择 varchar
。
或者,任何时候你想强制一个特定于数据库的类型,你可以将它指定为一个字符串:
set_column_type :car_model, 'char(30)'
我想通过迁移更改字符串列的大小。
我试过了
Sequel.migration do
up do
alter_table(:users) do
set_column_type :car_model, :string, size: 30
end
end
down do
end
end
但这给了我一个 SQL 语法错误迁移:
Sequel::DatabaseError: 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 'String(30) NULL' at line 1
有什么办法吗? 所以目前该字段是一个大小为 20 的字符串,我想让它成为一个大小为 30 的字符串。
提前致谢!
更新 我也试过了
set_column_type :car_model, char(30)
然而,这导致我得到一个 String :car_model, :size=>255
列:/
我不知道 Sequel,但在 Postgres 中你可以像这样使用 change_column
和 :limit
:
change_column :users, :car_model, :string, limit: 30
希望对您有所帮助!
你几乎是正确的。您需要使用 String
而不是 :string
:
set_column_type :car_model, String, size: 30
请注意,这里使用的是 varchar(30)
,而不是 char(30)
。一般来说,除非你知道你想要 char
,否则你最好选择 varchar
。
或者,任何时候你想强制一个特定于数据库的类型,你可以将它指定为一个字符串:
set_column_type :car_model, 'char(30)'