1

Coldfusion Report Builder は素晴らしいです。

1 つの小さな問題。ANT+CFANT を使用して展開します。

レポートを作成するときは、開発ボックスの MyApp_dev というデータソースにあるとします。

もう 1 つのサーバーは運用サーバーです。また、ライブに公開する前にすべてがスムーズに進むようにするためのステージング ビルドも含まれています。 (この説明を私に知らせてくれた Al Everett に感謝します。)

レポートが作成されると、すべてがうまく機能します。

MyApp_Staging のデータソースを持つステージング サーバーにレポートをデプロイします。そのサーバーには、MyApp_Live の下で動作するライブ アプリがある場合とない場合があります。Ant は更新を Staging にプッシュします。

レポート、クラッシュ、やけどを実行します。なんで?

アプリケーションが MyApp_Staging データソースを使用しているにもかかわらず、レポートは MyApp_Dev data_source を探しているようです。

掘り下げていくうちに、いくつかのアプローチを見つけました。新しい Aha! ができたときに何十ものレポートを別の方法で行うのではなく、この 1 つの最終的な理想的な方法を最初からやりたいと思います。一瞬。

1)明らか:データソースをcfreportタグに渡します。v8 の ColdFusion Builder レポート、または Linux でテストされた v9 では機能しません。

2)これまでで最も現実的なオプション (しかし面倒):クエリをオブジェクトとして ColdFusion Builder レポートに渡します。これについて考えてみましょう:

  1. ローカル ボックスの RDS などを使用して、レポート ビルダーで心ゆくまでレポートを作成します。
  2. 完了したら、クエリをコードのスニペットにコピーするか、データベース列にコピーして、実行時に正しいデータソースで動的に挿入します。
  3. 「レポートの実行」イベントを変更して、データベース列からクエリを検索し、それを別の動的 cfquery に挿入して、潜在的に... 評価 (!?!) しますか? 興味深い点は、cfquery データソースを各環境に必要なものに設定できることです。
  4. CF Report Builder でレポートの列を変更すると、常にデータベースのクエリを更新する必要があります。これを抽出できるコードのスニペットはありますか? うーん。

3)理想的とは言えません。 それを吸って、ステージングのすべてのレポートがライブサーバーから実行されるようにします. おそらく、ライブ データをステージングにコピーして (構造的な変更を除く)、似ているように見せます。

上記を達成する雄弁な方法はありますか?

前もって感謝します!

4

1 に答える 1

0

異なる開発/ステージング/本番ボックスがある場合は、それぞれに同じデータソース名を使用しないのはなぜですか?これにより、コードがどこにあるかを把握する必要がなくなります。

現在の割り当てではセキュリティ上の懸念からRDSを使用できないため、当然のことながらオプション2を使用します。デバッグしやすいので気に入っています。

于 2010-04-21T13:31:06.683 に答える