2004年11月11日

Movable Type 3.1 のダイナミックパブリッシングの問題解決法

Movable Type 3.1も出たことだしそろそろlivedoor Blogから移行するか、と新規インストール→ダイナミックパブリッシング(動的生成のこと)を設定してみました。

で、テンプレートを保存しようとすると

オブジェクトの保存に失敗しました: Update failed on SQL error You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ' template_created_on = '20041111120930', template_created_by =

というエラーが発生。どうもダイナミックパブリッシングだとテンプレート保存に失敗することがあるようです。
設定をミスった憶えはないので何かのバグだろうとググって見るとmhoさんのGASARIというブログにこんな記述が・・・

--------------------
実行されるsqlとにらめっこした結果、DBIのbind_paramでtemplate_build_dynamicが設定されず不正なsqlになる(ような気がする)ので、DBI.pmを書き換えて回避。
--------------------

えーっと、難しくてよく分かりません。とりあえず他に解決法が見つからなかったので真似してlib\MT\ObjectDriver\DBI.pmを書き換えてみました。

するとあっさり解決。わーい。mhoさんに感謝しつつ忘れそうなのでメモっとく。

ちなみにDBのmt_templateテーブルのtemplate_created_onとtemplate_modified_onフィールドに現在の時刻を入れて解決する問題とは別モノです。

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/images/9177879
この記事へのコメント
さり気ない改造ですが、さり気なく問題があったので一応お知らせしておきます。
http://mho.s1.xrea.com/archives/2004/10/post_17.html
以前の変更ではダイナミックパブリッシングにしたテンプレートがいつの間にかスタティックに戻る恐れがあります。スマンカッタ。
Posted by mho at 2004年11月23日 15:20