在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
再次运行成功!