MTのエントリーIDを強制的に変更する方法メモ

20130324-1832-1.png
 
以前、どうしてもMTのエントリーIDを変更する必要がある
状況になったことがあります。
 
調べてみたのですが、
どうやらMTの標準機能ではできないようですね。
 
 
仕方ないので、MySQLのデータを直接変更したのですが、
その時の方法を覚え書きしときます。

普通はIDを変更することはないですので、
実行する方はいないと思いますが、
万が一実行される場合は、自己責任でお願いします!
 
最悪の場合、データ整合性がおかしくなり、
MTが正常に使えなくなる場合もあります。
 
ご注意を。
 
 
スポンサーリンク

変更前にバックアップ

phpMyAdminのエクスポート機能で
関連テーブルをSQLファイルに出力しておく。
 
万が一、データがおかしくなった場合はここから戻す。
 
 

テーブルのデータ変更

記事のエントリー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;
 
 
IDを変更したあとは、MTの管理画面で
変更した記事が正常に表示できるか確認しておく。
 
問題なさそうな場合はブログを再構築する。
 
 
私の場合、この方法で120記事くらい変更しました。
 
いまんとこは大丈夫です。
 
スポンサーリンク


カテゴリー: Movable Type タグ: , , ,

■前後の記事です

コメントを残す

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