Я пытаюсь запустить ci runner, где я пытаюсь создать тестовое и развернуть приложение laravel на сервере.
У меня есть уникальный случай, когда мне нужно подключиться к нескольким БД, и в миграциях есть ссылка на внешний ключ к этой базе данных.
Сначала я импортирую дамп MySQL из db1, а затем запускаю миграцию, но она всегда выдает ошибку Cannot add foreign key constraint
, даже если база данных успешно импортирована.
Ниже мой код
Когда мне нужно импортировать базу данных
connect:
stage: building
services:
- mysql:5.7
before_script:
- apt-get update -q && apt-get install -qqy --no-install-recommends mysql-client
script:
- mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host="$DB_HOST" < db/db1.sql
- echo "SELECT * FROM db1.users;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql
и
db-seeding:
stage: building
services:
- mysql:5.7
image: edbizarro/gitlab-ci-pipeline-php:7.3
# Download the artifacts for these jobs
dependencies:
- composer
- yarn
script:
- php artisan migrate:fresh --seed
artifacts:
paths:
- ./storage/logs # for debugging
expire_in: 1 days
when: on_failure
когда мне нужно запустить миграцию
Как добавить ссылку на внешний ключ?
Я не уверен, позволяет ли это сделать? или их альтернатива для достижения этого.