web-dev-qa-db-ja.com

Drush経由でデータベースの更新を実行できません-未定義の関数batch_get()を呼び出します

コードベースのモジュールを更新した後、drushを介してデータベースの更新を実行するのが困難です。これは報告されているエラーです:

エラー:行92の/root/.config/composer/vendor/drush/drush/commands/core/drupal/batch.incの未定義の関数batch_get()への呼び出し#0 /root/.config/composer/vendor/drush/ drush/includes/batch.inc(98):_drush_batch_command( '11459')

これは本番環境でのみ発生します。ステージング環境は同じで、問題なく動作します。

Update.phpを介してアップデートを実行できます。今後数日で新しいコアメディアモジュールに移行する予定です。これらの更新により、データベースの更新が実行されるまでサイトがダウンするため、update.phpはオプションになりません。

データベースは別のサーバーにありますが、drush sql-cliなどのツールを介してそのサーバーに接続しても問題はありません。

問題の「未定義」メソッドを追跡し、存在することを確認しました。

助けてくれてありがとう。

1
Jon Hockley

--debugフラグを指定してDrushステートメントを実行すると、次のような行が表示されます。

DB資格情報を確認するとエラーが発生しました:一致するSQL [デバッグ]クラスが見つかりません。 Drushはデータベース接続の詳細を見つけることができません。

実際のサイトフォルダに移動してみてください。/var/www/vhosts/EXAMPLE/website/sites/defaultで、サイト固有のディレクトリからdrushコマンドを実行します。

1
Rob Holmes