YII 迁移和表列的默认值

Fac*_*irl 5 php database migration database-migration yii

public function up(){

        $this->createTable('POST', array(
            'id' => 'pk',
            'isremoved' => 'integer NOT NULL',
            'removaldate' => 'timestamp NULL',
            'post' => 'text NOT NULL',
            'creationdate' => 'timestamp NOT NULL',
        ));
}
Run Code Online (Sandbox Code Playgroud)

这是迁移的 up 函数。如您所见,它是创建新表的查询。默认情况下,YII 为时间戳列创建默认值等于 CURRENT_TIMESTAMP 并创建附加参数并将其设置为等于 ON UPDATE CURRENT_TIMESTAMP。

我不需要时间戳的当前值,也不需要在更新行时更新此列。我必须做什么?顺便说一句,你使用 MySQL

lei*_*sat 6

对于像我这样的 google 用户:Yii2 现在开箱即用了。

现在您可以添加->defaultExpression('CURRENT_TIMESTAMP')到您的定义中。


sur*_*190 1

利用 MySQL 创建表脚本:

show create table tablename
Run Code Online (Sandbox Code Playgroud)

这使:

CREATE TABLE `tablename` (
....
....
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
...
Run Code Online (Sandbox Code Playgroud)

现在将其添加到迁移中:

'timestamp' => 'timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP'
Run Code Online (Sandbox Code Playgroud)