Twitter icon  Tumblr icon  facebook icon  rss icon  feedly icon
naglly.com > MovableTypeアーカイブ

MT4:Movable Type4.2アップグレード時の不具合

 無事Movable Type4.01 → Movable Type4.2へのアップグレードに成功しました。

 だいぶ軽くなった印象です。やってよかったです。記事数が600近くあるこのブログでは、色々と動きが重たく、新規の記事投稿もままならない状態でした。今は、新規投稿が一応最後まで出来ています。

 あとは、ブログの全再構築についてですが、やはり半日以上掛けても終わらない状態です。設定をスタティック(静的、URL固定)にしているのですが、デザインを大幅に変えたとき、再構築がままならないので困っています。

 更なるスピードアップを願いたいところです。もう少し待ちましょう。

 アップグレード時に躓いた点があるので、そのトラブルシューティングなど書きます。

データベースのアップグレード時に以下のメッセージが出て止まってしまう

 Movable Type 4.2 へのアップグレード | Movable Type 4 ドキュメントに従ってアップグレードをしていたのですが、下記の様なメッセージが出てアップグレードが終わってしまいました。
failed to execute statement ALTER TABLE mt_ts_funcmap ADD CONSTRAINT mt_ts_funcmap_funcname UNIQUE (ts_funcmap_funcname): Duplicate key name 'ts_funcmap_funcname' at lib/MT/Upgrade.pm line 2604

 画像は以下のように出ます。

DBアップグレード時のエラー

 メッセージを素直に解釈すると、mt_ts_funcmapと言うテーブルのユニークインデックス"ts_funcmap_funcname"が重複しているため、アップグレード出来ないと言う事になります。

 もしかしたら、ここのBig-Netだけの問題なのかも知れません。

 一度サポートの方に問い合わせをしたのですが、単純に重複しているインデックス消せば良いと言う事に気付いたので早速実行に移しました。

 Big-Netは、SSLでリモートログインできるので、こういうとき便利です。リモートログイン出来ないレンタルサーバーサービスだと、こういうことは出来ません。

 おそらく素直に、サポートへ頼むしかないと思います。

解決方法

 以下のようにMysplにログインします。
$ mysql -uユーザー名 -p データベース名
Enter password: パスワード

mysql>

 原因となっているのは、mt_ts_funcmapと言うテーブルのユニークインデックス"ts_funcmap_funcname"なので、これを削除します。

mysql> drop index ts_funcmap_funcname on mt_ts_funcmap;

 これで、もう一度アップグレードを実行します。アップグレードは頭からやり直してくれるので問題ありません。

 僕の場合、もう一箇所不具合が出ました。

 今度は、mt_ts_jobテーブルの"mt_ts_job_uniqkey","mt_ts_job_funcid"インデックスです。これも消去します。

mysql> drop index mt_ts_job_uniqkey on mt_ts_job;
mysql> drop index mt_ts_job_funcid on mt_ts_job;

 これで、無事アップグレードできました。

 まとめると、Movable Type 4.01から4.2へのアップグレードの場合、下記を消す必要があるかもしれません。

  • テーブル:mt_ts_funcmap
    インデックス:ts_funcmap_funcname
  • テーブル:mt_ts_job
    インデックス:mt_ts_job_uniqkey,mt_ts_job_funcid

 また、何か不具合が起きたら報告します。

 この記事のカテゴリは、MovableType です。
このエントリーをはてなブックマークに追加