我创建了一个新的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在这一点上应该什么都不做。我在这里缺少什么?
答案 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');