Drupal8: CiviCRM checks assume a single-database installation
I typically set up CiviCRM in a separate database, with a single MySQL user granted the minimum necessary permissions to change both CMS and CRM.
Drupal8 is incorporating CiviCRM checks into Drupal - but I get the error message (with the permissions below) that I don't have permission to create triggers on my database.
What's actually happening is I don't have permission to create triggers on the Drupal database. I can create triggers on the Civi db.
Below you can see the command I ran that bypassed the issue.
Since this blocks Drupal upgrades, it feels reasonably serious to resolve. I feel a little lost in D8 though - I was looking for hook_requirement
, which is how I'd ordinarily add a status check in D7, but couldn't find it (except in the install file).
mysql> show grants for myorg_test@localhost;
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for myorg_test@localhost |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'myorg_test'@'localhost' |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, TRIGGER ON `myorg_test_civi`.* TO 'myorg_test'@'localhost' |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON `myorg_test_drupal`.* TO 'myorg_test'@'localhost' |
| GRANT EXECUTE, ALTER ROUTINE ON FUNCTION `myorg_test_civi`.`civicrm_strip_non_numeric` TO 'myorg_test'@'localhost' |
+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
4 rows in set (0.00 sec)
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, TRIGGER ON `myorg_test_drupal`.* TO 'myorg_test'@'localhost';
Query OK, 0 rows affected (0.00 sec)```