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記事くらい変更しました。
 
今のところは大丈夫そうですね。
 
カテゴリー: Movable Type タグ: , , ,
スポンサーリンク

■前後の記事です

コメントを残す

メールアドレスが公開されることはありません。