Drupal 7 から Grav への引っ越し
要件
- PHP v7.1 以上 (composer 依存関係のため)
- Drush
- 機能している Drupal 7 サイト(コンテンツが配信されているもの)
public://及び Drupal サイトのユーザーモジュールフォルダ(通常はsites/all/modules/contrib)への読み・書きアクセス権限
インストール
grav_exportプラグインをあなたの Drupal のsites/all/modules/contribフォルダにダウンロードし、そこに移動する- 依存関係のインストールのため、
grav_exportフォルダ内でcomposer installを実行 grav_exportモジュールを、drush en grav_export -yもしくは GUI 管理画面から有効化するdrush grav_export_allを実行するか、もしくはそのエイリアスのdrush graveaを実行し、すべてのアイテムをエクスポートする。他のオプションは後ほど説明します。- エクスポートされたファイルは
[DRUPAL_ROOT]/sites/default/files/grav_export/EXPORTに配置されている - ユーザーの表示や管理には、 Grav プラグインの admin-addon-user-manager を推奨します。
- Grav へのデータのインポートは、以下の手順を踏んでください
===
Drupal からユーザーをエクスポート
Command
drush grav_export_users もしくは drush graveu により、 Grav のユーザーアカウントファイルを生成します。
Results
EXPORT/accounts/下にあるエクスポートフォルダにユーザーアカウントが作成されます- ユーザー名は3文字から16文字に整えられます。
- ユーザー名が省略されたり伸ばされたりした場合は、ユーザー名は衝突を避けるための Drupal の uid も持ちます。
- 各アカウントのパスワードはランダム生成され、それぞれの Drupal アカウントと関係の無いパスワードになります。アカウントが最初に認証されたとき、パスワードは自動でハッシュ化されます。
Importing Users to Grav
EXPORT/accounts フォルダを user ディレクトリにコピーしてください。(例えば、 username.yaml ファイルは user/accounts に置かれるべきです)
Drupal からユーザーロールをエクスポート
Command
drush grav_export_roles もしくは drush graver により、 Grav の groups.yaml ファイルを生成します。
Results
Drupal のユーザーロールは、 Grav グループの groups.yaml ファイルとして、 config/groups.yaml にエクスポートされます。ロールのエクスポートには、いくつかの注意点があります:
- 各 Drupal ロールは、
drupal_<ROLE_WITH_UNDERSCORES>Grav グループに変換されます(例:authenticated userは、次のようになりますdrupal_authenticated_user) drupal_administratorグループは、admin.superアクセス及びadmin.loginアクセスの権限を与えられます。drupal_authenticated_userグループは、admin.loginアクセス権限を与えられます。- すべてのアカウントは、
"drupal_authenticated_user"グループを与えられます。 - Drupal の管理者ロールを持つユーザーは、
drupal_administratorグループを与えられます。
Importing User Roles
EXPORT/config フォルダを users/config にコピーしてください。
Drupal からコンテンツタイプをエクスポート
Command
drush grav_export_content_types もしくは drush gravect により、 Grav のブループリントファイル及び html.twig ファイルを生成します。
Results
すべての定義されたフィールドタイプに対して、 drush gravect コマンドは互換性のあるブループリントファイルと html.twig ファイルを各 Drupal コンテンツタイプについて作成を試みます。ファイルは、それぞれ EXPORT/themes/drupal_export/blueprints 及び EXPORT/themes/drupal_export/templates にエクスポートされます。
Known Limitations
number_integerフィールド 多くの Grav フィールドでの多重度は、ひとつの値しかサポートしません。Drupal エントリーの最初のひとつだけがエクスポートされます。addressfieldフィールド Grav にはアドレスフィールドの概念がありません。 Drupal フィールドデータはarrayフォームタイプとしてエクスポートされます。
Importing Content Types to Grav
EXPORT/themes/drupal_export/blueprints 及び EXPORT/themes/drupal_export/templates フォルダを Grav のアクティブテーマにコピーしてください。管理プラグインは、各コンテンツタイプと関係するフィールドへの追加オプションを提供するようになるでしょう。
注意: フィールドコンテンツが Grav ページヘッダーに追加されている間、これらのフィールドの表示は、 Drupal からエクスポート されません 。 html.twig ファイルは、追加フィールドを表示するために、(メインの body コンテンツを除いて)修正される必要があるでしょう。
Drupal から node をエクスポート
Command
drush grav_export_nodes もしくは drush graven により、 Grav のユーザーとグループを生成します。
Results
- 各 node は、 Drupal の url エイリアスとコンテンツタイプをベースに
EXPORT/pages下のフォルダ構造にエクスポートされます(例:pages/content/my_first_page/page.yamlもしくはpages/content/cool_article/article.yaml) - Drupal フィールドデータは、ページのヘッダーに保存されます。
- ファイルは、
EXPORT/data/files/に保存され、 Drupal 的なストレージモデルに従います。 - drush 出力中、追加のタクソノミータームが出力されるかもしれません。これらを Grav の
user/config/site.yamlファイルの taxonomy キー以下にコピーしてください。
Importing Nodes to Grav Pages
EXPORT/data 及び EXPORT/pages フォルダを Grav の user ディレクトリにコピーしてください。