PostgreSQLからMySQLへの移行

Drupal 6.xがPostgreSQLとあまり仲が良くないことは秘密ではありません。 むしろ、カーネルは友達ですが、個々のcontribモジュールは常に遠く離れています。 そして今、私は定期的に警告を失い、パッチを適用するのにうんざりしています-MySQLに移行することにしました。



Googleは、この種の移行に関するあらゆる種類のクエリ-MySQLからPostgreSQLへの反対方向に頑固に移行を発行しました。それは理解できる理由ですが、それは良くありません。 Drupalをコンテキストから外すと、有料の製品とあらゆる種類の理想的でないスクリプトが検出され始めます。 最終的に、私はすべてをペンで自分でやることに決めました。



対象: drupal-6.8mysql-5.0.70-r1postgresql-8.0.15



シーケンス:

  1. 理由はわかりませんが、たまたまテストインストールではなく、すぐに本番環境で実験を行いました。 したがって、まずサイトへのアクセスをオフにします。 これをフロントエンドサーバー(nginx)で行いました。IPアドレスを許可し、他のすべてのユーザーを禁止しました。 そして、私が標準のDrupalメンテナンスモードを信頼していないからではなく、おそらくインストールプロセスをゼロから数回実行する必要があるからです。
  2. 管理パネルに移動し、データベースに保存されているあらゆる種類のキャッシュ、インデックス、ログをオフにしてクリーンアップします-転送中のそれらからのがらくたは、後で役立つ以上のものになります。
  3. 含まれるモジュールのリストを保存します。 Firefoxのプラグイン-ScrapBookを使用しました。
  4. 現在のデータベースのデータを、スキームなしでバックアップします。

    pg_dump -U postgres -D -d drupal > old_data.sql





    INSERTを除くすべてをこのダンプから切り取ります。
  5. MySQLでDrupalのデータベースとユーザーを作成します。
  6. 現在のsettings.phpをどこかに転送し、Drupalのインストールプロセスを最初から開始し、以前に作成したユーザーとデータベースを示します。
  7. インストール後、 settings.phpに必要な変更を加え、必要なモジュールを有効にして、以前に保存したリストを確認します。 この操作により、MySQLのモジュールに必要なテーブルが作成されます。
  8. phpmyadminに、強制的なDROP- new_schema.sqlを使用してMySQLテーブルの構造をダンプするように依頼します。
  9. ダンプのマージ:

    cat new_schema.sql old_data.sql > install.sql





  10. 結果の検索置換ファイルでは、タイプ「type」の列名を慎重にタイプに置き換えます(引用符付きおよび引用符なし)。
  11. 私たちはチェックします:

    mysql -u drupal -p drupal < install.sql





    私の場合、MySQLは列名のみを誓約しました。 MySQL全体がinstall.sqlを使い果たすまで、前の手順とこの手順を繰り返します。

  12. 追加のアクションは必要ありませんでした。サイトは正常に機能しましたが、すでにMySQLにあります。
  13. また、キャッシュを元に戻し、外部からサイトにアクセスすることを忘れないでください。


ほぼ30分かかりました-Googleが長くなりました。



PS厳密に判断しないでください-これはhabrに関する私の最初の投稿です。 その前には、「作家ではなくチュクチ-チュクチ読者」がいました。




All Articles