Same filename and directory in other branches
  1. 9 core/lib/Drupal/Core/Command/DbCommandBase.php
  2. 10 core/lib/Drupal/Core/Command/DbCommandBase.php
  3. 11.x core/lib/Drupal/Core/Command/DbCommandBase.php





View source

namespace Drupal\Core\Command;

use Drupal\Core\Database\Database;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;

 * Base command that abstracts handling of database connection arguments.
class DbCommandBase extends Command {
     * {@inheritdoc}
    protected function configure() {
        $this->addOption('database', NULL, InputOption::VALUE_OPTIONAL, 'The database connection name to use.', 'default')
            ->addOption('database-url', 'db-url', InputOption::VALUE_OPTIONAL, 'A database url to parse and use as the database connection.')
            ->addOption('prefix', NULL, InputOption::VALUE_OPTIONAL, 'Override or set the table prefix used in the database connection.');
     * Parse input options decide on a database.
     * @param \Symfony\Component\Console\Input\InputInterface $input
     *   Input object.
     * @return \Drupal\Core\Database\Connection
    protected function getDatabaseConnection(InputInterface $input) {
        // Load connection from a url.
        if ($input->getOption('database-url')) {
            // @todo this could probably be refactored to not use a global connection.
            // Ensure database connection isn't set.
            if (Database::getConnectionInfo('db-tools')) {
                throw new \RuntimeException('Database "db-tools" is already defined. Cannot define database provided.');
            $info = Database::convertDbUrlToConnectionInfo($input->getOption('database-url'), \Drupal::root());
            Database::addConnectionInfo('db-tools', 'default', $info);
            $key = 'db-tools';
        else {
            $key = $input->getOption('database');
        // If they supplied a prefix, replace it in the connection information.
        $prefix = $input->getOption('prefix');
        if ($prefix) {
            $info = Database::getConnectionInfo($key)['default'];
            $info['prefix']['default'] = $prefix;
            Database::addConnectionInfo($key, 'default', $info);
        return Database::getConnection('default', $key);



Title Deprecated Summary
DbCommandBase Base command that abstracts handling of database connection arguments.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.