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