designed by www.qrone.org
January
2009
Su Mo Tu We Th Fr Sa
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
INFOMATION
- 自己紹介
- マイミク申請はお気軽に:-)
- いまいち使い方がわかりません
- 気になるURLをクリップ
- Awstats を使っています
RECENT ENTRIES
CATEGORIES
MONTHLY ARCHIVES
HATENA BOOKMARK
BLOG PET
LICENCE
CONTACT
shin at windy dot ac
2005年10月17日
MT3.2へのアップグレードに失敗した記録 このエントリーを含むはてなブックマーク

 MovableTypeのバージョンを、3.11-jaから3.2-ja-2へ上げようとしたのだけど、どうもうまくいかず、結局1からインストールした。その記録を書いておくよ。

 

 先ず。フツーに3.2-ja-2のパッケージを落としてきて、解凍して、mt-config.cgiを書いて、mt-check.cgiで環境がちゃんと整ってることをチェックして、mt-upgrade.cgiを実行した。そうしたら下のようなメッセージが出た。

アップグレード中にエラーが発生しました: ERROR: null value in column "template_modified_on" violates not-null constraint

 mt-upgrade.cgiを再実行すると、以下のようになった。

アップグレード中にエラーが発生しました: レコードの保存中にエラーが発生しました: SQLエラーが発生しました: ERROR: null value in column "template_id" violates not-null constraint

 あとは数回mt-upgrade.cgiを再実行しても、メッセージは同じまま。どうもnull禁止の制約が付いているところにnull値を入れようとしているように思われるので、直接データベースを弄って制約を解除しようとする。

[root@shalm MT2]# psql mt

 でPostgreSQLにログイン。
 テーブル名の一覧を出すと、mt_template、mt_template_upgradeがそれらしかったので、この2つのテーブルに付いている制約を外してやろうとする。荒っぽく以下のようにやる。

CREATE TABLE temp AS SELECT * FROM mt_template_upgrade;
DROP TABLE mt_template_upgrade;
CREATE TABLE mt_template_upgrade AS SELECT * FROM temp;
DROP TABLE temp;

CREATE TABLE temp AS SELECT * FROM mt_template;
DROP TABLE mt_template;
CREATE TABLE mt_template AS SELECT * FROM temp;
DROP TABLE temp;

 そうしてmt-upgrade.cgiを実行する。以下のようになった。

アップグレード中にエラーが発生しました: ERROR: relation "mt_template_upgrade" already exists

 "relation"ってのはテーブルのことを指す。要するにmt_template_upgradeが既に存在するからダメだと。仕方ないのでmt_template_upgradeをバックアップしつつ削除してもう一回実行する。

CREATE TABLE backup_template AS SELECT * FROM mt_template_upgrade;
DROP TABLE mt_template_upgrade;
バージョン: 3.2のデータベースからアップグレードします。
データベースをアップグレードします: MT::Template
デフォルト・テンプレート「Comment Preview Template」を登録します。
デフォルト・テンプレート「Comment Pending Template」を登録します。
デフォルト・テンプレート「Comment Error Template」を登録します。
デフォルト・テンプレート「Uploaded Image Popup Template」を登録します。
デフォルト・テンプレート「Comment Listing Template」を登録します。
デフォルト・テンプレート「Dynamic Pages Error Template」を登録します。
デフォルト・テンプレート「TrackBack Listing Template」を登録します。

アップグレード中にエラーが発生しました: Assertion *retlen+1 <= resultant_len+2 failed: file "quote.c", line 319 at lib/MT/ObjectDriver/DBI.pm line 341. at lib/MT/Upgrade.pm line 1340

 これはmt-upgrade.cgiを再実行すると解消される。で、アップグレードに成功した旨のメッセージが出る。
 ブラウザでmt.cgiアクセスしてみると、正常にログインできた。

 ただし、テンプレートのデータが引き継がれていないので、

\o /home/shin/templates.txt;
select * from backup_template;

 でbackup_templateの中身を/home/shin/templates.txtに書き出せる。あとは手作業で復旧する。だるい。それで、テンプレートを一通り設定して、再構築させようとすると怒られる。

Can't call method "build_dynamic" without a package or object reference at lib/MT/Blog.pm line 293

 ソースコードをざっと見てみるが、良く分からずお手上げ。1からインストールしたほうが早いだろうと思ってそうした。

トラックバック URL :
http://windy.ac/mt/mt-tb.cgi/1201
名前 :

URL :

コメント :

今日の井原. Since 2003.11.12 by Ihara
614 Entries - 0 Comments