Drush is not connecting to the correct database in a nested site structure. What can I do to debug and fix?
We have a website that consists of several nested Drupal installs/sites. I.E. The domain
example.com points to a top level Drupal Site, and
example.com/schools is a completely seperate Drupal install in the directory structure.
/var/www/html/example.com -> Root level website at example.com | |-> ./schools/ -> example.com/schools | |-> ./staff/ -> example.com/staff
On our live install we have Drush 9 installed on each of these sites via Composer. Each one was able to connect to their correct databases. After we updated one to Drupal 8.7 on dev, it longer connects to the correct database.
For example if I am in
/var/www/html/example.com/schools and run
php vendor/bin/drush status this is the output:
Drupal version : 8.7.8 Site URI : http://default DB driver : mysql DB hostname : localhost DB port : 3306 DB username : kpp_user DB name : kpp_drupal Database : Connected Drupal bootstrap : Successful Default theme : kpp Admin theme : adminimal_theme PHP binary : /usr/bin/php PHP config : /etc/php.ini PHP OS : Linux Drush script : /var/www/html/example.com/vendor/drush/drush/drush Drush version : 9.7.1 Drush temp : /tmp Drush configs : /var/www/html/example.com/vendor/drush/drush/drush.yml Install profile : standard Drupal root : /var/www/html/example.com Site path : sites/default Files, Public : sites/default/files
So it is incorrectly using the settings.php file from the directory above it. I also tried forcing the directory root and uri with these commands but get the same output:
php vendor/drush/drush/drush --root=/var/www/html/example.com/schools status php vendor/drush/drush/drush --uri=example.com/schools status
EDIT: I did just notice that after the update there is no /core/ folder in the schools site, so it may be that the installation is just incorrect and drush jumped up a level to find any valid Drupal install.