You are here

class DbImportCommand in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/lib/Drupal/Core/Command/DbImportCommand.php \Drupal\Core\Command\DbImportCommand

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.

Hierarchy

Expanded class hierarchy of DbImportCommand

See also

\Drupal\Core\Command\DbImportApplication

1 file declares its use of DbImportCommand
DbImportCommandTest.php in core/modules/system/tests/src/Kernel/Scripts/DbImportCommandTest.php
Contains \Drupal\Tests\system\Kernel\Scripts\DbImportCommandTest.

File

core/lib/Drupal/Core/Command/DbImportCommand.php, line 25
Contains \Drupal\Core\Command\DbImportCommand.

Namespace

Drupal\Core\Command
View source
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);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
Command::$aliases private property
Command::$application private property
Command::$applicationDefinitionMerged private property
Command::$applicationDefinitionMergedWithArgs private property
Command::$code private property
Command::$definition private property
Command::$description private property
Command::$help private property
Command::$helperSet private property
Command::$ignoreValidationErrors private property
Command::$name private property
Command::$processTitle private property
Command::$synopsis private property
Command::$usages private property
Command::addArgument public function Adds an argument.
Command::addOption public function Adds an option.
Command::addUsage public function Add a command usage example.
Command::asText Deprecated public function Returns a text representation of the command.
Command::asXml Deprecated public function Returns an XML representation of the command.
Command::getAliases public function Returns the aliases for the command.
Command::getApplication public function Gets the application instance for this command.
Command::getDefinition public function Gets the InputDefinition attached to this Command.
Command::getDescription public function Returns the description for the command.
Command::getHelp public function Returns the help for the command.
Command::getHelper public function Gets a helper instance by name.
Command::getHelperSet public function Gets the helper set.
Command::getName public function Returns the command name.
Command::getNativeDefinition public function Gets the InputDefinition to be used to create XML and Text representations of this Command. 1
Command::getProcessedHelp public function Returns the processed help for the command replacing the %command.name% and %command.full_name% patterns with the real values dynamically.
Command::getSynopsis public function Returns the synopsis for the command.
Command::getUsages public function Returns alternative usages of the command.
Command::ignoreValidationErrors public function Ignores validation errors.
Command::initialize protected function Initializes the command just after the input has been validated.
Command::interact protected function Interacts with the user. 2
Command::isEnabled public function Checks whether the command is enabled or not in the current environment.
Command::mergeApplicationDefinition public function Merges the application definition with the command definition.
Command::run public function Runs the command.
Command::setAliases public function Sets the aliases for the command.
Command::setApplication public function Sets the application instance for this command.
Command::setCode public function Sets the code to execute when running this command.
Command::setDefinition public function Sets an array of argument and option instances.
Command::setDescription public function Sets the description for the command.
Command::setHelp public function Sets the help for the command.
Command::setHelperSet public function Sets the helper set.
Command::setName public function Sets the name of the command.
Command::setProcessTitle public function Sets the process title of the command.
Command::validateName private function Validates a command name.
Command::__construct public function Constructor. 3
DbCommandBase::getDatabaseConnection protected function Parse input options decide on a database. 1
DbImportCommand::configure protected function Configures the current command. Overrides DbCommandBase::configure
DbImportCommand::execute protected function Executes the current command. Overrides Command::execute
DbImportCommand::runScript protected function Run the database script.