Coldfusion Report Builder非常棒。Coldfusion Report Builder - 如何在prod/staging/dev之間設置不同的外部數據源?
一個小問題。我們使用ANT + CFANT進行部署。
當我們創建報告時,在開發箱中稱爲MyApp_dev的數據源中說。
我們的其他服務器是生產服務器。它還包含一個分段構建,以確保在我們發佈到現場之前一切都順利進行。 (感謝Al Everett將此澄清引入我的注意。)
當創建報告時,一切正常。
我們將報告部署到我們的登臺服務器,該服務器具有MyApp_Staging的數據源。該服務器也可以,也可以不具有MyApp_Live下的實時應用程序。 Ant將更新推向舞臺非常棒。
運行報告,崩潰和灼傷。爲什麼?
看起來報告正在尋找MyApp_Dev data_source,即使應用程序正在使用MyApp_Staging數據源。
在挖掘中,我發現了一些方法,我想從一開始就做這一個,最後的理想方式,而不是不得不回頭做幾十個不同的報告,當我有一個新的啊哈!時刻。
1)明顯:將數據源傳遞到cfreport標記。在Linux上測試v8或v9時不適用於ColdFusion Builder Reports。
2)到目前爲止最現實的選擇(但是很痛苦):將查詢作爲對象傳遞給ColdFusion Builder報表。讓我們來思考一下:
- 使用RDS等在我的本地盒子上創建包含報告生成器的報告。
- 完成後,將查詢複製到代碼段或數據庫列中,以便在運行時用正確的數據源動態注入。
- 修改我的「運行報告」事件以從數據庫列中查找查詢,將其插入到另一個動態cfquery中,並可能...評估(!?!)它嗎?有趣的一面是我可以將cfquery數據源設置爲我需要的每個環境。
- 當我在CF Report Builder中修改報表的列時,我總是必須更新數據庫中的查詢。有一段代碼可以爲我提取這個嗎?嗯。
3)不太理想。吸取它,並讓所有的分期報告跑掉現場服務器。也許將實時數據複製到分段(無結構更改)以使其看起來相似。
有沒有雄辯的方法來完成上述?
在此先感謝!
我只是想知道爲什麼你在不同的服務器上使用不同的數據源名稱。我們的政策始終是使用相同的DSN,指向不同的數據庫進行開發,分期和生活。 – 2010-04-21 15:43:28
我們必須在我們的實時服務器上使用2個數據源名稱,當我們對其進行暫存和實時安裝時。 – 2010-05-06 17:33:06