Dam*_*nis 4 elixir ecto phoenix-framework
我正在开发一个凤凰1.3项目(使用默认的postgres数据库),我正在尝试添加一个字符串数组列,其默认值为填充列表.
这是迁移:
defmodule DfyDashboard.Repo.Migrations.AddLeadSourceToOffice do
use Ecto.Migration
def change do
alter table(:offices) do
add :lead_sources, {:array, :string}, default: [
"Event",
"Facebook",
"Google/Online",
]
end
end
end
Run Code Online (Sandbox Code Playgroud)
当我运行迁移时,我收到以下错误:
**(ArgumentError)
["Event", "Facebook", "Google/Online"]类型的默认默认值{:array, :string}.:默认可以是astring,number,boolean,空列表,map(当type是Map时)或片段(...)
在使用时,似乎不可能有任何除静态列表之外的空列表{:array, input_type}.
我正在尝试使用默认实际上是一个hack并且有更好的方法来做它?或者,如果我想要做的是首选方法,是否有一个黑客,我可以用来做同样的事情?任何帮助表示赞赏.
我不确定为什么Ecto只支持空数组作为默认值,但您fragment现在可以使用并在PostgreSQL语法中指定数组:
add :lead_sources, {:array, :string},
default: fragment("ARRAY['Event', 'Facebook', 'Google/Online']")
Run Code Online (Sandbox Code Playgroud)
2015年增加了对空数组的支持,但不是非空数组.我认为他们愿意添加此功能.您可能想在他们的邮件列表中询问核心开发人员.
| 归档时间: |
|
| 查看次数: |
755 次 |
| 最近记录: |