MTの一括編集は新規テンプレート作成でSQLコード出力が便利

当ブログではMovable Typeを使用していますが、当初は使い方がよく分からなかったため、descriptionタグの記入に「タグ」機能を使用して反映させていました。

けれども、「概要」の項目を使えば、よりスマートな形でdescriptionタグに反映できると判明したため、これまで「タグ」に入力していた内容を「概要」の項目に一括コピーして整理することにしました。

具体的には、記事編集の画面では以下のように「概要」の箇所は空白になっており、「タグ」の箇所にdescriptionの内容が入力されている状態です。

記事編集で空の概要欄

データベース上でも、mt_entryの箇所から表示タブをクリックして確認してみますと、「概要」のentry_excerptの箇所は空白の状態です。

データベースで空のentry_excerpt

この箇所に「タグ」に入力されている内容をそのままコピーしたいわけです。

この方法についてですが、コード抽出用の新規テンプレートを作成してSQLファイルを出力し、データベース上で全記事分を一括編集すると便利です。

まず、「テンプレート」から新しい「インデックス」を作成し、名前を「データ抽出用」などとした上で、出力ファイル名をupdate.sqlなどとします。

SQLコード抽出用の新規テンプレート

具体的なコードの内容は省略しますが、生成AIに書いてもらえば楽です。

保存して再構築したのち、サイトのURL(example.com/update.sqlなど)にアクセスしますと、以下のようなSQLファイルが出力されます。

SQLコードのリスト

この内容は、例えば、entry_idが746番の記事の概要(entry_excerpt)の箇所に、シングルクォートで囲まれた内容をセットしてくださいという意味です。同じデータベース内でentry_idは重複しないため、ブログIDまでは指定する必要はないかと思います。

念のため、作業する前にデーターベースのバックアップをしたのち、試しに最初の1記事分だけSQLコードを実行してみます。

データベース上でSQLコードを実行

すると「概要(entry_excerpt)」の項目に正常に反映されました。

概要(entry_excerpt)が入力されたデータベースの項目

データベースに入力されたため、Movable Type投稿画面の「概要」欄にも正常に反映されました。

概要の入力が反映された記事の投稿欄

あとは、残りのSQLコードも全て実行したのち、記事テンプレートのdescriptionの箇所が「タグ」ではなく、「概要」で出力されるように修正し、再構築したのち、実際にサイトに反映されているかを確認します。

問題なければ、最後に「タグ」に入力されていた内容やデータ抽出用に作成したテンプレートも削除して再構築します。

その他、SQLではなく、CSV形式で出力したのち、Excelで修正してのインポート、あるいはMT形式のフォーマットで出力したのち、修正してのインポートなども試みましたが、別の新しい記事として反映されてしまいました。そのため、記事のIDを指定して、その内容を1部修正して上書きするといったことは難しいと感じています。

記事のIDを指定して項目の1部を変更する場合には、上記のようにデータベースでSQLを使用して一括修正すると簡単と思います。

関連記事: