Создание нескольких баз данных и запуск миграции на них за один раз - PullRequest
0 голосов
/ 30 сентября 2019

В моем файле миграции я создаю несколько баз данных для пользователей:

foreach ($all_org as $db_name) {
    DB::unprepared("CREATE DATABASE /*!32312 IF NOT EXISTS*/ `" . $db_name . "` /*!40100 DEFAULT CHARACTER SET latin1 */;");
    DB::statement('CREATE TABLE IF NOT EXISTS '.$db_name.'.migrations LIKE main_database.migrations; ');
    DB::statement('INSERT INTO '.$db_name.'.migrations SELECT * FROM main_database.migrations;');
}

, а затем во второй миграции я импортирую файл sql в созданные выше базы данных.

exec('mysql -u '.$db_username.' '.$db_name.' < "'.$file_path.'" 2>&1');

когда я запускаю команду миграции. php artisan migrate --all

--all - запуск миграций для всех схем баз данных.

Миграции не выполняются в базах данных, созданных в текущей текущей миграции. Например: если я запускаю миграцию и создаются 2 базы данных с именами database_1 и database_2. Они будут пустыми.

Когда я запускаю ту же команду миграции, что и выше, эти две базы данных заполняются файлом sql.

Я пытаюсь добиться того, чтобы базы данных были созданы и импорт файлов за один раз.

...