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的

+0

代替AR处理迁移..在你的迁移文件中把这个放在你的up方法中:执行“alter table users change private_key encrypted_private_key varchar(255)” –

检查这个环节很好地解释

Renaming column

在情况下,如果你需要表的变化形式:

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