DrupalはMySQLデータベースを使用してコンテンツを管理していますが、データベースの構造を少し知っていると、いろいろなことができて便利です。例えば、あるDrupalサイトからノードとタクソノミーのみを別のサイトにコピーする、ということができるようになります。
phpmyadminの使い方
例えば、MiniBird(stardomainのサーバー)なら、サーバー管理ツールのphpmyadminから入ることができます。ユーザー名とパスワードはデータベースの作成画面にて設定したものです。
phpmyadminにログインできたら、以下のようにデータベースを選択して、データベースのテーブルや情報を参照することができます。
データベースのエクスポート
一部のテーブルのみをエクスポートすることも、データベース全体をエクスポートすることもできます。下のようにエクスポート画面を開いて、エクスポートしたいテーブルを選択します。左クリックすれば選択されて、青く反転します。Cmdクリックで複数選択、Shiltクリックで範囲選択みたいです。sqp形式を選択し、Save as fileにチェックを入れて、Go!
データベースのインポート
エクスポートしたsqlファイルをインポートするには、インポート画面を開いてインポートするだけなのです。
ここで1つポイントがあります。それは、既存のテーブルに上書きをする場合は、予めそのテーブルを空にして置かなければならないということです。それは、Structureタブからテーブルを選択して、Actionという覧からEmptyを実行します。そして、レコードが0になっていることを確認します。これをしないと、
Error: 1062 SQLSTATE: 23000 (ER_DUP_ENTRY)
Message: Duplicate entry "%s" for key %d
とエラーします。エントリーが重複していると上書きではなくエラーとなるようです。
インポートした後は、レコードの数がエクスポートしたテーブルのものと数が一致していることを確認して、完了です。
あるDrupalサイトから別のDruplaサイトへ一部のデータのみを移動する
上記の方法を使用すれば、一部のデータのみを移動することも可能です。例えば、全ての記事・コメントとタクソノミーとURLエイリアスだけを移動するには、下記のテーブルをエクスポートして、新しいデータベースにインポートすればおっけーです。
Field関係(bodyとかCommentとかが格納されているテーブル)
- field_config
- field_config_instance
- field_data_body
- field_data_comment_body
- field_data_field_image
- field_data_field_tags
- field_revision_body
- field_revision_comment_body
- field_revision_field_image
- field_revision_field_tags
Node関係(記事のタイトルとかタクソノミー情報が格納されているテーブル)
- node
- node_access
- node_comment_statistics
- node_counter
- node_revision
- node_type
タクソノミー関係 (タクソノミーの設定が格納されているテーブル)
- taxonomy_index
- taxonomy_term_data
- taxonomy_term_hierarchy
- taxonomy_vocabulary
URLのエイリアス関係 (エイリアスが格納されているテーブル)
- url_alias
以上です。