如果没有迁移,Laravel Lumen迁移将失败

时间:2018-05-31 09:19:46

标签: php laravel migration lumen lumen-5.5

我创建了一个新的Lumen项目,暂时没有任何迁移。由于我正在设置CI,因此我希望始终运行php artisan migrate以防万一在某些时候添加迁移。

以下是CI服务器的.env文件:

APP_ENV=testing
APP_DEBUG=true
APP_KEY=base64:ROhueDv4THITTXXfOO14HsMNO/Po5hx1eQndrbt12cA=
APP_URL=http://jarvis-testing.easybell.de

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=jarvis_test
DB_USERNAME=dev
DB_PASSWORD=dev

CACHE_DRIVER=file

这是我的database.php文件:

<?php

return [
    'default'     => 'mysql',
    'connections' => [
        'mysql' => [
            'driver'    => 'mysql',
            'host'      => env( 'DB_HOST' ),
            'port'      => env( 'DB_PORT' ),
            'database'  => env( 'DB_DATABASE' ),
            'username'  => env( 'DB_USERNAME' ),
            'password'  => env( 'DB_PASSWORD' ),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
        ]
    ]
];

当我运行php artisan migrate时,我收到以下错误:

In Connection.php line 664:

SQLSTATE[42000]: Syntax error or access violation: 1103 Incorrect table name '' (SQL: create table `` (`id` int unsigned not null auto_increment primary key, `migration` varchar(255) not null, `batch` int not null) default character set utf8 collate utf8_unicode_ci)


In Connection.php line 452:

  SQLSTATE[42000]: Syntax error or access violation: 1103 Incorrect table name ''

运行php artisan migrate:status时,输出为:

No migrations found.

所以从我的角度来看,Lumen在这一点上应该什么都不做。我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

在您的迁移文件中,您必须在on function中提及表名。

示例:

$table->foreign('user_id')->references('id')->on('')
    ->onUpdate('cascade')->onDelete('cascade');
上面的

将显示错误,因此我们需要在函数

中使用表名
$table->foreign('user_id')->references('id')->on('users')
    ->onUpdate('cascade')->onDelete('cascade');