[英]Rake DB:Migration error when modifying the column type
我已编写迁移文件来更改列类型,如下所示
class ChangeColumnTypeInMyTable < ActiveRecord::Migration
def self.up
execute <<-SQL
ALTER TABLE batches
ALTER COLUMN updated_by int
SQL
execute <<-SQL
ALTER TABLE batches
ALTER COLUMN created_by int
SQL
end
def self.down
end
end
但这给了我一个错误,说PG::SyntaxError: ERROR: syntax error at or near "int" LINE 2: ALTER COLUMN updated_by int
我找不到错误。 先感谢您
ALTER COLUMN updated_by TYPE int USING (updated_by::integer)
将varchar字段的类型更改为整数:“无法自动转换为整数类型”可能会有所帮助。
我猜这里需要TYPE这个字...
参考: http : //www.postgresql.org/docs/8.0/static/sql-altertable.html
class ChangeColumnTypeInMyTable < ActiveRecord::Migration
def self.up
execute <<-SQL
ALTER TABLE mt940_batches
ALTER COLUMN updated_by TYPE int
SQL
execute <<-SQL
ALTER TABLE mt940_batches
ALTER COLUMN created_by TYPE int
SQL
end
def self.down
end
end
由于您正在使用SQL,因此在这种情况下,您需要使用ActiveRecord:
def self.up
connection = ActiveRecord::Base.connection()
connection.execute(put_your_sql_query_here)
end
希望您能轻松解决。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.