Since inserted_at
and updated_at
不可能是null
这是行不通的:
def change do
alter table(:channels) do
timestamps
end
end
** (Postgrex.Error) ERROR (not_null_violation): column "inserted_at" contains null values
有没有一种简单的方法可以在不复制的情况下完成此任务timestamps
' 功能?
The timestamps/1
函数接受一个选项关键字列表,您可以用它设置默认值。
def change do
alter table(:channels) do
timestamps default: "2016-01-01 00:00:01", null: false
end
end
更新 Ecto >= 2.1
您需要使用新类型NaiveDateTime
def change do
alter table(:channels) do
timestamps default: ~N[2017-01-01 00:00:01], null: false
end
end
如果您还有更多疑问,请查看文档 https://hexdocs.pm/ecto/Ecto.Migration.html#timestamps/1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)