We have a central code base (Git repo). From this code base we deployed several websites already.

  • Till now we used features. The websites which are already in production they have a filled database with a lot of content.
  • From now we switch over to drupal 8 Configuration management.

In the central code base we have set $config_directories[CONFIG_SYNC_DIRECTORY] = 'config/base';. This directory contains all the configuration, from where we deploy our new added configuration, after a drush cex -y.

But after I do:

  1. first a new install off the site with Configuration installer module and import all the existing configuration, everything works fine. I can import and export configuration without problems
  2. but then I have to copy the production database (from the site which is already in production) back into this database. After that I am not able to import configuration anymore.

But I need to copy this database back in, because we need all the content from the existing site (which was based on Features)

I get an error the UUID is not matching etc... Is it possible what I want? And how do I get it working?

(I tried already manually copy/paste the correct uuid: in system.site.yml, but it still didn't work).

Update: I use docker for my local Drupal 8 environment

Basically you need to make sure both sites share the same UUID.

Do you have drush? If so:

In the shell of your old site (copying from) get the UUID

drush cget system.site uuid

(You'll get something like 'system.site:uuid': bfb11978-d1a3-4eda-91fb-45decf134e25 - copy the value)

Then in the shell of your new site (copying to) set the UUID

drush cset system.site uuid <your_uuid>

EG: drush cset system.site uuid bfb11978-d1a3-4eda-91fb-45decf134e25

Then if you get an error something like "placeholder ... These entities need to be deleted before importing." run this command:

drush ev '\Drupal::entityManager()->getStorage("shortcut_set")->load("default")->delete();'

After all that, drush cim sync -y should allow you to sync the settings between your environments.

Source

  • Thanks. yes indeed I get "placeholder ..." errors afterwards. But the whole thing is I need those entities (Content types etc). Let's say like you suggest to delete those entities, how do I get them back again? – meez Oct 24 '17 at 5:33
  • do you have any idea or suggestion? – meez Oct 25 '17 at 19:22

An easy approach you can do is the uuid of the site will be available in config/sync/system.site.yml file. So in your terminal you can use cat (Linux) or type (Windows) to get the uuid displayed in terminal.

cat config/sync/system.site.yml | grep uuid

Then,

// using console
drupal config:override "system.site" uuid "<new-uuid>"
// OR, using drush 
drush config-set "system.site" uuid "<new-uuid>"

If you get the shortcut set place holder error

// using console
drupal entity:delete shortcut_set default
// OR, using drush 
drush ev '\Drupal::entityManager()->getStorage("shortcut_set")->load("default")->delete();'

Then, drush cim OR drupal ci

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.