movabletypeのエントリーIDを強制的に変更する方法メモ
以前、どうしてもMT(movabletype)のエントリーIDを変更する必要がある状況になったことがあります。
調べてみたのですが、どうやらMTの標準機能ではできないようですね。
仕方ないので、MySQLのデータを直接変更したのですが、その時の方法を覚え書きしときます。
普通はIDを変更することはないですので、実行する方はいないと思いますが、万が一実行される場合は、自己責任でお願いします!
最悪の場合、データ整合性がおかしくなり、MTが正常に使えなくなる場合もあります。
ご注意を。
(1) 変更前にバックアップする
phpMyAdminのエクスポート機能で関連テーブルをSQLファイルに出力しておく。
万が一、データがおかしくなった場合はここから戻せます。
(2) テーブルのデータを変更する
記事のエントリーIDに関係するのは、以下のテーブルです。
- mt_entry
- mt_objecttag
- mt_placement
[更新用SQLのメモ]
UPDATE mt_entry SET entry_id = 変更後のID WHERE entry_id = 変更前のID; UPDATE mt_objecttag SET objecttag_object_id = 変更後のID WHERE objecttag_object_id = 変更前のID AND objecttag_object_datasource = 'entry'; UPDATE mt_placement SET placement_entry_id = 変更後のID WHERE placement_entry_id = 変更前のID;
コメントとトラックバックのデータがある場合は、以下も必要です。
- mt_comment
- mt_trackback
[更新用SQLのメモ]
UPDATE mt_comment SET comment_entry_id = 変更後のID WHERE comment_entry_id = 変更前のID; UPDATE mt_trackback SET trackback_entry_id = 変更後のID WHERE trackback_entry_id = 変更前のID;
(3) 動作確認する
IDを変更したあとは、MTの管理画面で変更した記事が正常に表示できるか確認しておく。
問題なさそうな場合はブログを再構築します。
私の場合、この方法で120記事くらい変更しました。
今のところは大丈夫そうですね。
コメント
トラックバックは利用できません。
コメント (0)
この記事へのコメントはありません。