我正在尝试在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呢?
1条答案
按热度按时间vql8enpb1#
我发现了问题的原因,在laravel5.5mysql中,laravelconfig中启用了严格模式
database.php
默认情况下,通过将模式设置为'strict' => false
,就像5.3版一样,我可以运行迁移。