負け組アーキテクトの憂鬱

メモしておきたいことや読書の記録を淡々と書く。

Movable Type

ようやくMTを3.35にしてみた(がDBのUpgradeで手こずる)

気まぐれ更新。

以前3.3にアップグレードした時と同じ事象になった。

 failed to execute statement alter table mt_session modify session_id varchar(80) not null primary key: Multiple primary key defined at lib/MT/Upgrade.pm line 1190.

というエラーで先に進めない。うちはMySQLなんだけど、MySQLの人はみんな悩まされてるのかしら?

ad hocな対応として、とりあえずmt_sessionのprimary keyを一旦削除してみた。

 mysql> show fields from mt_session;
 +---------------+----------------+------+-----+---------+-------+
 | Field         | Type           | Null | Key | Default | Extra |
 +---------------+----------------+------+-----+---------+-------+
 | session_data  | mediumblob     | YES  |     | NULL    |       |
 | session_email | varbinary(255) | YES  |     | NULL    |       |
 | session_id    | varbinary(80)  |      | PRI |         |       |
 | session_kind  | binary(2)      | YES  | MUL | NULL    |       |
 | session_name  | varbinary(255) | YES  |     | NULL    |       |
 | session_start | int(11)        |      | MUL | 0       |       |
 +---------------+----------------+------+-----+---------+-------+
 6 rows in set (0.00 sec)

おおかた、session_idがPKなのに、Upgrade.pmの中でさらにPKを指定しようとしていたんでしょう。

 alter table mt_session drop primary key;

として、session_idのKeyからPRIが消えているのを確認。

 mysql> show fields from mt_session;
 +---------------+----------------+------+-----+---------+-------+
 | Field         | Type           | Null | Key | Default | Extra |
 +---------------+----------------+------+-----+---------+-------+
 | session_data  | mediumblob     | YES  |     | NULL    |       |
 | session_email | varbinary(255) | YES  |     | NULL    |       |
 | session_id    | varbinary(80)  |      |     |         |       |
 | session_kind  | binary(2)      | YES  | MUL | NULL    |       |
 | session_name  | varbinary(255) | YES  |     | NULL    |       |
 | session_start | int(11)        |      | MUL | 0       |       |
 +---------------+----------------+------+-----+---------+-------+
 6 rows in set (0.00 sec)

この状態で、再度アップグレード用のcgiを実行すると今度はうまくいった。もういっかいfieldsを見てみる。

 mysql> show fields from mt_session;
 +---------------+----------------+------+-----+---------+-------+
 | Field         | Type           | Null | Key | Default | Extra |
 +---------------+----------------+------+-----+---------+-------+
 | session_data  | mediumblob     | YES  |     | NULL    |       |
 | session_email | varbinary(255) | YES  |     | NULL    |       |
 | session_id    | varbinary(80)  |      | PRI |         |       |
 | session_kind  | binary(2)      | YES  | MUL | NULL    |       |
 | session_name  | varbinary(255) | YES  |     | NULL    |       |
 | session_start | int(11)        |      | MUL | 0       |       |
 +---------------+----------------+------+-----+---------+-------+
 6 rows in set (0.00 sec)

おお、元通り。よかったよかった(のか?)。

Movable Type 3.3にアップグレード

3.2-ja-2からのアップグレードに失敗。

MySQLのエラーなんだけど、たぶんこれ、ソフト側の設定云々でどうなる問題ではない気がしてシックス・アパートさんに相談させてもらっております。短絡的に、エラーが出なくなるまでテーブル構造変えたりすればいいんだろうけど、根本解決にはならないので。

どうしようもないので、とりあえず3.2-ja-2に切り戻し、mysqldumpのログからdb再構築するも、新規エントリの追加時にidが0まで巻き戻っていて登録しようとするとまたMySQLがエラー吐く。今度はどこでどんな地雷を踏んでしまったのやら・・・。素直にすんなりインストールしているはずなんだけどなあ。

切り戻して暫く様子を見てみよう、なんて思ってましたが不具合でちゃったらしょうがない。テンプレートのバックアップ取って、エントリの書き出しして、3.2環境削除→3.3新規インストール→チマチマリストアしました。

疲れたので寝ます。おやすみなさい。

mt-sukeroku-plus.plで書いたエントリのフィード不具合

実に便利なmt-sukeroku-plus.plプラグインだが、一つだけ問題があった。rssやatomのフィード中で、descriptionやcontentがhtmlに変換される前の状態で記述されている。RSSリーダなどで見るとWiki独特の書式のまま表示されてしまう。

これを修正するには、index.xml, atom.xmlのテンプレート中で、

<$MTEntryBody encode_xml="1" convert_breaks="0"$>

<$MTEntryMore encode_xml="1" convert_breaks="0"$>

となっている部分を、それぞれ、

<$MTEntryBody encode_xml="1"$>

<$MTEntryMore encode_xml="1"$>

と変更すれば良い。

PukiWikiな書式で入力したい

なんかblockquoteも微妙だし、preの中にもbrが補完されてすごいことになるし、かといって全部タグ打ちするのもめんどくさいしで悩んでいたところ、ありましたよ、mt-sukeroku-plus.plというとてつもなく便利なプラグインが!!作者様、本当にありがとうございます。

と、それだけで終わるのもあんまりなので、ちょっとした補足だけでも。導入ガイドの例はMTのバージョンが古い(2.661)ため、3.2-ja-2とは表記が違う部分がある。例では「''テキストフォーマット''」となっている所は、3.2-ja-2では「''改行設定''」と文言が変わっているので注意(ええ、見つけられませんでしたとも)。

TypeKeyに苦戦

TypeKeyに登録してある人はコメント書き込み時にわざわざ名前とかメールアドレスとか入力しなくても良いんですってね!

便利そうなので使ってみたら・・・・

TypeKeyのログイン名をメールアドレスで登録しちまってたもんだから、TypeKeyプロフィールページへのリンクでメールアドレスが丸分かりでした。さすが負け組。

サポートに問い合わせしてみたら、ログイン名の変更は出来ないので新しいTypeKeyを登録してください、とのこと(迅速な対応ありがとうございます)。

でも、個人ライセンスは今のTypeKeyに紐付いてるんだよね・・・。

いくらお求めやすいお値段とはいえ、新しいTypeKey用にもう1ライセンス買い直しは家計に大打撃、ランチのメニューも大幅格下げなこと請け合いですよ。かといっていちいち再ログインするのもメンドクサイし、何のためのシングルサインオンだかわかりませんよ!という具合。

困った客だというのは百も承知で、引き続きいろいろ問い合わせ中です。
ホントごめんなさい。

つづく。
続きを読む

噂のMovable Typeを

インストールしてみました。

てか、これすごいねー。
毛の生えた掲示板とか日記のCGI見たいなのを想像してたんだけど。

しばらくwebとか触ってない間に世の中はどんどん進歩しているんですなあ。
ボチボチといじくってまいります。