lando / pantheon

The Official Lando Pantheon plugin.
https://docs.lando.dev/pantheon
GNU General Public License v3.0
11 stars 18 forks source link

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

Closed weekbeforenext closed 2 years ago

weekbeforenext commented 4 years ago

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 commented 4 years ago

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

pirog commented 4 years ago

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

dcorb commented 3 years ago

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