【问题标题】:Laravel migration rename dateTime columnLaravel 迁移重命名日期时间列
【发布时间】:2018-08-20 07:17:09
【问题描述】:

我想使用 Laravel 5.6 迁移重命名列以重构旧版应用程序。该栏目是:

`data_adaugarii` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP

我想将其重命名为“created_at”。为此,我使用了以下代码:

Schema::table('cp', function (Blueprint $table) { $table->renameColumn('data_adaugarii', 'created_at'); });

运行迁移,我收到以下错误:

SQLSTATE[22007]:无效的日期时间格式:1292 不正确的日期时间值:第 1 行的列“created_at”的“current_timestamp()”(SQL:ALTER TABLE cp CHANGE data_adaugarii created_at DATETIME DEFAULT 'current_timestamp()' NOT NULL)

有人解决过这个问题吗?

【问题讨论】:

标签: php mysql laravel doctrine migration


【解决方案1】:

config/database.php 中的模式更改为mysql 数组中的false

'strict' => false

【讨论】:

  • 现在我得到:SQLSTATE[42000]:语法错误或访问冲突:1067 'created_at' 的默认值无效(SQL:ALTER TABLE cp CHANGE data_adaugarii created_at DATETIME DEFAULT 'current_timestamp()' NOT NULL)
  • 我读到了,谢谢。我终于使用自定义查询进行迁移,如下所示: DB::connection()->getPdo()->exec('ALTER TABLE cp CHANGE data_adaugarii created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;') ;
猜你喜欢
  • 2018-09-19
  • 2015-07-28
  • 1970-01-01
  • 2020-06-22
  • 2016-03-14
  • 2018-12-10
  • 1970-01-01
  • 2015-11-25
  • 2020-03-14
相关资源
最近更新 更多