2012年5月9日水曜日

use DBIC on さくらのレンタルサーバ スタンダード

※this text from livedoor blog 2008/11/6

Catalystアプリケーションで文字コードUTF-8を使いたい
しかし、さくらのMySQLはujisになっています


mysql> show variables like 'char%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | ujis |
| character_set_connection | ujis |
| character_set_database | ujis |
| character_set_filesystem | binary |
| character_set_results | ujis |
| character_set_server | ujis |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/share/mysql/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)





myapp.ymlにmysql_enable_utf8とon_connect_doを追加してあげます

Model::DBIC:
schema_class: MyApp::Schema
connect_info:
dsn: dbi:mysql:dbname=username:mysql***.db.sakura.ne.jp
user: username
password: *****
AutoCommit: 1
RaiseError: 1
mysql_enable_utf8: 1
on_connect_do:
- SET NAMES 'utf8'
- SET CHARACTER SET 'utf8'


mysql_enable_utf8は
This option is experimental and may change in future versions.
との事なので、心配な人はDBIC::UTF8Columnsを使いましょう