1

既存のテーブル (Book) に列 (IS_ACTIVE) を追加したかったのです。そのため、それに応じてスキーマ ファイル (schema.xml) を拡張しました。ドキュメントに記載されているように、次のコマンドを実行しました。

propel-gen om
propel-gen convert-conf
propel-gen sql

影響を受けるテーブルのみが削除され、再作成されるように、schema.sql ファイルから不要な部分をすべて取り除きました。それから私は実行しました:

propel-gen insert-sql

残念ながら、このプロセスでバージョン テーブルが更新されていないため、このような挿入エラーが発生します。

Unable to execute SELECT statement [SELECT book_version.ID, book_version.TITLE,
 book_version.URL, book_version.COMMENTS, book_version.IS_ACTIVE,
 book_version.VERSION FROM `book_version` WHERE book_version.ID=:p1 ORDER BY 
 book_version.VERSION DESC LIMIT 1] [wrapped: SQLSTATE[42S22]: Column not found:
 1054 Unknown column 'book_version.IS_ACTIVE' in 'field list']

電話するとき

$book->save();

これに遭遇することなく、既存の schema.xml を適切に拡張するにはどうすればよいですか?

4

2 に答える 2

4

まず、runtime-conf.xml の同じ場所に buildtime-conf.xml ファイルを作成し、コンテンツも runtime-conf.xml と同じようにします。

次に、以下のコマンドを 1 つずつ実行します。

  1. propel-gen diff

  2. propel-gen 移行

  3. prople-gen om

  4. propel-gen 変換-conf

    これはあなたを助けると思います。

ありがとう。

于 2013-04-15T04:45:02.757 に答える
1

示唆されているように、結果の SQL ファイル (schema.sql) から SQL ステートメントを切り取って、そのままにしておくべきテーブルを参照する必要があります。ただし、変更する必要があるテーブルを参照するステートメントに加えて、それぞれのバージョン テーブルを参照するステートメントもこのファイルに含める必要があります。その後、実行できます

propel-gen insert-sql

これで問題は解決するはずです。

于 2013-03-08T16:05:37.013 に答える