«Prev || 1 || Next»
今日の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
[ 続 き を 読 む ]
まだ全部作業終わってないけど。
セキュリティホールとかあるのを知りつつ長いこと放ったらかしにしてたんだけど、やっと、Nucleus(このブログのブログエンジン)を3.21→3.3へアップグレードした。
動機はセキュリティホールじゃなくて、タグ検索。
少し前に導入したプラグイン、NP_TagEX によるタグ付け機能。
タグは付けられるようになったんだけど、そのタグをクリックしても同名タグを持つアイテムが検索できなくて、導入の意義が半減してた。
で、検索できない理由として「Nucleusが古い?」って推測をしてて、それでさっきアップグレード作業に入った。
結果、アップグレードしてもタグ検索できず。
むー。
次に思いついたのがプラグイン。
このブログを始める時、Nucleus 3.21 をインストールした時点でプラグインも幾つかインストールしたんだけど、ダウンロードした際のプラグインサイトがあまりメンテされてなくてプラグイン自体が古かったらしく、その時点の最新版よりかなり古いものをインストールしてたりしてて、ずっと「最新版入れなきゃなぁ」とか思ってた。
で、そこらへん踏まえて調べてみたところ、一番怪しかったのが NP_ShowBlogs ってプラグイン。
このブログのトップページでアイテムを一覧表示してたり(今は最新20アイテムを表示する設定)、ページ移動のリンクを表示してたり、そういうことをしてくれるプラグインなんだけど、これが一番怪しい。
使ってたNP_ShowBlogsのバージョンは1.03、最新版は2.7。違いすぎw
しかも更新履歴を読んでたら
version 2.04 [2005-11-01]
NP_TagEX対応。
とか書いてる。
更にそのあと気付いたのが、NP_TagEXのダウンロードサイトの冒頭に
『タグによるフィルタリング表示をするためにはNP_ShowBlogs v.2.04以上が必要』
って思いっきり書いてた。
もうこれ以外に無いって程の確信を持ってNP_ShowBlogsを更新。
そして無事にタグ検索できるようになった。
結局プラグインの更新ですんだ話だったんだけど、ブログエンジンの更新で一応セキュリティホールも埋められたし、めでたしw
あとはタグに正式対応したってことで、アイテム一覧だけじゃなくて個別アイテムページにもタグ表示するように設定したり、要所にタグ一覧を表示するようにしたり、今後細かな部分でぼちぼちとサイトを更新していく予定。
というかNucleusのアップグレードで幾つか不具合出てるw
しばらく見苦しい状態が続くかもしれないけど、ぼちぼち直していきますので。
****
後の作業のためのメモとか含めて雑多にリンク。
■Nucleus CMS Japan Wiki - plugins:showblogs
■Nucleus CMS Japan Wiki - plugins:tagex
■Nucleus CMS Japan Wiki - skins:vars (Nucleus変数)
[ 続 き を 読 む ]
さっきブログにNP_TagExをインストールしてタグ付け機能を追加してみた。
まずはテストでトップページに表示されてるアイテムにだけタグを表示するようにしてみたんだけど、タグをクリックしたときのタグ検索が効かない。。。
Nucleusをアップデートせずに古いバージョンのまま使い続けてるのが悪いのかなぁ。
(2007/11/07追記)
Nucleusを最新版の3.3にアップグレードしても検索できない。。。
と思ったら、プラグインのアップデートで解決。
■ばるろぐ - Nucleusアップグレード & タグ検索対応
■ばるろぐ - Nucleus3.3へのアップグレード時に発生した不具合メモ
[ 続 き を 読 む ]
■Nucleus(JP)フォーラム - NP_TagEX
■nakahara21- NP_TagEX 「タグ」利用プラグイン
■nakahara21 - NP_TagEX バージョン0.2
■wa - Nucleus や ウェブネタなど - Nucleus プラグイン NP_TagEX試してみてます
メモ。
Nucleus(ニュークリアス,このブログのブログエンジン)をカテゴリ機能じゃなくてタグ(キーワード)付けで運用したいなと思って昨日調べたら あっさり見つかったw
今は忙しくて作業できないし、いつ暇が作れるか分からないけど、インストールしたい。
ほんとは簡単にすぐインストールできる筈なんだけど、ブログエンジンのソースコード少しいじってて、しかもどこ変更したか覚えてないから怖いんだよねw
タグ付け機能を追加すると、上から4つめでリンクしたブログのタイトル「10.23 '05Nucleus プラグイン NP_TagEX試してみてます」の2行下に表示されてる「Nucleus / プラグイン / 実験 / Tag / Fancy URL」みたいに、そのログのキーワードを複数登録できるようになる。もちろんタグをクリックすると、同じタグを持つログまで確認できる。
1つ前のログの欄外にも書いたけど、このブログ、きっちりしたカテゴリ分類とか最初から「しない!」と決めて始めてはいるんだけど、後で利用することを考えると、必要な時は好きに意味づけできる方が良いに決まってる。
ブログが全文検索機能も持ってるからしょっちゅう利用してはいるけど、今使ってるバージョンは検索漏れも結構ある。これは最新バージョンで改善されてるらしいんだけど、上にも書いた通り、ソースコードいじってるからバージョンアップが怖かったりして。。。^^;
2~3日のまとまった時間を作って調査やデータベースのバックアップから始めるくらいじゃないとバージョンアップできない。
で、今使ってるカテゴリ機能は、別に意味づけする必要がないものも何かしらカテゴライズする必要がある(だから殆どがbookmarkカテゴリ)し、1つのログに1つしか意味づけできない。
まぁそういうのもあって、最初にカテゴリは気合い入れないって決めたんだけどw
タグだと別に付けなくてもいいし、事前にシステムにカテゴリ登録しなくてもその場で好きな名前でタグ付けできるし、楽。
気楽にできる分だけ、タグの種類が増えてくるとカオス状態になってくるって欠点もあるから、やっぱり後で利用することを考えると或る程度はタグ名を練っておいた方がいいんだけど、また多分あまり考えず気楽に運用しちゃうだろうねw
[ 続 き を 読 む ]
最近コメントスパムに加えてトラックバックスパムが来るようになった。
しかもNucleusのバグなのかプラグインのバージョンが古いのか何なのか、トラックバックを削除しても削除されない。
というわけで仕方なくサーバにログインしてDBから直接削除してやった。
use 自分のデータベース名
delete from nucleus_plugin_tb where url like "削除パターン";
今回はURLに特徴があったので、urlフィールドのパターンを指定して91レコードを一括削除。
面倒なのには変わりないけど、消したのに消えない不毛な作業で時間を浪費するよりは遙かにマシ。
パターンが読めてきたら削除バッチを作ってcronにでも登録して、定期実行させるかなぁ。
はぁ、めんど。
«Prev || 1 || Next»