This may seem like a dumb question to some of you, I'm sure. After having worked with Drupal from version 6, I'm now for the first time using Drupal 8 and -- after some initial difficulties -- have actually come to enjoy the new development process (using Composer and Configuration Management etc.). However, I'm still failing to understand the indended workflow, after having completed a core update in my local installation. Here's my understanding, so far:
- In case of simpler modifications -- like, say, having created a new content type -- I usually call
drush cexon my local Drupal site, then transfer the contents of the sync directory to my staging (or production, if I'm feeling venturous) site (using FTP) and go to
Configuration > Development > Configuration Synchronizationto apply the changes. (Note that I can't call
drush cimat this point, as I'm not able to use the terminal in my staging/production site.)
- If any content has been created for that new content type in my local site, I transfer that content to staging using the
So far, that's working pretty well. However, how am I supposed to proceed, after having completed a bigger update that involves non-trivial modifications to the database?
- Say, I'm performing a core update:
composer update drupal/core --with-dependencies
- I will then perform the necessary database updates locally, either by calling
drush updatedbor by visiting
update.phpin a browser.
But then what?
Say, I'll upload all the new files via FTP to the staging site. Clearly, I cannot also copy the local database to the staging site, because the contents would be overwritten. So, I need to import the new configuration to the staging site... but accessing
Configuration > Development > Configuration Synchronization to update the database will probably result in an error, exactly because the database has not been updated, yet.
This is where I'm stuck. I suspect, there's a piece to the puzzle that I'm missing, but what is it?