3.0から有料になったので, どうしようかと躊躇していましたが,
そろそろ頃合いかなと思い, 12,000円ほど払いました.
しかし, アップグレードにハマる, ハマる.
まず, アップグレード画面でtemplate_created_onがNullになっていて先に進まない.
mt_templateテーブルに, template_created_on列をtimestamp型で作り込んで,
現在時刻をタイムスタンプとして入れておくと, 何とかアップグレード完了.
しかし, さらに難問.
今度は, ログインできなくなった....
いろいろ試行錯誤の結果, 以下の方法により回避させた.
まず, mtデータベースをドロップさせる.
# su - postgres
% psql template1
template1=# drop database mt;
template1=# \q
さらに, いままで, EUC-JPにしていたが, これからUFT-8にすることにしたので,
アップグレードにダンプしたダンプファイル内のCREATE TABLEは使わないことにする.
また, 問題となるmt_templateテーブルは自分であらかじめ作成しておいてやる.
やることは簡単. 以下のコマンドをファイルに書き込み, postgres権限にて
% psql template1 < ファイル名
をすればよい.
--------------------ここから--------------------
CREATE DATABASE mt WITH TEMPLATE = template0 OWNER = postgres ENCODING = 'UNICODE'; \connect mt; create table mt_template ( template_id integer primary key not null, template_blog_id integer not null, template_name varchar(50) not null, template_type varchar(25) not null, template_outfile varchar(255), template_rebuild_me smallint, template_text text, template_linked_file varchar(255), template_linked_file_mtime varchar(10), template_linked_file_size integer, -- template_created_on timestamp not null, template_created_on timestamp, -- template_modified_on timestamp not null, template_modified_on timestamp, template_created_by integer, template_modified_by integer, template_build_dynamic smallint, unique (template_blog_id, template_name) ); create sequence mt_template_id; create index mt_template_type on mt_template (template_type);--------------------ここまで--------------------
次に, ダンプしておいたデータをリストアさせる
% psql template1 < ダンプファイル名
(ただし, 以前のデータがEUC-JPで入っていたので, ダンプファイルの内容は
nkf -wでUTF-8に変換してある)
次に, 問題となるnot null制約の列にデータを投入し, 解除しておいた
not null制約を復活させる.
% psql mt template1=# update mt_template set template_created_on = current_timestamp, template_modified_on = current_timestamp ; template1=# ALTER TABLE mt_template ALTER COLUMN template_created_on SET NOT NULL; template1=# ALTER TABLE mt_template ALTER COLUMN template_modified_on SET NOT NULL; template1=# \q
ここまでしておいてからmt-upgrade.cgiを呼び出してやれば,
正常にアップグレードできる.
0 件のコメント:
新しいコメントは書き込めません。