【问题标题】:rails migration and renaming blob column (sqlite)rails迁移和重命名blob列(sqlite)
【发布时间】:2016-02-02 13:24:21
【问题描述】:

创建了一个新的 rails db 迁移,用于重命名一组列,包括一个具有 blob 格式的列。运行迁移时出现以下错误并取消迁移:

SQLite3::SQLException: unrecognized token: "'Salted__��v�/JB���*}�]��+Ai��x��w=9yǚ�...

迁移:

...
rename_column :users, :private_key, :encrypted_private_key
...

据我所知,当一列被重命名时,会创建一个临时表。对我来说,创建这个临时表时似乎有问题。

有没有办法重命名 blob 列?

Rails 4.2.0,Activerecord 4.2.0

【问题讨论】:

  • 而不是 AR 处理迁移.. 在您的迁移文件中将其放入您的 up 方法中:执行“alter table users change private_key encrypted_private_key varchar(255)”

标签: ruby-on-rails activerecord sqlite rails-migrations


【解决方案1】:

检查这个链接解释清楚

Renaming column

如果您需要更改表格格式:

rails g migration ChangeFormatInTablenameColumnname

class ChangeFormatInUsersAdmin < ActiveRecord::Migration
  def change
    change_column :users(tablename), :admin(columnname), :boolean(type), default: false
  end
end

【讨论】:

  • 感谢链接,但它没有解释如何处理 blob 字段。正如我的帖子中所述,我很清楚如何编写用于重命名列的迁移。
猜你喜欢
  • 2018-07-24
  • 2013-12-14
  • 1970-01-01
  • 2012-09-03
  • 2014-03-24
  • 2013-09-13
  • 2012-10-29
  • 1970-01-01
  • 2010-12-31
相关资源
最近更新 更多