在ThinkPHP裏執行數據庫遷移時報如下錯誤
[InvalidArgumentException]
There was a problem creating the schema table: SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'end_time'
首先懷疑建表時的end_time的默認值設置錯了。然而查看建表字段里根本沒有end_time字段。
查看migration的代碼,分析到其會建立一個migrations的表,此表裏會有一個end_time字段,初步懷疑是建表時需要先建立migration的表而導致上面的錯誤。
於是通過MySQL語句直接創建migrations表,發現同樣報此錯誤。將問題指向了MySQL的配置。
將my.ini裏sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION 改爲sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER
再次運行成功!