Рейтинг:1

Как я могу исправить эту ошибку запроса с помощью drush sql-sync?

флаг lu

Я создал свой drush/sites/self.site.yml, как показано ниже*, и убедился, что drush rsync @prod:%files @self:%files работал. Однако, drush sql-sync @prod @self приводит к следующей ошибке:

  Команда "/usr/local/bin/drush sql-query --strict=0 --file=/tmp/termitral_db_20211011_110905.sql.gz --file-delete --uri=drupal --root=/var/www/ drupalvm/drupal/web" не удалось.

  Код выхода: 1 (общая ошибка)

  Рабочий каталог:

  Вывод:
  ================


  Вывод ошибки:
  ================

  В строке SqlCommands.php 199:

    Не удалось выполнить запрос.


  sql:query [--result-file [RESULT-FILE]] [--file FILE] [--file-delete] [--extra EXTRA] [--db-prefix] [-h|--help] [ -q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [ -d|--debug] [-y|--yes] [--no] [--remote-host REMOTE-HOST] [--remote-user REMOTE-USER] [-r|--root ROOT] [ -l|--uri URI] [--simulate] [--pipe] [-D|--define DEFINE] [--database [DATABASE]] [--target [TARGET]] [--db-url БД -URL] [--notify [NOTIFY]] [--druplicon] [--xh-link XH-LINK] [--] <команда> [<запрос>]

При ближайшем рассмотрении (он же многословный) я заметил это **, и мне сказали в Drupal Slack, что --файл принимает только несжатый файл SQL (позже я убедился в этом). Итак, мой вопрос: как я могу исправить эту ужасную ошибку?

*

продукт:
  хост: example.com
  пользователь: пользователь
  корень: /данные/веб/public_html/веб
  ури: по умолчанию
  пути:
   - файлы: сайты/по умолчанию/файлы

**

// Копируем новые и переопределяем существующие файлы в
// /tmp/termitral_db_20211011_103342.sql.gz. Источник
// [email protected]:/data/web/drush-backups/termitral_db/20211011103342/
// termitral_db_20211011_103342.sql.gz?: да.

и

Команда "/usr/local/bin/drush sql-query --strict=0 --file=/tmp/termitral_db_20211011_103342.sql.gz --file-delete --uri=drupal --root=/var/www/ drupalvm/drupal/web" не удалось.
leymannx avatar
флаг ne
Я помню эту проблему из одного проекта DDEV, и обходной путь заключался в том, чтобы просто проверить каталог /tmp, потому что файл загружается, но каким-то образом не импортируется, а затем заархивировать и импортировать базу данных оттуда. `ddev ssh` и там `cd /tmp`, затем `ls -lhA`, чтобы получить последнее имя файла базы данных, а затем `gunzip
leymannx avatar
флаг ne
Какая версия Drush BTW?
Kartagis avatar
флаг lu
Да извини. 9.7.3.
leymannx avatar
флаг ne
Можете ли вы подтвердить обходной путь? Что загруженная база действительно существует в папке /tmp и просто импорт не сработал?
Kartagis avatar
флаг lu
Он существует в /tmp, и импорт не работает. Это работает, только если я распаковываю его.
Stefanos Petrakis avatar
флаг in
Просто к вашему сведению: " --file=FILE. Путь к файлу, содержащему SQL для запуска. Файлы Gzip принимаются". из https://www.drush.org/latest/commands/sql_query/
Stefanos Petrakis avatar
флаг in
И, наконец, это может быть обходной путь, https://github.com/drush-ops/drush/issues/4319#issuecomment-790558557.
Рейтинг:1
флаг in

Дополнительная информация о других людях с такой же проблемой (https://github.com/drush-ops/drush/issues/4319#issuecomment-790558557)


Есть два способа решить эту проблему:

  • Обновите drush до v10 (лучше бы даже до 11)
    (https://www.drush.org/latest/install/#drupal-совместимость)

  • Или исправьте свой текущий драш, используя что-то вроде следующего:

    diff --git a/includes/drush.inc b/includes/drush.inc
    индекс a8f356ff8..85d56f617 100644
    --- a/includes/drush.inc
    +++ б/включает/drush.inc
    @@ -352,6 +352,7 @@ function drush_file_is_tarball($path) {
       $ поддерживается = [
         'приложение/x-bzip2',
         'приложение/x-gzip',
    + 'приложение/gzip',
         'приложение/x-tar',
         'приложение/x-zip',
         'приложение/zip',
    

Удачи!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.