あまろぐ!

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)

  1. この記事へのコメントはありません。

【ロリポップ】SQLiteのデータファイルを破壊して0KBになったけどなんとか復活できた

ロリポップのプランをコロリポ→ロリポと変えてきたけど

最近のコメント

だーしゅ
IT関係のお仕事してます。焚き火がしたい。
[当ブログについて]