laravel 5.5-迁移不起作用

k10s72fa  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(368)

我正在尝试在laravel 5.2版本上运行一个运行得非常好的迁移,但是当我尝试在laravel 5.5上运行它时,出现了一个错误:
在connection.php第664行:
sqlstate[42000]:语法错误或访问冲突:1067“to\ u date”的默认值无效(sql:create table) transactions ( id int unsigned not null自动递增主键, user_id int unsigned不为null, vehicle_id int unsigned不为null, from_date t型
imestamp不为空, to_date 时间戳不为空, flight_number varchar(255)不为空, created_at 时间戳为空, updated_at
mestamp null)默认字符集utf8mb4 collate utf8mb4\u unicode\u ci)
在connection.php第458行中:sqlstate[42000]:语法错误或访问冲突:1067“to\u date”的默认值无效
这是该表的迁移:

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateTransactionsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('transactions', function (Blueprint $table) {
            $table->increments('id');
            $table->integer('user_id')->unsigned();
            $table->foreign('user_id')->references('id')->on('users');
            $table->integer('vehicle_id')->unsigned();
            $table->foreign('vehicle_id')->references('id')->on('vehicles');
            $table->timestamp('from_date');
            $table->timestamp('to_date');
            $table->string('flight_number');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('transactions');
    }
}

为什么它在使用5.2版本的时候不能使用新版本的laravel呢?

vql8enpb

vql8enpb1#

我发现了问题的原因,在laravel5.5mysql中,laravelconfig中启用了严格模式 database.php 默认情况下,通过将模式设置为 'strict' => false ,就像5.3版一样,我可以运行迁移。

相关问题