В моем файле миграции я создаю несколько баз данных для пользователей:
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
.
Я пытаюсь добиться того, чтобы базы данных были созданы и импорт файлов за один раз.