Elixir-无法将Ecto.DateTime保存到Postgres数据库中,保存Ecto.Date在该数据库中有效
在Phoenix应用程序中,我想将会话记录保存到Postgres DB中,Elixir-无法将Ecto.DateTime保存到Postgres数据库中,保存Ecto.Date在该数据库中有效,elixir,phoenix-framework,ecto,Elixir,Phoenix Framework,Ecto,在Phoenix应用程序中,我想将会话记录保存到Postgres DB中,expires字段为12小时后。Mysession模型将expires字段设置为外部日期时间 型号 schema“sessions”做什么 字段:键,:字符串 字段:expires,exto.DateTime 字段:用户id,:整数 时间戳() 结束如果exto.Date起作用,数据库中字段的类型可能是Date而不是utc\u datetime(PostgreSQL中的时间戳)。将其更改为utc\u datetime可以
expires
字段为12小时后。Mysession模型将expires字段设置为外部日期时间
型号
schema“sessions”做什么
字段:键,:字符串
字段:expires,exto.DateTime
字段:用户id,:整数
时间戳()
结束
如果exto.Date
起作用,数据库中字段的类型可能是Date
而不是utc\u datetime
(PostgreSQL中的时间戳
)。将其更改为utc\u datetime
可以修复错误。如果使用迁移来创建表,则可以创建一个新表,该表将更改列的类型,如下所示:
def up do
alter table(:sessions) do
modify :expires, :utc_datetime
end
end
def down do
alter table(:sessions) do
modify :expires, :date # old type here
end
end
数据库(或迁移)中的
expires
列的类型是什么?也许您在迁移中使用了date
类型而不是datetime
?我使用了!非常感谢。将expires
字段更改为键入timestamp
,现在可以正常工作。