protected function MediaMigrationTestDatabaseTrait::createSourceMigrationConnection in Media Migration 8
Changes the database connection to the prefixed one.
@todo Refactor when core don't use global. https://www.drupal.org/node/2552791
See also
\Drupal\Tests\migrate\Kernel\MigrateTestBase::createMigrationConnection()
1 call to MediaMigrationTestDatabaseTrait::createSourceMigrationConnection()
- MediaMigrationSourceTestBase::setUp in tests/src/ Kernel/ Plugin/ migrate/ source/ d7/ MediaMigrationSourceTestBase.php 
File
- tests/src/ Traits/ MediaMigrationTestDatabaseTrait.php, line 20 
Class
- MediaMigrationTestDatabaseTrait
- Trait for importing custom data into the migrate source database.
Namespace
Drupal\Tests\media_migration\TraitsCode
protected function createSourceMigrationConnection() {
  // If the backup already exists, something went terribly wrong.
  // This case is possible, because database connection info is a static
  // global state construct on the Database class, which at least persists
  // for all test methods executed in one PHP process.
  if (Database::getConnectionInfo('simpletest_original_migrate')) {
    throw new \RuntimeException("Bad Database connection state: 'simpletest_original_migrate' connection key already exists. Broken test?");
  }
  // Clone the current connection and replace the current prefix.
  $connection_info = Database::getConnectionInfo('migrate');
  if ($connection_info) {
    Database::renameConnection('migrate', 'simpletest_original_migrate');
  }
  $connection_info = Database::getConnectionInfo('default');
  foreach ($connection_info as $target => $value) {
    $prefix = is_array($value['prefix']) ? $value['prefix']['default'] : $value['prefix'];
    // Simpletest uses 7 character prefixes at most so this can't cause
    // collisions.
    $connection_info[$target]['prefix']['default'] = $prefix . '0';
    // Add the original simpletest prefix so SQLite can attach its database.
    // @see \Drupal\Core\Database\Driver\sqlite\Connection::init()
    $connection_info[$target]['prefix'][$value['prefix']['default']] = $value['prefix']['default'];
  }
  Database::addConnectionInfo('migrate', 'default', $connection_info['default']);
}