Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrading higher than 3.0.11 causes errors in finding the configuration sync directory for Drupal #33

Closed
weekbeforenext opened this issue Sep 28, 2020 · 3 comments
Assignees

Comments

@weekbeforenext
Copy link

What is your lando version and operating system?
Mac OS 10.15.7
Lando 3.0.12 or higher (3.0.11 works)
Drupal 8.9.6

Tell us about your .lando.yml
lando.yml:

name: [site-name]
recipe: pantheon
config:
  conf:
    php: config/php.ini
  framework: drupal8
  site: [site]
  id: [site-id]
  # Disable Solr Index
  index: false
  # Enable Varnish Edge and Redis Cache
  edge: true
  cache: true
events:
  post-pull:
    # Runs composer install, drush cim and drush cr after a db import
    - appserver: cd $LANDO_MOUNT
    - appserver: composer install
    - appserver: drush user-unblock "$(drush user:information --uid=1 --format=list --field=name)"
    - appserver: drush cim -y
    - appserver: drush cr
  pre-start:
    # Runs npm on a lando start
    - node: cd $LANDO_MOUNT && npm run production
services:
  database:
    # Turns off DB port forwarding as per ISO request
    portforward: false
  appserver:
    overrides:
      environment:
        # Support debugging Drush with XDEBUG.
        PHP_IDE_CONFIG: "serverName=appserver"
  # Sets up selenium container for Behat testing
  selenium:
    type: compose
    services:
      image: 'selenium/standalone-chrome-debug:3.141.59-neon'
      volumes:
        - 'lando:/app'
      ports:
        - '5900:5900'
      expose:
        - '4444'
      command: /opt/bin/entry_point.sh
      security_opt:
        - 'seccomp:unconfined'
  # Sets up node container for some frontend goodness
  node:
    type: node
    build:
      - npm --prefix /app install
  # Sets up PHPMyAdmin container for some ez-database debugging
  pma:
    type: phpmyadmin
tooling:
  # Tweak Pantheon's pull command so that it doesn't pull down code.
  pull:
    description: Pull things except code
    options:
      code:
        default: none
      database:
        interactive:
          default: dev
      files:
        interactive:
          default: none
      rsync:
        default: true
  # Disable Pantheon's push and switch commands
  push: disabled
  switch: disabled
  # Setup various shortcuts to executables
  npm:
    service: node
  phplint:
    service: appserver
    cmd: /app/vendor/bin/phplint
  phpcs:
    service: appserver
    cmd: /app/vendor/bin/phpcs
  phpunit:
    service: appserver
    cmd: /app/vendor/bin/phpunit
  drush:
    service: appserver
    cmd:
      - drush
  behat:
    service: appserver
    cmd: /app/vendor/bin/behat --config=/app/behat/behat.yml
  # Hot plug xdebug on demand.  No need to even refresh the page! :D
  xdebug-on:
    service: appserver
    description: Enable xdebug for nginx.
    cmd: docker-php-ext-enable xdebug && pkill -o -USR2 php-fpm
    user: root
  xdebug-off:
    service: appserver
    description: Disable xdebug for nginx.
    cmd: rm /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini && pkill -o -USR2 php-fpm
    user: root

It is also helpful to include other relevant config files. For example, include pantheon.yml for a pantheon recipe if applicable. Include php.ini or mysql.cnf if you are overriding our defualt config.

pantheon.yml:

# Pantheon Api Version
# https://pantheon.io/docs/pantheon-yml#include-api_version
api_version: 1

# Nested docroot
# https://pantheon.io/docs/pantheon-yml#nested-docroot
web_docroot: true

# PHP Version:
# https://pantheon.io/docs/pantheon-yml#php-version
php_version: 7.3

# Protected Web Paths
# https://pantheon.io/docs/pantheon-yml#protected-web-paths
protected_web_paths:
   - /private

# Enforce HTTPS
# https://pantheon.io/docs/pantheon-yml#enforce-https--hsts
enforce_https: transitional

# Quicksilver hooks
# https://pantheon.io/docs/pantheon-yml#quicksilver-platform-integration-hooks
# https://pantheon.io/docs/quicksilver
workflows:
  # Create site (new spin up - after only).
  deploy_product:
    after:
      - type: webphp
        description: Run db installation
        script: private/scripts/quicksilver/drush_site_install.php
      - type: webphp
        description: Post to Slack after site creation
        script: private/scripts/quicksilver/slack_notifier.php
      - type: webphp
        description: Dump debugging output
        script: private/scripts/quicksilver/debug.php
  # Deploy code to Multidev - note this will need to be deployed up to master before running for the first time.
#  create_cloud_development_environment:
#    after:
#      - type: webphp
#        description: Post to Slack after Multidev creation
#        script: private/scripts/quicksilver/slack_notifier.php
  # Deploy code to Test or Live (test/live).
  deploy:
    after:
      - type: webphp
        description: Post to Slack after deploy
        script: private/scripts/quicksilver/slack_notifier.php
      - type: webphp
        description: Dump debugging output
        script: private/scripts/quicksilver/debug.php
      - type: webphp
        description: Import site configuration, update db, rebuild cache
        script: private/scripts/quicksilver/drush_cim_updb_cr.php
      - type: webphp
        description: Log to New Relic
        script: private/scripts/quicksilver/new_relic_deploy.php
  # Push code via Git or commit OSD/SFTP changes via Pantheon Dashboard (dev/multidev).
  sync_code:
    after:
      - type: webphp
        description: Post to Slack after code commit
        script: private/scripts/quicksilver/slack_notifier.php
      - type: webphp
        description: Dump debugging output
        script: private/scripts/quicksilver/debug.php
      - type: webphp
        description: Import site configuration, update db, rebuild cache
        script: private/scripts/quicksilver/drush_cim_updb_cr.php
      - type: webphp
        description: Log to New Relic
        script: private/scripts/quicksilver/new_relic_deploy.php
#  # Clear cache.
#  clear_cache:
#    after:
#      - type: webphp
#        description: Someone is clearing the cache again
#        script: private/scripts/quicksilver/slack_notifier.php

Tell us about the command you were running

lando drush cim -y
lando drush @[alias] site-install --existing-config --yes

Tell us about the error you got

Running the config import comand in 3.0.13, I received the following error:

In FileStorageFactory.php line 38:
  The config sync directory is not defined in $settings["config_sync_directory"]  

Running the site install command in 3.0.12 I receive the following error:

In bootstrap.inc line 230:
  The configuration directory type 'sync' does not exist  

Tell us generally about your bug

First, I updated to version 3.0.13 and ran the following:

1. lando rebuild
2. lando composer install
3. lando drush cim -y

That's when I first noticed the error.

I destroyed and started again with the same results.

I tried reverting to 3.0.12 with similar results, just a slightly different error.

Finally, I reverted to 3.0.11 and all is well.
Tell us more

This issue will keep me from being able to upgrade and means I have to see the upgrade message a lot. 😞

@pirog pirog self-assigned this Sep 28, 2020
@pirog
Copy link
Sponsor Member

pirog commented Sep 28, 2020

Guessing this is caused by the same thing filed here https://github.com/lando/lando/issues/2617

@pirog
Copy link
Sponsor Member

pirog commented Sep 28, 2020

ok hotfix release in for this, should be out in a few

@dcorb
Copy link

dcorb commented Jan 7, 2021

Same issue, I needed to run lando composer install first 🤦‍♂️

@rtfm-47 rtfm-47 transferred this issue from lando/lando Nov 24, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants