Я создал новый проект Lumen без каких-либо миграций. Так как я настраиваю CI, я бы хотел всегда запускать php artisan migrate
на всякий случай миграции добавляются в какой-то момент.
Вот мой файл .env для CI-сервера:
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.
Так что, с моей точки зрения, Люмен не должен ничего делать на этом этапе. Что мне здесь не хватает?
В вашем файле миграции вы должны указать имя таблицы в функции on.
Пример:
$table->foreign('user_id')->references('id')->on('')
->onUpdate('cascade')->onDelete('cascade');
выше будет отображаться ошибка, поэтому нам нужно использовать имя таблицы в функции
$table->foreign('user_id')->references('id')->on('users')
->onUpdate('cascade')->onDelete('cascade');
Других решений пока нет …