我开始使用Postgres的JSON数据类型,现在有很多有趣的东西可以用它实现。 在我的一个Rails应用程序中,该应用程序还不是Rails 4(在Rails 4中已经添加了对Postgres JSON的支持),我通过以下方式添加了一个JSON列:
create_table :foo do |t|
t.column :bar, :json
end
但是我无法弄清如何为该列设置默认值。
我尝试了所有变化,例如{}
、'{}'
、'{}'::json
、'[]'::json
等,但无论哪种方式,迁移运行时要么出现错误,要么根本不起作用,这意味着当我创建新的Foo
时,bar
是nil
。
after_initialize
回调,但我通常不喜欢这些... - Manuel Meurer""
,我相信这是用于表示空哈希的 hstore 的常用方法。 - John Bachirrake中止! 发生错误,此及所有后续迁移都已取消: PG :: InvalidTextRepresentation:ERROR:类型json的输入语法无效 详细信息:输入字符串意外结束。 上下文:JSON数据,第1行: :ALTER TABLE“foo”ADD COLUMN“bar”json DEFAULT''```
- Manuel Meurernull
... 默认情况下。我不希望它是null
,我希望它是{}
。 - Manuel Meurer