WEBアプリケーション研究室 開発ノート TOP

WEBアプリケーション研究室 開発ノート [symfony] doctrine-build-all-reloadでDBの文字コードがlatin1になってしまう

スポンサーサイト

-------- --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

    このエントリーをはてなブックマークに追加

MySqlでテストしていて気付いたのですが、O/Rマッパーにdoctrineを使用して、スキーマから全てを生成、挿入しなおすコマンド


symfony doctrine-build-all-reload
を実行するとデータベースを一回ドロップして生成しなおします。その際、DEFAULT CHARSETをまったく指定しないでDBを作ってしまうので、MySql側の設定をデフォルトままにしておくとlatin1でCreateしてしまいます。ちょっとコードをたどってみたのですが今のところMySql側の設定をいじれない場合symfony doctrine-build-all-reloadをあきらめるか、手動でALTER DATABASEするしかなさそうな感じです。せめてpropelのsqldb.mapみたいな機能があれば自動でできそうですが。
schema.ymlの全てのテーブルに

User:
options:
charset: utf8
columns:
username: string(255)
password: string(255)
などと設定する手もありますが、DB自体にDEFAULT CHARSETが指定されてないと何かの拍子にlatin1のテーブルを作ってしまう可能性もあるので微妙な気もします。
まあ、開発の初期段階しか使わないコマンドなので特に問題ない気もしますが。

[symfony 1.2.2]
スポンサーサイト

    このエントリーをはてなブックマークに追加
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。