1

symfony プロジェクトの更新プロセスを自動化するスクリプトを作成しようとしています。たとえば、データベース全体を再ロードすることなく、可能なモデルの更新や新しいフィクスチャを含む、あるリビジョンから別のリビジョンへのパッチを適用します。

私はそのほとんどを完了しましたが、フィクスチャを挿入するときにプロペルロードデータによって実行される INSERT ステートメントを含む SQL ファイルを生成する方法を見つけることができませんでした。

データベースをダンプして情報を取得できることは知っていますが、それは重要ではなく、他のデータがない空のデータベースが必要になるため、私の場合は機能しません。

要するに、私の質問は次のとおりです。フィクスチャ YML を取得し、必要な SQL 挿入を生成する方法はありますか?

これは、yml を処理してロジックをビルドすることで実行できることはわかっていますが、ビルド プロセスはどこかでそれを実行し、それを再度記述する理由はありません。

どんな助けでも大歓迎です。

4

1 に答える 1

0

おそらく私はあなたの質問を正しく理解していませんでしたが、フィクスチャを db にロードするタスクを呼び出すか、代わりに sfPropelData::loadData() を呼び出すコードを記述できませんでした (ここでは Propel を想定しています)。

$loader = new sfPropelData();
$loader->loadData(sfConfig::get('sf_data_dir').'/fixtures');

sfPropelData とその親 sfData でさえ、フィクスチャをロードするときに SQL コードを生成しませんが、ORM を使用して生成します( sfPropelData::loadDataFromArray() で確認できます)

問題を詳しく説明し、この解決策では不十分な理由を説明していただければ、お役に立てるかもしれません。

于 2009-03-16T07:04:41.270 に答える