在rails迁移中.如何将字符串类型列更改为bigint?
我有:
t.change :ip_number_from,:integer,:limit => 8
我明白了:
PG::Error: ERROR: column "ip_number_from" cannot be cast to type bigint
我甚至尝试过两种选择:
change_column :ip_to_countries,:ip_number_from,:limit => 8 change_column :ip_to_countries,:bigint
还是一样的错误.
解决方法
Postgres告诉您该列中存在不知道如何转换的现有数据,因此它需要一个ALTER语句,该列为列提供USING子句以指定如何转换现有值.
不幸的是,您需要下拉特定于数据库的代码才能完成此任务,或者使用与此处建议的解决方案类似的内容:
http://webjazz.blogspot.co.uk/2010/03/how-to-alter-columns-in-postgresql.html
execute <<-sql ALTER TABLE ip_to_countries ALTER COLUMN ip_number_from TYPE bigint USING ip_number_from::bigint sql
原文地址:https://www.jb51.cc/ruby/267347.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。