Command cim was not found. Drush was unable to query the database
Asked Answered
C

3

6

When running drush cim commands in Drupal 8 I get the following error:

Command cim was not found. Drush was unable to query the database. As a result, many commands are unavailable. 
Re-run your command with --debug to see relevant log messages.

and when I run the drush cim --debug show the following:

$ drush cim --debug
 [preflight] Redispatch to site-local Drush: C:\xampp\htdocs\executive-coatings\docroot/vendor/drush/drush/drush.
 [preflight] Config paths: C:/xampp/htdocs/executive-coatings/docroot/vendor/drush/drush/drush.yml
 [preflight] Alias paths: C:/xampp/htdocs/executive-coatings/docroot/drush/sites,C:/xampp/htdocs/executive-coatings/drush/sites,C:/xampp/htdocs/executive-coatings/docroot/drush/sites
 [preflight] Commandfile search paths: C:\xampp\htdocs\executive-coatings\docroot\vendor\drush\drush\src
 [debug] Bootstrap further to find cim [0.27 sec, 6.78 MB]
 [debug] Trying to bootstrap as far as we can [0.27 sec, 6.78 MB]
 [bootstrap] Drush bootstrap phase: bootstrapDrupalRoot() [0.27 sec, 6.78 MB]
 [bootstrap] Change working directory to C:\xampp\htdocs\executive-coatings\docroot [0.27 sec, 6.78 MB]
 [bootstrap] Initialized Drupal 8.6.13 root directory at C:\xampp\htdocs\executive-coatings\docroot [0.28 sec, 6.9 MB]
 [bootstrap] Drush bootstrap phase: bootstrapDrupalSite() [0.28 sec, 7.15 MB]
 [bootstrap] Initialized Drupal site default at sites/default [0.29 sec, 7.37 MB]
 [debug] Could not find a Drupal settings.php file at sites/default/settings.php. [0.29 sec, 7.37 MB]
 [bootstrap] Drush bootstrap phase: bootstrapDrupalConfiguration() [0.29 sec, 7.37 MB]
 [debug] Add service modifier [0.29 sec, 7.51 MB]
 [bootstrap] Unable to connect to database. More information may be available by running `drush status`. This may occur when Drush is trying to bootstrap a site that has not been installed or does not have a configured database. In this case you can select another site with a working database setup by specifying the URI to use with the --uri parameter on the command line. See `drush topic docs-aliases` for details. [0.29 sec, 7.51 MB]
 [debug] Bootstrap phase bootstrapDrupalDatabase() failed to validate; continuing at bootstrapDrupalConfiguration() [0.29 sec, 7.51 MB]
 [debug] Done with bootstrap max in Application::find(): trying to find cim again. [0.29 sec, 7.51 MB]

In Application.php line 239:

  [Symfony\Component\Console\Exception\CommandNotFoundException]
  Command cim was not found. Drush was unable to query the database. As a result, many commands are unavailable. Re-r
  un your command with --debug to see relevant log messages.


Exception trace:
 () at C:\xampp\htdocs\executive-coatings\docroot\vendor\drush\drush\src\Application.php:239
 Drush\Application->bootstrapAndFind() at C:\xampp\htdocs\executive-coatings\docroot\vendor\drush\drush\src\Application.php:192
 Drush\Application->find() at C:\xampp\htdocs\executive-coatings\docroot\vendor\symfony\console\Application.php:236
 Symfony\Component\Console\Application->doRun() at C:\xampp\htdocs\executive-coatings\docroot\vendor\symfony\console\Application.php:148
 Symfony\Component\Console\Application->run() at C:\xampp\htdocs\executive-coatings\docroot\vendor\drush\drush\src\Runtime\Runtime.php:118
 Drush\Runtime\Runtime->doRun() at C:\xampp\htdocs\executive-coatings\docroot\vendor\drush\drush\src\Runtime\Runtime.php:49
 Drush\Runtime\Runtime->run() at C:\xampp\htdocs\executive-coatings\docroot\vendor\drush\drush\drush.php:72
 require() at C:\xampp\htdocs\executive-coatings\docroot\vendor\drush\drush\drush:4
Caesium answered 15/4, 2019 at 7:49 Comment(0)
J
-2

Please take the following step into consideration as it has the potential to address your problems.

  1. Clear Drush Cache: Clearing the Drush cache may help resolve the issue with drush cache-clear drush
  2. Verify that the config module is enabled in your Drupal installation drush pm:list --type=module | grep config and If the config module is not listed, you can enable it using the following command: drush pm:enable config
  3. you can try running the command with the --debug option to get more detailed log messages. This can provide additional information about the issue and help in troubleshooting.
Jordanna answered 15/4, 2019 at 9:21 Comment(5)
I thought cim and config-import were the same. drushcommands.com/drush-8x/config/config-importSlipsheet
@MohammadAzizNabizada But how and why would an alias for a given command behave differently than the original command it is pointing to ? Where do you see that ?Barnie
@MohammadAzizNabizada Is there any official documentation on that?Slipsheet
No offense but I think this is misleading to conclude to this without any further research and explanation.Barnie
The drush config-import command resulted for me to the exact same error as drush cim would, so, I have posted what worked for me.Ellata
E
4

You probably (like me) are trying to import all the exported configurations from some existing-site (from here on referenced as example.com) into your local (localhost/PROJECT_NAME) for development reasons, but that is currently (middle 2019) not directly supported, and you will have to import the database first, see below for more.

Steps:

  1. Export and download the database from your existing-site (e.g. example.com/admin/config/development/backup_migrate).
  2. In your local, ensure you have enough RAM (maybe close some programs).
  3. Create your local database (DATABASE_NAME) and import previously exported one, using PhpMyAdmin (or something like that, e.g. http://localhost/phpmyadmin/).
  4. Ensure the settings.local.php file exists (in ./sites/default/settings directory), and when it does not exist create it and configure it, for example like:
<?php
$databases['default']['default'] = [
  'database' => 'DATABASE_NAME',
  'username' => 'root',
  'password' => '',
  'prefix' => '',
  // 'collation' => 'utf8mb4_general_ci',
  'host' => '127.0.0.1',
  'port' => '3306',
  'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
  'driver' => 'mysql',
];

$settings['drupal_env'] = 'dev';
// Location of the site configuration files:
//  (Path used by "drush config-export" command)
# $config_directories['sync'] = '../config/d8_sync';
  1. Ensure the settings.php file exists (in ./sites/default directory), and that it includes above mentioned settings.local.php file (will attach my default settings.php file).
  2. Goto localhost/PROJECT_NAME/core/install.php?rewrite=ok&langcode=en&profile=standard&continue=1 link (just to ensure it shows Drupal is already installed).
  3. Run drush cr (it should now work and clear the cache).

settings.php file:

This is my default settings.php file, which should include settings.local.php (if it exists).

<?php
// Salt for one-time login links, cancel links, form tokens, etc:
$settings['hash_salt'] = 'Dxl656Ddme9FyAvn0y02nrnbETVxVnHZwBLilbjSkQLH0-DHqQd2BZL8yPoM0lRCNKRx7_yqVA';

// Deployment identifier:
# $settings['deployment_identifier'] = \Drupal::VERSION;

// Access control for update.php script:
$settings['update_free_access'] = FALSE;

// External access proxy settings:
# $settings['http_client_config']['proxy']['http'] = 'http://proxy_user:[email protected]:8080';
# $settings['http_client_config']['proxy']['https'] = 'http://proxy_user:[email protected]:8080';
# $settings['http_client_config']['proxy']['no'] = ['127.0.0.1', 'localhost'];

// Reverse Proxy Configuration:
# $settings['reverse_proxy'] = TRUE;

/**
 * Specify every reverse proxy IP address in your environment.
 * This setting is required if $settings['reverse_proxy'] is TRUE.
 */
# $settings['reverse_proxy_addresses'] = ['a.b.c.d', ...];

// Reverse proxy trusted headers:
# $settings['reverse_proxy_trusted_headers'] = \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_ALL | \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED;

// Page caching:
# $settings['omit_vary_cookie'] = TRUE;

// Cache TTL for client error (4xx) responses:
# $settings['cache_ttl_4xx'] = 3600;

// Expiration of cached forms:
# $settings['form_cache_expiration'] = 21600;

// Class Loader:
# $settings['class_loader_auto_detect'] = FALSE;

// Authorized file system operations:
# $settings['allow_authorize_operations'] = FALSE;

/**
 * Default mode for directories and files written by Drupal.
 *
 * Value should be in PHP Octal Notation, with leading zero.
 */
# $settings['file_chmod_directory'] = 0775;
# $settings['file_chmod_file'] = 0664;

// Public file base URL:
# $settings['file_public_base_url'] = 'http://downloads.example.com/files';

// Public file path:
# $settings['file_public_path'] = 'sites/default/files';

// Private file path:
# $settings['file_private_path'] = '';

// Session write interval:
# $settings['session_write_interval'] = 180;

// String overrides:
# $settings['locale_custom_strings_en'][''] = [
#   'forum'      => 'Discussion board',
#   '@count min' => '@count minutes',
# ];

// A custom theme for the offline page:
# $settings['maintenance_theme'] = 'bartik';

/**
 * If you encounter a situation where users post a large amount of text, and
 * the result is stripped out upon viewing but can still be edited, Drupal's
 * output filter may not have sufficient memory to process it.  If you
 * experience this issue, you may wish to uncomment the following two lines
 * and increase the limits of these variables.  For more information, see
 * http://php.net/manual/pcre.configuration.php.
 */
# ini_set('pcre.backtrack_limit', 200000);
# ini_set('pcre.recursion_limit', 200000);

// Active configuration settings:
# $settings['bootstrap_config_storage'] = ['Drupal\Core\Config\BootstrapConfigStorageFactory', 'getFileStorage'];

// Configuration overrides:
# $config['system.file']['path']['temporary'] = '/tmp';
# $config['system.site']['name'] = 'My Drupal site';
# $config['system.theme']['default'] = 'stark';
# $config['user.settings']['anonymous'] = 'Visitor';

// Fast 404 pages:
# $config['system.performance']['fast_404']['exclude_paths'] = '/\/(?:styles)|(?:system\/files)\//';
# $config['system.performance']['fast_404']['paths'] = '/\.(?:txt|png|gif|jpe?g|css|js|ico|swf|flv|cgi|bat|pl|dll|exe|asp)$/i';
# $config['system.performance']['fast_404']['html'] = '<!DOCTYPE html><html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL "@path" was not found on this server.</p></body></html>';

// Load services definition file:
$settings['container_yamls'][] = $app_root . '/' . $site_path . '/services.yml';

// Override the default service container class:
# $settings['container_base_class'] = '\Drupal\Core\DependencyInjection\Container';

// Override the default yaml parser class:
# $settings['yaml_parser_class'] = NULL;

// The default list of directories that will be ignored by Drupal's file API:
$settings['file_scan_ignore_directories'] = [
  'node_modules',
  'bower_components',
];

// The default number of entities to update in a batch process:
$settings['entity_update_batch_size'] = 50;

// Entity update backup:
$settings['entity_update_backup'] = TRUE;


/**
 * Load local development override configuration, if available.
 *
 * Use settings.local.php to override variables on secondary (staging,
 * development, etc) installations of this site. Typically used to disable
 * caching, JavaScript/CSS compression, re-routing of outgoing emails, and
 * other things that should not happen on development and testing sites.
 *
 * Keep this code block at the end of this file to take full effect.
 */

if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) {
  include $app_root . '/' . $site_path . '/settings.local.php';
}
elseif (file_exists(__DIR__ . '/settings/settings.local.php')) {
  include __DIR__ . '/settings/settings.local.php';
}
Ellata answered 13/7, 2019 at 12:49 Comment(1)
I was having issue with /opt/bitnami/mysql/bin/mysqld, thought it may have to do with lando but amazingly this process actually worked as directed, thanksLineament
F
1

In my case, I just did not started virtual server (wamp).

Faceless answered 23/5, 2019 at 3:53 Comment(1)
I was trying to run drush commands without starting server, I got the same errorShellans
J
-2

Please take the following step into consideration as it has the potential to address your problems.

  1. Clear Drush Cache: Clearing the Drush cache may help resolve the issue with drush cache-clear drush
  2. Verify that the config module is enabled in your Drupal installation drush pm:list --type=module | grep config and If the config module is not listed, you can enable it using the following command: drush pm:enable config
  3. you can try running the command with the --debug option to get more detailed log messages. This can provide additional information about the issue and help in troubleshooting.
Jordanna answered 15/4, 2019 at 9:21 Comment(5)
I thought cim and config-import were the same. drushcommands.com/drush-8x/config/config-importSlipsheet
@MohammadAzizNabizada But how and why would an alias for a given command behave differently than the original command it is pointing to ? Where do you see that ?Barnie
@MohammadAzizNabizada Is there any official documentation on that?Slipsheet
No offense but I think this is misleading to conclude to this without any further research and explanation.Barnie
The drush config-import command resulted for me to the exact same error as drush cim would, so, I have posted what worked for me.Ellata

© 2022 - 2024 — McMap. All rights reserved.