BaruLog × ばるろぐ

123456789101112131415161718192021222324252627282930
HOME (Archive) > Category : できごと > Nucleus3.3へのアップグレード時に発生した不具合メモ
« Nucleusアップグレード & タグ検索対応


Nucleus3.3へのアップグレード時に発生した不具合メモ

投稿者:barukichi
投稿日時:2007-11-07 - 23:48:06
カテゴリー:できごと - トラックバック(No Trackbacks)
タグ:
今日のNucleus 3.21→3.3へのアップグレードで、Nucleus標準のコメント表示機能でクエリエラーになる不具合が出た。

↓エラーはこんな感じ。コメントが表示される代わりに、こんな文字列が。

mySQL error with query SELECT c.citem as itemid, c.cnumber as commentid, c.cbody as body, c.cuser as user, c.cmail as userid, c.cemail as email, c.cmember as memberid, c.ctime, c.chost as host, c.cip as ip, c.cblog as blogid FROM nucleus_comment as c WHERE c.citem=2002 ORDER BY c.ctime: Unknown column 'c.cemail' in 'field list'

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/barukichi/www/blogs/nucleus/libs/COMMENTS.php on line 87


エラーメッセージを読むと「nucleus_commentテーブルにcemailなんてカラムは無い」って書いてあるんだが。

早速さくらインターネットのDB管理画面でテーブルを確認すると、やっぱり無い。
そりゃエラーになるわなw

ってことで、眠いので「駄目なら明日以降でいいや」程度にあまり気合いは入れずに少しだけ検索してみると、同じようなエラーを吐いたまま放置されたブログは見つかるものの、解決策について書かれたページはなさそうな感じだった。

と、1つだけ間接情報にヒット。

■Nucleus CMS 日本語版(コア) - FS#38 - 3.3 用アップグレードスクリプト

Nucleus 3.3から、コメント入力フォームが増えたのかな?
これまでの名前とメアドに加えて、Webサイトのアドレスもコメントと一緒に入力できるようになったらしい。

で、今まではコメント入力者のメアドを nucleus_comment.cmail に登録してたのを、3.3で追加された cemail へ変更、新しく入力できるようになったWebサイトURLの入力値を既存の cmail へ登録するようになったっぽい(全部推測)。
ややこしい事をしてくれよるわい。

というわけで、自動アップグレード時に実行された(筈の)アップグレードスクリプトを確認すると、upgrade3.3.phpに下記の記述が(抜粋)。

if (!upgrade_checkIfColumnExists('comment','cemail')) {
  $query = " ALTER TABLE `" . sql_table('comment') . "`
    ADD `cemail` VARCHAR( 100 ) AFTER `cmail` ;";

  upgrade_query('Altering ' . sql_table('comment') . ' table', $query);
}

if (!upgrade_checkIfColumnExists('blog','breqemail')) {
  $query = " ALTER TABLE `" . sql_table('blog') . "`
    ADD `breqemail` TINYINT( 2 ) DEFAULT '0' NOT NULL ;";

  upgrade_query('Altering ' . sql_table('blog') . ' table', $query);
}

// check cmail column to separate to URL and cemail
mysql_query(
  'UPDATE ' . sql_table('comment') . ' ' .
  "SET cemail = cmail, cmail = '' " .
  "WHERE cmail LIKE '%@%'"
);


これを読む限り、推測は間違ってなさそう。
あと nucleus_blog テーブルにも breqemail ってカラムが追加されることになってるけど、DBを確認したら、無い。

このスクリプト全体が実行されてない感触。。。
自動アップグレードの時、ちゃんと「アップグレード成功」みたいなメッセージが表示されてたのに、どうなってんのw

まぁ兎にも角にも、対処法が分かれば後は作業するだけ。
管理画面で nucleus_comment テーブルの cmail を cemail へリネーム、次に (cemailカラムの手前の位置に)cmail を追加、最後に nucleus_blog テーブルに breqemail を追加、以上。
# upgrade3.3.phpの手順を自分が作業しやすいようアレンジしてます。
# → いま軽くデータ確認してみた。やっぱ横着したら駄目っぽい。
# メアドしかないと思ってカラム名のリネームで済ませてたんだけど、思いっきりURLも入力されてたw
# この部分、また後日書き直しますが、基本的にはばるきち流の横着手順じゃなくアップグレードスクリプトの通り実行すればOKです。

ホントに以上なんだろうか。。。
他にも差分スクリプトが幾つもあるんだけど。。。

また今度、ちゃんと実行されたか確認してみようっと。

今日はもう眠いのであります。 (睡魔到来)
↑ヴィルヘルミナ&ティアマトー風w


Comments

コメントはありません

Add Comments

[スパム対策] コメントの送信はJavaScriptを利用できることが条件です %20%3c%61%20%69%64%3d%22%6e%75%63%6c%65%75%73%5f%63%66%22%3e%3c%2f%61%3e %3c%66%6f%72%6d%20%6d%65%74%68%6f%64%3d%22%70%6f%73%74%22%20%61%63%74%69%6f%6e%3d%22%23%6e%75%63%6c%65%75%73%5f%63%66%22%3e %09%3c%64%69%76%20%63%6c%61%73%73%3d%22%63%6f%6d%6d%65%6e%74%66%6f%72%6d%22%3e %3c%69%6e%70%75%74%20%74%79%70%65%3d%22%68%69%64%64%65%6e%22%20%6e%61%6d%65%3d%22%61%63%74%69%6f%6e%22%20%76%61%6c%75%65%3d%22%61%64%64%63%6f%6d%6d%65%6e%74%22%20%2f%3e %3c%69%6e%70%75%74%20%74%79%70%65%3d%22%68%69%64%64%65%6e%22%20%6e%61%6d%65%3d%22%75%72%6c%22%20%76%61%6c%75%65%3d%22%62%61%72%75%6c%6f%67%2e%70%68%70%3f%69%74%65%6d%69%64%3d%32%30%31%36%26%61%6d%70%3b%63%61%74%69%64%3d%31%31%22%20%2f%3e %3c%69%6e%70%75%74%20%74%79%70%65%3d%22%68%69%64%64%65%6e%22%20%6e%61%6d%65%3d%22%69%74%65%6d%69%64%22%20%76%61%6c%75%65%3d%22%32%30%31%36%22%20%2f%3e %09%09 %09%09%3c%6c%61%62%65%6c%20%66%6f%72%3d%22%6e%75%63%6c%65%75%73%5f%63%66%5f%62%6f%64%79%22%3eコメント%3a%3c%2f%6c%61%62%65%6c%3e %09%09%3c%74%65%78%74%61%72%65%61%20%6e%61%6d%65%3d%22%62%6f%64%79%22%20%63%6c%61%73%73%3d%22%66%6f%72%6d%66%69%65%6c%64%22%20%63%6f%6c%73%3d%22%34%30%22%20%72%6f%77%73%3d%22%31%30%22%20%69%64%3d%22%6e%75%63%6c%65%75%73%5f%63%66%5f%62%6f%64%79%22%3e%3c%2f%74%65%78%74%61%72%65%61%3e %09%09%3c%6c%61%62%65%6c%20%66%6f%72%3d%22%6e%75%63%6c%65%75%73%5f%63%66%5f%6e%61%6d%65%22%3eお名前%3a%3c%2f%6c%61%62%65%6c%3e %09%09%3c%69%6e%70%75%74%20%6e%61%6d%65%3d%22%75%73%65%72%22%20%73%69%7a%65%3d%22%34%30%22%20%6d%61%78%6c%65%6e%67%74%68%3d%22%34%30%22%20%76%61%6c%75%65%3d%22%22%20%63%6c%61%73%73%3d%22%66%6f%72%6d%66%69%65%6c%64%22%20%69%64%3d%22%6e%75%63%6c%65%75%73%5f%63%66%5f%6e%61%6d%65%22%20%2f%3e %09%09%3c%6c%61%62%65%6c%20%66%6f%72%3d%22%6e%75%63%6c%65%75%73%5f%63%66%5f%6d%61%69%6c%22%3eウェブサイト%3a%3c%2f%6c%61%62%65%6c%3e %09%09%3c%69%6e%70%75%74%20%6e%61%6d%65%3d%22%75%73%65%72%69%64%22%20%73%69%7a%65%3d%22%34%30%22%20%6d%61%78%6c%65%6e%67%74%68%3d%22%36%30%22%20%76%61%6c%75%65%3d%22%22%20%63%6c%61%73%73%3d%22%66%6f%72%6d%66%69%65%6c%64%22%20%69%64%3d%22%6e%75%63%6c%65%75%73%5f%63%66%5f%6d%61%69%6c%22%20%2f%3e %09%09%3c%6c%61%62%65%6c%20%66%6f%72%3d%22%6e%75%63%6c%65%75%73%5f%63%66%5f%65%6d%61%69%6c%22%3eメール%3a%3c%2f%6c%61%62%65%6c%3e %09%09%3c%69%6e%70%75%74%20%6e%61%6d%65%3d%22%65%6d%61%69%6c%22%20%73%69%7a%65%3d%22%34%30%22%20%6d%61%78%6c%65%6e%67%74%68%3d%22%31%30%30%22%20%76%61%6c%75%65%3d%22%22%20%63%6c%61%73%73%3d%22%66%6f%72%6d%66%69%65%6c%64%22%20%69%64%3d%22%6e%75%63%6c%65%75%73%5f%63%66%5f%65%6d%61%69%6c%22%20%2f%3e %09%09 %09%09%3c%69%6e%70%75%74%20%74%79%70%65%3d%22%63%68%65%63%6b%62%6f%78%22%20%76%61%6c%75%65%3d%22%31%22%20%6e%61%6d%65%3d%22%72%65%6d%65%6d%62%65%72%22%20%69%64%3d%22%6e%75%63%6c%65%75%73%5f%63%66%5f%72%65%6d%65%6d%62%65%72%22%20%20%2f%3e %09%09%3c%6c%61%62%65%6c%20%66%6f%72%3d%22%6e%75%63%6c%65%75%73%5f%63%66%5f%72%65%6d%65%6d%62%65%72%22%3e情報を記憶しておく%3c%2f%6c%61%62%65%6c%3e %09%09%3c%69%6e%70%75%74%20%74%79%70%65%3d%22%73%75%62%6d%69%74%22%20%61%6c%74%3d%22コメントを追加%22%20%76%61%6c%75%65%3d%22コメントを追加%22%20%63%6c%61%73%73%3d%22%66%6f%72%6d%62%75%74%74%6f%6e%22%20%2f%3e %09%3c%2f%64%69%76%3e %3c%2f%66%6f%72%6d%3e %20