今天把應用程式部署到AWS上發現後台修改內容提交後程式報錯,經過排查發現是更新資料的時候,有張資料表中的一個timestamp類型的欄位預設值變成了"0000-00-00 00: 00:00.000000"格式,導致解析失敗造成的。
在mysql該欄位的建立語句如下
`XXX` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
DEFAULT CURRENT_TIMESTAMP ON UPDATE RRAMP因為在本地開發環境測試過,沒有該問題,應用環境一直,唯一不同的是,生產環境資料庫用的是AWS的RDS的mysql,經過對錯誤訊息的搜索,大致應該是mysql參數配置的問題。
mysql> show variables like '%explicit_defaults_for_timestamp%'; +---------------------------------+-------+ | Variable_name | Value | +---------------------------------+-------+ | explicit_defaults_for_timestamp | OFF | +---------------------------------+-------+ row in set (0.00 sec)
explicit_defaults_for_timestamp = 1