UPDATE: help fund the final tasks via the Make It Happen
There's now a beta version of a mostly automated installer at https://gitlab.com/roundearth/drupal-civicrm-project. You can also use it to add civi to an existing drupal 8 site as long as you installed drupal 8 using composer originally. See https://www.mydropwizard.com/blog/better-way-install-civicrm-...
Active Development has restarted on the Drupal 8 version. It is possible to get it installed now, although it takes a slight different process than with Drupal 7.
Assuming you have Drupal 8.2.5 installed.
Download and install the 8.x-3.x-dev version of the Libraries module:
Download the most recent version of ...
The short answer is easy, which you can take away from Does CiviCRM work with Drupal 8 and how can I help? — CiviCRM is not yet fully functional with Drupal 8. You can see issues tagged for Drupal 8 in JIRA, and even better, help test and develop the Drupal 8 branch code.
The long answer is more complicated, and depends on your organization's development ...
See answer from @jackrabbithanna for current status.
tl;dr : It's not yet production ready, and the list of things you can help on is in JIRA at https://issues.civicrm.org/jira/browse/CRM-17652?filter=23012 . Additionally, please create additional issues and mark Label them drupal-8.
Building on the previous work, Allen Shaw made some progress recently ...
I've recently been reviewing the code, testing against Drupal 8.2.5, and developing and submitting Pull Requests to the D8 module. I've been roughly estimating the time that would be required to get it working good enough to install on a client's site.
I had the same problem today, so I looked in the source code.
In civicrm.install there's a function called _civicrm_get_db_config. It's looking in the $databases array for an element with a key civicrm. So I added this to settings.php:
$databases['civicrm']['default'] = array (
'database' => 'civi_db_name',
'username' => 'mysqluser',
You could also try the RoundEarth distribution: https://gitlab.com/mydropwizard/roundearth-drops-8
"RoundEarth is a template for building a website for a nonprofit
organization, based on Drupal 8 and CiviCRM."
I am not sure how to sync drupal profile image with CiviCRM contact image through UI. But you can add module and invoke hook to update the contact image.
Here is the snippet how to add image url to contact
$params = [
'contact_id' => 2,
'image_URL' => [
'name' => '/var/www/html/drupal/sites/default/files/civicrm/custom/...
There is still work to be done to get this firing fully - and you many need to reach out to some of the Partners to help get things working sufficiently for your scenario. There are a number that have done a bunch of work in this area.
There are some other Drupal tools that aren't fully firing with civicrm, ones that we use in pretty much every development ...
I'm afraid CiviCRM doesn't support Drupal 8 yet. You will need to install Drupal 7.
You can find more details here: Installation and Upgrades
See also this question: Does CiviCRM work with Drupal 8 and how can I help?
I was able to separate my Drupal 8 database from my CiviCRM database fairly easily, here are my notes I took on how to do it. Note that these steps aren't particularly specific to Drupal 8, and can be used to convert any single-database install into a two-database install.
Create a new database (e.g. "example_civi") on the same server.
Do NOT create a ...
I am working with an organization that has been struggling with that question. They were originally planning to upgrade their Drupal 6 site to D8, but D8 progress has been so slow (notably lack of webform module & incomplete CiviCRM integration) that they have decided to switch to Backdrop. Backdrop-CiviCRM integration is functionally complete, as is the ...
Graham - I've reproduced that. Not seeing the date of birth field either. Seeing lots of other dates though. Not sure what's going on. Could you please open an issue here: https://github.com/eileenmcnaughton/civicrm_entity/issues
Update: this is now top of the list for D8CE.
Updated: this is fixed now as of https://github.com/eileenmcnaughton/...
Drupal 8/CiviCRM has the composer-patches package already installed. So you can add a section to the "extra" element in composer.json called "patches", and list out the patch with a title and a URL (or path) to a .diff file. Here's an example where I add four patches to standard CiviCRM:
diff --git a/composer.json b/composer.json
index 453ff74..5827a69 ...
My experience with anything composer-ish seems to be:
Struggle with it for a while until the site becomes messed up beyond repair.
Restore from backup and struggle some more until it's messed up again.
Create a brand new install and then copy over the sites/default folder and .htaccess and such.
Replace the database with my backup.
Run the upgrades.
I think the current easiest and best way is to:
Install Drupal 8 with the recommended composer template
composer create-project drupal/recommended-project my_site_name_dir
composer require civicrm/civicrm-asset-plugin:^5.25 civicrm/civicrm-drupal-8:^5.25 civicrm/civicrm-packages:^5.25
Enable CiviCRM in the modules list
Drush can support VCS deployments and you can tell drush make to keep the .git directory with "drush make --working-copy your-platform.make". However, unless it's changed recently, drush doesn't have post-install hooks, so it won't handle composer/bower/npm well.
Composer has support for "post-install-cmd", but civicrm itself is not on packagist. I'm not ...
You can use the data processor extension (https://lab.civicrm.org/extensions/dataprocessor) for that. The data processor is an extension for CiviCRM which gets data from CiviCRM and exposes this to the API (it is possible to add your own outputs, e.g, csv file, page etc..)
At the Drupal side you need the CiviMRF Core Module (https://github.com/CiviMRF/...
Start creating a new D8+civi site by using the installer at https://gitlab.com/roundearth/drupal-civicrm-project.
When doing the D8 install part, just install a minimal site and don't further configure it - just what's needed to get D8 installed.
Follow the standard drupal instructions to upgrade. https://www.drupal.org/docs/8/upgrade/upgrading-from-drupal-6-...
Jon has also answered the original question of how to install CiviCRM in its own database.
Specifically, if you add the connection information in your settings file (before installing CiviCRM), it uses that, i.e. in settings.php add in:
$databases['civicrm']['default'] = [
'database' => 'civicrm',
'username' => 'mysqluser',
'password' => 'a-mysql-...
Drupal itself doesn't care about its folder name (at least, not that I've found). CiviCRM cares, and so does Composer.
When you rename your folder, find the installer-paths section in composer.json (in the webroot) and change docroot to web there.
You'll also need to change all instances of docroot in civicrm.settings.php.
Rebuild your Drupal cache and ...
You can specify the version of civi you want if it can't figure it out, so e.g.
composer require roundearth/civicrm-composer-plugin civicrm/civicrm-drupal-8 civicrm/civicrm-core:5.13.4
You might also have to add and specify the psr/log version on the same line to match, based on the error message above.
Found the underlying issue:
you definitely need to do a CMS contact sync immediately after install
your CMS user also needs an email set or she will not get imported in the sync <-- this was key
Civi just doesn't think you're the admin that you are otherwise.
In practice it's as simple as doing a composer update for the most part - assuming you're configured "sensibly" - the RoundEarth setup makes (or at least made!) some assumptions re: versioning that are not helpful for upgrading. So here goes:
You should declare both civicrm-core and civicrm-drupal-8 in your composer json file. In the require section you ...