Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
CRAP | |
0.00% |
0 / 26 |
DbImportCommand | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
42 | |
0.00% |
0 / 26 |
configure | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 5 |
|||
execute | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 9 |
|||
runScript | |
0.00% |
0 / 1 |
12 | |
0.00% |
0 / 12 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\Core\Command\DbImportCommand. | |
*/ | |
namespace Drupal\Core\Command; | |
use Drupal\Core\Database\Connection; | |
use Drupal\Core\Database\Database; | |
use Drupal\Core\Database\SchemaObjectExistsException; | |
use Symfony\Component\Console\Input\InputInterface; | |
use Symfony\Component\Console\Input\InputOption; | |
use Symfony\Component\Console\Output\OutputInterface; | |
/** | |
* Provides a command to import the current database from a script. | |
* | |
* This script runs on databases exported using using one of the database dump | |
* commands and imports it into the current database connection. | |
* | |
* @see \Drupal\Core\Command\DbImportApplication | |
*/ | |
class DbImportCommand extends DbCommandBase { | |
/** | |
* {@inheritdoc} | |
*/ | |
protected function configure() { | |
parent::configure(); | |
$this->setName('import') | |
->setDescription('Import database from a generation script.') | |
->addArgument('script', InputOption::VALUE_REQUIRED, 'Import script'); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
protected function execute(InputInterface $input, OutputInterface $output) { | |
$script = $input->getArgument('script'); | |
if (!is_file($script)) { | |
$output->writeln('File must exist.'); | |
return; | |
} | |
$connection = $this->getDatabaseConnection($input); | |
$this->runScript($connection, $script); | |
$output->writeln('Import completed successfully.'); | |
} | |
/** | |
* Run the database script. | |
* | |
* @param \Drupal\Core\Database\Connection $connection | |
* Connection used by the script when included. | |
* @param string $script | |
* Path to dump script. | |
*/ | |
protected function runScript(Connection $connection, $script) { | |
$old_key = Database::setActiveConnection($connection->getKey()); | |
if (substr($script, -3) == '.gz') { | |
$script = "compress.zlib://$script"; | |
} | |
try { | |
require $script; | |
} | |
catch (SchemaObjectExistsException $e) { | |
throw new \RuntimeException('An existing Drupal installation exists at this location. Try removing all tables or changing the database prefix in your settings.php file.'); | |
} | |
Database::setActiveConnection($old_key); | |
} | |
} |