0.9.6.3→1.0.2jアップデート テンプレート変数Dateのあつかい

インストールやアップグレードに関する疑問や困り事
フォーラムルール
・1つの質問につき1つのトピックとしてください
・質問から3日以内に返信された回答には必ず1週間以内に返信してください。質問者が回答者を無視することは禁じます。
・不具合やエラー関連の質問は下のテンプレートに従って必要事項を記入してください。
-----
[サーバ]
 ホスト&契約タイプ:(例 さくらスタンダード, XREA+, 自宅/自社サーバなど)
 ネットワーク:(例 インターネット, イントラネットなど)
 Webサーバ:(例 Apache9.9.9、IISなど)
 PHPバージョン:(例 9.9.9など)
 DB:(例 MySQL9.9.9など)
[modx]
 バージョン:(例 1.0.0, 1.0.0J など)
 アドオン:(例 Wayfinder 2.0など) ※質問の対象として特定できる場合は必須
 サイトURL: ※任意(回答者からの要請なしにPMで送りつけることは禁止)
[クライアント]
 ブラウザ:(例 Firefox3, IE7, IE8 など)
-----
・解決した時は、質問者が当該トピックに解決マークを付けて締め括ってください。
・解決したトピックのロックはしません。書き忘れや事後報告などの追加書き込みはOKですが、ぶらさがり的な質問は禁止します。

0.9.6.3→1.0.2jアップデート テンプレート変数Dateのあつかい

投稿記事by min-o » 2010/03/03(水) 13:22

お世話になっております。
modx0.9.6.3から1.0.2jへアップデートしました。
evoはこれまでとページ設定での、公開日時など日付部分の書き方が変更になっていますね。

modx0.9.6.3の場合
04-03-2010 10:00:00

1.0.2jの場合
2010/03/03 10:00:00

アップデートの際、公開日時、取り消し日時は自動でデータベースも書き換えてくれたのですが
入力タイプでDateを使っているテンプレート変数の値は
04-03-2010 10:00:00
のまま書き換えられませんでした。

プレビューの日付は合っているのですが、これは値をすべて2010/03/03 10:00:00のように変更しておいた方がいいのでしょうか?

ちょっと気になるのが、アップデート終了画面に以下のような警告が出ていたのです。
これが原因で日付が書き換えられなかったのかもしれないです。
とりあえずサイト自体は問題なく表示できているのですが… :(

必要なテーブルの作成: データベースの警告

MODx setup couldn't install/alter some tables inside the selected database.

インストール中に以下のエラーが発生しました

Column 'description' cannot be part of FULLTEXT index during the execution of SQL statement ALTER TABLE `modx_site_content` MODIFY COLUMN `pagetitle` varchar(255) NOT NULL default '', MODIFY COLUMN `alias` varchar(255) default '', MODIFY COLUMN `menutitle` varchar(255) NOT NULL DEFAULT '' COMMENT 'Menu title'.

いくつかのテーブルはアップデートされませんでした。修正などに起因しているようです。

インストール終了


よろしくお願いします。

-----サーバー環境---------
さくらインターネット 共用サーバ ビジネスプロ
ネットワーク:インターネット
Apache/1.3.42 (Unix) mod_ssl/2.8.31 OpenSSL/0.9.8e
PHP 5.2.12
MySQL 5.1.42

modx1.0.2J
アバター
min-o
メンバー
 
記事: 18
登録日時: 2009/10/07(水) 18:32
Thanks: 1
Thanked: 4 times in 2 posts

Re: 0.9.6.3→1.0.2jアップデート テンプレート変数Dateのあつかい

投稿記事by yama » 2010/03/03(水) 15:21

dateタイプのテンプレート変数は現時点では日付対応の対象になってないので、報告されたとおりの状態で合ってます。すっきりしないですが、このへん簡単そうで意外と難しいところで。これはそのまま運用しちゃってください。

アップデート直後にエラーが出力された件は別の話しのようですが、少し気になります。MODxのインストーラは少しおバカなところがあって、実はインストールに失敗しても最後まで「完了」してしまいます。

http://modxcms.com/forums/index.php/topic,18933.0.html
上記に参考情報があります。ただし、このとおりにすればよいということではなくて・・たぶんさくらインターネットのサーバ側に問題があると思うので、念のためにさくらさんに問い合わせてみるとよいかも。

たしかさくらのSQLサーバって、デフォルトの文字セットの照合順序がutf8_unicode_ciのように見えるけどujis(euc)になってるケースがほとんどのはず。config.inc.phpの「$database_connection_charset」の値はutf8になってますでしょうか?たぶんujisになってる気がします。僕はさくらのサーバを利用する案件にあたるたびに、phpMyAdminでutf8に設定し直してます。(対象データベースの操作タブで確認できます)
画像
yama
管理人
 
記事: 671
登録日時: 2009/07/29(水) 02:50
Thanks: 29
Thanked: 197 times in 159 posts

Re: 0.9.6.3→1.0.2jアップデート テンプレート変数Dateのあつかい

投稿記事by min-o » 2010/03/03(水) 17:37

yamaさん 返信ありがとうございます。
テンプレート変数 Dateの件は了解です。表示には問題ないのでこのまま運用します。

エラーの件、
さくらのSQLサーバ、わたしも最近気が付きまして、新規インストのときは参照順序をutf8_general_ciに直すようにしました。
しかし今回アップデートしたサイトは、
1.以前別のレンサバで新規インストールで運用
  (初めてだったので参照順序未確認のまま)
2.サクラに引越し
  しばらくして気が付いて参照順序をutf8_general_ciに変更
3.サクラでアップデート

なので、むかしの設定を引きずっているのかもしれません。
今回のアップデート前と直後、modxのシステム情報で確認したら
-------
データベース文字コード ujis
文字セット照合順序 ujis_japanase_ci
------
このときphpMyAdminを開いて中を見てもutf8_general_ciでしたので、??だったのですが
数時間後にシステム情報確認したら
--------
データベース文字コード utf8
文字セット照合順序 utf8_general_ci
-------
に直ってました。なにやらナゾですがutf8になってるならいいか、とスルーしてしまいました--;
phpMyAdminでも、各テーブルの参照順序もutf8_general_ciになっていますが、まだどこかにujisが残っているのでしょうか?
アバター
min-o
メンバー
 
記事: 18
登録日時: 2009/10/07(水) 18:32
Thanks: 1
Thanked: 4 times in 2 posts

Re: 0.9.6.3→1.0.2jアップデート テンプレート変数Dateのあつかい

投稿記事by sama55 » 2010/03/03(水) 19:31

こんにちは
min-o さんが書きました:phpMyAdminでも、各テーブルの参照順序もutf8_general_ciになっていますが、まだどこかにujisが残っているのでしょうか?

確証は得てないのですが、どうもそんな匂いがしますね。


--お試し案1(一括補正)--
MySQLのエラーメッセージを基に下の順序でページを巡ってみました。

MySQLが出力してるエラーメッセージの定義)
http://dev.mysql.com/doc/refman/5.1/en/error-messages-server.html#error_er_bad_ft_column  ※ER_BAD_FT_COLUMNが肝っぽい
 ↓
ER_BAD_FT_COLUMNについての議論)
http://bogdan.org.ua/2008/02/08/convert-mysql-database-from-one-encodingcollation-into-another.html
※ページを表示してから”ER_BAD_FT_COLUMN”でページ内検索すると3件該当
※DB全体の照合順序ではなく個別フィールドの照合順序に問題がありそう
※偉い人がDBの各テーブル、各フィールドの照合順序を"utf8_general_ci"に変更するプログラムを公開してる模様
 ↓
change-collation-on-all-tables-and-columns-in-mysql というツールのありか)
http://www.phoca.cz/documents/38-tools/ ... n-database
※日本語環境では問題があるようです(スミマセン)。下のmin-oさんの記事も必ず読んでください。
viewtopic.php?p=1654#p1654

このプログラムはDB内のすべてのテーブルのすべてのフィールドの照合順序を"utf8_general_ci"に書き換えるので、DB内に"utf8_general_ci"にしてはまずいテーブルが混在してる場合は使えません。
(さくらはDBが原則一つなので要注意)

上記のスクリプトは自分もダウンロードしてみて、試験的にローカルサーバで実行してみましたが、しっかり処理してるようです。
適用方法は簡単。
 ・ファイルをダウンロード
 ・解凍
 ・フォルダをサーバにアップ
 ・index.phpにアクセス
 ・表示画面でDBの情報を入れて実行
 ・発行されたSQLと実行結果が表示されます
 ・フォルダ削除 (忘れずに!)


--お試し案2(マニュアル補正)--

エラーメッセージからエラーになるテーブル名とフィールド名を一つづつ特定し、phpMyadminから個々に照合順序を確認後マニュアルで補正


以上、どちらかを行った後に、再度アップグレードしてみる。
sama55
メンバー
 
記事: 694
登録日時: 2009/08/03(月) 08:16
所在地: Saitama, Japan
Thanks: 337
Thanked: 190 times in 148 posts

Re: 0.9.6.3→1.0.2jアップデート テンプレート変数Dateのあつかい

投稿記事by min-o » 2010/03/05(金) 11:40

こんにちは。
sama55さん、返信ありがとうございます。
サブドメインでテスト用とmodxとデータベースを用意して、お試し案1の方法をやってみました。
tool_phoca_changing_collationはすべてOKがで無事終了したのですが、
再アップデートしても、まったく同じエラーがでました。
やっぱり手動でvarchar(255)を修正するしかないかも^^;

tool_phoca_changing_collation
凄く便利なツールですが、日本語環境ではちょっと注意です。
というのも、modxのエレメントで、カテゴリー名に2バイト文字を使っていたものあったのですが、カテゴリーがなくなって、カテゴリー外(?)になってしまいました。
これによってチャンクの位置がわからなくなったらしく、表示がうまく行かなくなってしまいました。
またエレメントの説明につけていた日本語も消えました。
他にはテンプレートで名前にIndex_xxxとかつけていたものも、名前が消えて空白になっていました。
使う方はご注意ください。 :)
アバター
min-o
メンバー
 
記事: 18
登録日時: 2009/10/07(水) 18:32
Thanks: 1
Thanked: 4 times in 2 posts

この投稿に感謝しているユーザー: sama55

Re: 0.9.6.3→1.0.2jアップデート テンプレート変数Dateのあつかい

投稿記事by sama55 » 2010/03/05(金) 12:20

min-o さんが書きました:やっぱり手動でvarchar(255)を修正するしかないかも^^;

残念。話の流れと調査結果から自分も照合順序を変えるだけでOKと思ったのですが、甘かったです。
対処フィールドが少ないことを祈ります。
sama55
メンバー
 
記事: 694
登録日時: 2009/08/03(月) 08:16
所在地: Saitama, Japan
Thanks: 337
Thanked: 190 times in 148 posts


Return to インストール



オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[1人]