mtmr_t's blog

ひよっこiosぷろぐらま

symfony、modelでエラーになってた。

現在携わっている環境でちょっと行き詰っていたのが解決したので
状態と原因、解決方法を書いておく。


Symfony1.2.10で開発していてでたエラー。
開発環境はxamppで作ってます。
DBはMySQLさん。

やりたかったのはDBにテーブルを追加して、
DBからSchema作り直し、
そこからmodelを生成する。ここまで。

先人曰はく、
symfony propel-build-schema
をして
symfony propel-build-model
をすればできるよ!!
自分はそれでエラーになったことないよ!

だそうなのでやってみたのだが、、、

symfony propel-build-schema
はうまくいく、schema.ymlに新しいテーブルが記載されていることも確認した。
しかし、model生成でエラー!


CLI エラーという謎のポップアップがでて終了してしまう。
なぜだろう、ググった。
http://unicus.jp/wp/archives/19

つまりはCURRENT_TIMESTAMPが使えないので、
default: CURRENT_TIMESTAMPとなっているところは書き換えなさいよ!
ということらしい。


そしてワンモアトライ!すると、こんなエラーがでる↓↓
Execution of target "om-template" failed for the following reason:
C:\xampp\php\PEAR\symfony\plugins\sfPropelPlugin\lib\vendor\propel-generator\build-
propel.xml:479:1: Duplicate table found: propel.

ググったりググったり、
http://deved.exblog.jp/i9
しかしこの操作はしてないのでxmlが他にできてはいない。

他のdefault以外も怪しいやつ書き換えてみたり

xmlとymlがダブっている可能性があるため
ファイル内全部で検索かけてみたりしました。
(現在yml管理なのでxmlを消したい)

とまぁいろいろやってたんですがエラーが解決せず…

そしてラストがこれ。エイゴ!ガンバル!
http://oldforum.symfony-project.org/index.php/t/4205/

はい、エラーになって実行失敗したときに、
configフォルダ内にmodel生成処理中一時的にyml生成されたやつが残っていました/(^o^)\
schema.ymlと、xxxxx-schema.ymlでも、混合しちゃだめです!ってことでした。

最後の分に一番時間とられました。
皆この罠に引っかからなかったってことですな…[emoji:e-259]

なんだかんだで無事実行完了!
modelがやっと完成しました。