web-dev-qa-db-ja.com

drush migrate-upgrade "[debug] key_value table not found。Database may be empty。"

見つかった手順 here に従って、D7サイトをD8に移行しようとしています。

それを管理し、すべてのPHPコンポーネント、Drupalモジュールなどがあることを確認したら、4つのサイトを更新する必要があり、1つは非常に難しいと思われます。

Composerをインストールして使用し、既存のWebサイトにファイルを移動する目的で、/ homeディレクトリからDrupal 8サイトを作成しました。さらに、migrate-upgradeはhttp経由でD7サイトを参照する必要があるようです。

次のコマンドを実行して古い(D7)サイトをこの新しいD8サイトに移行すると失敗します。

drush migrate-upgrade --legacy-db-url=mysql://user:password@server/db  
--legacy-root=http://example.com --configure only 

私の特定の環境のための次のパラメーター

  • user =サイトがデータベースへの接続に使用するユーザー
  • パスワード
  • サーバー= localhost
  • db =データベース名
  • http://example.com = WebサイトのURL

失敗すると、[debug] key_value table not foundが引用されます。データベースが空である可能性があります。 [0.1秒、9.59 MB]そして、MySQLデータベースを確認すると、テーブル名がないことがわかりますkey_value

テーブルの要件(フィールド名、フィールドタイプ、サイズ、PK/FKなど)がわかれば、テーブルを作成できます。または、このテーブルを作成する他の方法がありますか?.

以前はすべてを手動で行いました。
これに含まれる更新手順 ガイド から、D8サイトを作成し、ComposerやDrushを使用してデータを移行するという全体的なプロセスが必要になると考えていました。
ComposerとDrushを使用するのは初めてです。

どんな助けでも大歓迎です。

ありがとうございました。


drush migrate-upgradeコマンド全体を実行すると、次の出力が表示されます。

Drush Launcherバージョン:0.6.0 ROOT:/ home/akwashnak/ctdollarsandsesne DRUSH VERSION:9 DRUPAL ROOT:/ home/akwashnak/ctdollarsandsesne COMPOSER ROOT:/ home/akwashnak/ctdollarsandsesne VENDOR ROOT:/ home/akwashnak/ctdollarsandsesne/vendor [プリフライト]構成パス:/home/akwashnak/ctdollarsandsesne/vendor/drush/drush/drush.yml [プリフライト]エイリアスパス:/ home/akwashnak/ctdollarsandsesne/drush/sites、/ home/akwashnak/drush/sites [プリフライト]コマンドファイルの検索パス:/ home/akwashnak/ctdollarsandsesne/vendor/drush/drush/src [debug] Bootstrapさらに、migrate-upgrade [0.08秒、8.02 MB] [デバッグ]を検索しますbootstrap可能な限り[0.08秒、8.02 MB] [デバッグ]ドラッシュbootstrapフェーズ:bootstrapDrupalRoot()[0.08秒、8.02 MB] [デバッグ]作業ディレクトリを/ home/akwashnak /に変更しますctdollarsandsesne [0.08 sec、8.02 MB] [debug] Initialized Drupal 8.7.9 root directory in/home/akwashnak/ctdollarsandsesne [0.08 sec、8.15 MB] [debug] Drush bootstrapフェーズ:bootstrapDrupalSit e()[0.09秒、8.5 MB] [デバッグ]初期化Drupalサイトのデフォルトのサイト/デフォルト[0.09秒、8.67 MB] [デバッグ]ドラッシュbootstrapフェーズ:bootstrapDrupalConfiguration()[0.09秒、 8.67 MB] [debug]サービス修飾子を追加[0.1秒、9.17 MB] [debug] key_valueテーブルが見つかりません。データベースが空である可能性があります。 [0.1秒、9.59 MB] [デバッグ] BootstrapフェーズbootstrapDrupalDatabase()が検証に失敗しました。 bootstrapDrupalConfiguration()で続行[0.1秒、9.59 MB] [デバッグ] Application :: find()でbootstrap maxを使用して実行:移行アップグレードを再度検索しようとしています。 [0.1秒、9.59 MB]

Application.php 239行目:

[Symfony\Component\Console\Exception\CommandNotFoundException]コマンドmigrate-upgradeが見つかりませんでした。 Drushはデータベースにクエリを実行できませんでした。その結果、多くのコマンドが使用できなくなります。 --de bugを使用してコマンドを再実行し、関連するログメッセージを確認します。

例外トレース:/home/akwashnak/ctdollarsandsesne/vendor/drush/drush/src/Application.php:239 Drush\Application-> bootstrapAndFind()at/home/akwashnak/ctdollarsandsesne/vendor/drush/drush/src/Application。 php:192 Drush\Application-> find()at /home/akwashnak/ctdollarsandsesne/vendor/symfony/console/Application.php:236 Symfony\Component\Console\Application-> doRun()at/home/akwashnak/ctdollarsandsesne/vendor/symfony/console/Application.php:148 Symfony\Component\Console\Application-> run()/home/akwashnak/ctdollarsandsesne/vendor/drush/drush/src/Runtime/Runtime.php:118 Drush\Runtime\/home/akwashnak/ctdollarsandsesne/vendor/drush/drush/src/Runtime/Runtime.php:49のDrush\Runtime\Runtime-> run()/ home/akwashnak/ctdollarsandsesne/vendor/drushで、Runtime-> doRun() /drush/drush.php:72 require()/home/akwashnak/ctdollarsandsesne/vendor/drush/drush/includes/preflight.inc:18 drush_main()at phar:/// usr/local/bin/drush/bin /drush.php:141 require()/ usr/local/bin/drush:10

2
Andrew

「Drushはデータベースにクエリを実行できませんでした」は、問題がテーブルの欠落ではなく、構成の問題であることを示しています。

移行を実行する前に、空の作業中のD8サイトで開始する必要があります。 composerでコードをダウンロードした後、サイトを初期化しなかったと思いますか?

より明確にするために:composerは、サイト全体を管理するためではなく、コードを管理するためのツールです。composerを使用してコードをダウンロードした後でも、データベースを作成し、drushまたはWebインターフェースを使用して実際にサイトを「設定」します。その時点で初めて、drushマイグレーションで処理を開始できます。

2
Alan Dixon