У меня есть команда migrate:s
, которая содержит следующуюМиграция нескольких баз данных с Laravel Artisan
public function handle()
{
$sites = Sites::all();
foreach($sites as $site)
{
$host = $site->h;
$database = $site->d;
$username = $site->u;
$password = $site->p;
$this->info('Trying to migrate ' . $database);
Config::set('database.connections.mysql.host', $host);
Config::set('database.connections.mysql.database', $database);
Config::set('database.connections.mysql.username', $username);
Config::set('database.connections.mysql.password', $password);
//Reconnect with new credentials
DB::reconnect('mysql');
//Call the migration on the new connection
$this->call('migrate');
$this->info('Migrations complete for database ' . $site->d);
}
}
Первый сайт всегда мигрирует хорошо, однако после того, как он продолжает пытаться создать таблицу миграции, несмотря на то, уже будучи один, тот, который заполняется.
SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'migrations' already exists
Полномочия являются правильными для баз данных, я не могу понять, почему он пытается сделать таблицу после первой миграции.
Вы можете посмотреть/разместить содержимое своей таблицы миграции на каждом сайте? Мне интересно, если он вышел из синхронизации, поэтому он думает, что он не выполнил миграцию, чтобы создать таблицу миграции? Кроме того, какая версия Laravel вы? – Loren
@Loren 5.1, таблица миграции заполнена, я сбросил базу данных, с чистой установки, она всегда работает на первом. Похоже, что сейчас играя вокруг, кажется, что это не синхронизация учетных данных по какой-то причине. – Ian