Drush 9 sql: ошибка синхронизации: не найдена запись базы данных для источника @local - PullRequest
0 голосов
/ 07 марта 2019

Я только что установил новый Drupal 8, и он поставляется с Drush 9, и я пытался настроить все, чтобы использовать команду sql: sync или config: pull для синхронизации моего локального и промежуточного уровня, но каждый раз, когда я запускаю команду 'drush sql: sync @local @stage 'Я получаю следующую ошибку

В строке 86 SqlSyncCommands.php:

[Исключение] Ошибка: не найдена запись базы данных для источника @local

Вот мой self.site.yml

local:
  host: localhost
  user: root
  root: /var/www/html/new-drupal
  uri: http://new-drupal.local

stage:
  host: XX.XX.XX.XX
  user: root
  root: /var/www/html/new-drupal
  uri: http://new-drupal.my-staging.com

При поиске я нашел старые версии файла псевдонимов, которые включали эту опцию:

'databases' =>
     array (
       'default' =>
       array (
         'default' =>
         array (
           'driver' => 'mysql',
           'username' => 'sqlusername',
           'password' => 'sqlpassword',
           'port' => '',
           'host' => 'localhost',
           'database' => 'sqldbname',
         ),
      ),
    ),

Но, проверяя файл примера 9-й версии, ничего с этим не поделаешь: https://github.com/drush-ops/drush/blob/master/examples/example.site.yml

У кого-то была такая же проблема, и она нашла решение?

1 Ответ

0 голосов
/ 07 марта 2019

Прошло много времени с момента моего обращения. У меня были похожие проблемы, и я использовал метод наименьшей конфигурации.

Во-первых, сравните результаты следующих команд, чтобы увидеть, если это создает какие-либо проблемы:

drush site:alias 
drush site:alias @self
drush site:alias @local

У меня нет файла self.site.yml. Я назвал мой drush / sites / remote.site.yml и в нем есть только удаленные псевдонимы. Я не определяю псевдоним @local и вместо этого использую встроенный псевдоним @self.

В drush / drush.yml у меня есть:

drush:
  paths:
    config:
      - ../docroot/sites/default/local.drush.yml

В docroot / sites / default / local.drush.yml у меня есть только

options:
  uri: 'http://localhost:port'

При такой конфигурации результаты drush site: alias @self is

'@self':
  root: /var/www/docroot
  uri: 'http://localhost:port'

И при условии, что у меня есть действительный псевдоним @stage в drush / sites / remote.site.yml, я бы просто запустил

drush sql:sync @self @stage

Если вам нужен псевдоним @local, возможно, вам следует вместо этого переместить его в локальную конфигурацию drush.

...