rails迁移和重命名blob列(sqlite)
问题描述:
创建了一个新的rails db迁移,用于重命名包括blob格式的一组列。运行迁移时,会出现以下错误和迁移被取消:rails迁移和重命名blob列(sqlite)
SQLite3::SQLException: unrecognized token: "'Salted__��v�/JB���*}�]��+Ai��x��w=9yǚ�...
迁移:
...
rename_column :users, :private_key, :encrypted_private_key
...
据我知道,当一列被重命名,有创建的临时表。对我来说,创建这个临时表时看起来有问题。
有什么办法可以重新命名blob列吗?
的Rails 4.2.0,4.2.0 ActiveRecord的
答
检查这个环节很好地解释
在情况下,如果你需要表的变化形式:
rails g migration ChangeFormatInTablenameColumnname
class ChangeFormatInUsersAdmin < ActiveRecord::Migration
def change
change_column :users(tablename), :admin(columnname), :boolean(type), default: false
end
end
+0
thx为链接,但它不能解释如何处理blob字段。正如我的文章所述,我很清楚如何编写重命名列的迁移。 – user1727870
代替AR处理迁移..在你的迁移文件中把这个放在你的up方法中:执行“alter table users change private_key encrypted_private_key varchar(255)” –