2015-11-02 77 views
1

創建了一個新的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)」 –

回答

0

檢查這個環節很好地解釋

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