【Drupal】Config情報をエクスポートしたCSVファイルからUUID行を一括削除する

【Drupal】Config情報をエクスポートしたCSVファイルからUUID行を一括削除する
sinceretechnology

 

 

 

 

はじめに

 

Drupalはデータベースの設定情報を簡単にエクスポートする機能が備わっています。この機能を利用すると、Gitなどソースと一緒にデータベースの設定情報をバージョン管理することもできます。

 

 

 

 

ただ、セキュリティの観点からUUIDがEXPORTファイルに埋め込まれているためシステムのUUIDと一致させる必要があります。バックアップの場合は安全で有効な機能ですが再利用する場合は削除する必要があります。

ここでは一括で削除する手順をメモ代わりに残しておきます。

 

 

 

 

 

Drush コマンド

 

環境設定をエクスポートするには、Drushコマンドを使用する方法と、管理画面からUIにて実施する方法があります。ここでは、Drushコマンドを使用してエクスポートする方法を紹介します。

 

基本的に以下のコマンドで環境設定をすべてYAMLファイルにエクスポートすることが可能です。

drush config:export

 

詳細は、以下Drushサイトに記載されているエクスポートコマンドの説明をご参照ください。

 

 

https://www.drush.org/12.x/commands/config_export/ 
より抜粋

 

 

config:export

Export Drupal configuration to a directory.

Examples

  • drush config:export. Export configuration files to the site's config directory.
  • drush config:export --destination. Export configuration; Save files in a backup directory named config-export.

Options

  • --add. Run git add -p after exporting. This lets you choose which config changes to sync for commit.
  • --commit. Run git add -A and git commit after exporting. This commits everything that was exported without prompting.
  • --message=MESSAGE. Commit comment for the exported configuration. Optional; may only be used with --commit.
  • --destination[=DESTINATION]. An arbitrary directory that should receive the exported files. A backup directory is used when no value is provided.
  • --diff. Show preview as a diff, instead of a change list.
  • --format[=FORMAT].

 

 

 

 

uuidを含む行を削除して、同一ファイルに上書きする

 

 

UUIDを含む行を削除して、同一ファイルに上書きする場合は、「sed」コマンドで「-i」 のオプションを使用します。

 

下記のように、uuidを含むファイルがあった場合、対象行を削除するには「sed -i -e '/^uuid/d' ファイル名」で可能です。

-i オプションで上書き更新されます。

 

sed -i -e '/uuid/'d (ファイル名)

 

 

 

 

ファイルの更新時にバックアップファイルを作成する

 

 

「-i」の後の文字でバックアップファイルの拡張子を指定すると、バックアップファイル名が作成できます

 

sed -i.bak -e '/Tohoku/d' test.txt

 

 

 

 

複数ファイルに対して、uuidを含む行を削除、同一ファイルに上書きする

 

grep -l *.yml | xargs sed -i.bak -e '/^uuid/d'

 

 

検索したファイルを一括移動する

 

find ./ -name '*userprompt*' | xargs -I% mv % ./new

 

 

 


この記事に関するご質問やご意見などございましたらお問い合わせフォームからお気軽にご連絡ください。