inserted_atとupdated_atを作成すると、Ectoで面白い動作が見つかりました。Ecto datetimeで面白い動作?
用渡さ深夜前に、私のアプリは正常に動作します..しかし、渡された真夜中の後に、それは、ログ以下のような
[info] >>> RUNTIME DATETIME {{2017, 7, 4}, {2, 38, 43}}
[info] >>> CHAT NEW = %Portal.DailyChat{__meta__:
#Ecto.Schema.Metadata<:loaded, "daily_chats">, id: 17, inserted_at: ~N[2017-07-03 19:38:43.315000], messages:
"{\"chats\":[{\"time\":\"2:38:43\",\"message\":\"Test\",\"from\":\"bi***@gmail.com\"}]}", read: true, updated_at: ~N[2017-07-03 19:38:43.315000], user_a: %Po
rtal.User{__meta__: #Ecto.Schema.Metadata<:loaded, "users">, id: 3, inserted_at: ~N[2017-06-16 20:08:05.000000], name: "Indra", password: nil, password_
hash: "AF41E68E1309FA29A5044CBDC36B90A3821D8807E68C7675A6C495112BC8A55F", updated_at: ~N[2017-06-16 20:08:05.000000], username: "bi****@gmail.com"}, user_a_id:
3, user_b: %Portal.User{__meta__: #Ecto.Schema.Metadata<:loaded, "users">, id: 1, inserted_at: ~N[2017-06-16 16:18:25.000000], name: "Bromo", passw
ord: nil, password_hash: "AF41E68E1309FA29A5044CBDC36B90A3821D8807E68C7675A6C495112BC8A55F", updated_at: ~N[2017-06-16 16:18:25.000000], username: "bro***@gm
ail.com"}, user_b_id: 1}
を振る舞う値は>>>ランタイムDATETIMEがを使用して生成される:calendar.local_time、どの正確な時刻を生成します。 については
>>> NEW値をチャットがエクトは、DBにデータを永続化した後、 inserted_atとupdated_atの両方が間違った時間です生成するものです!
誰もこの問題を解決する方法を知っていますか?
おかげ
タイムスタンプマクロについては、https://hexdocs.pm/ecto/Ecto.Schema.htmlを参照してください。削除したり置き換えたり、動作をカスタマイズすることができます。 –