ruby-on-rails 迁移失败不能引用哈希

vfhzx4xs  于 2023-08-08  发布在  Ruby
关注(0)|答案(3)|浏览(127)

Rails 5.2升级到6

create_table :logs, id: :uuid do |t|
      t.uuid :trackable_id, null: false
      t.string :trackable_type, null: false
      t.uuid :owner_id, null: false
      t.string :owner_type, null: false
      t.string :key, null: false
      t.hstore :parameters, null: false, default: {}
      t.datetime :created_at
    end

字符串
但是迁移失败了

rails aborted!
StandardError: An error has occurred, this and all later migrations canceled:

can't quote Hash


这个补丁是什么

eoigrqb6

eoigrqb61#

尝试用引号 Package 空哈希:

t.hstore :parameters, null: false, default: "{}"

字符串

hm2xizp9

hm2xizp92#

我想你需要启用hstore

...
enable_extension 'hstore' unless extension_enabled?('hstore')
create_table :logs, id: :uuid do |t|
  ...

字符串
https://guides.rubyonrails.org/active_record_postgresql.html#hstore可以给予更多的信息,如果它有帮助。

kx7yvsdv

kx7yvsdv3#

尝试使用Yaml。

t.hstore :parameters, null: false, default: YAML.dump({})

字符串

相关问题