Coldfusion Report Builder 很棒。
一个小问题。我们使用 ANT+CFANT 来部署。
当我们创建报告时,比如说在开发盒上名为 MyApp_dev 的数据源中。
我们的另一台服务器是生产服务器。它还包含一个临时构建,以确保在我们发布之前一切顺利。 (感谢 Al Everett 让我注意到这一澄清。)
创建报告时一切正常。
我们将报告部署到我们的登台服务器,该服务器的数据源为 MyApp_Staging。该服务器也可能会或可能不会在 MyApp_Live 下运行实时应用程序。Ant 将更新推送到 Staging 非常棒。
运行报告,崩溃和烧毁。为什么?
报告似乎正在寻找 MyApp_Dev 数据源,即使应用程序正在使用 MyApp_Staging 数据源。
在挖掘中我发现了一些方法,我想从一开始就做这个,最终的,理想的方式,而不是当我有一个新的 Aha 时不得不回去做几十个不同的报告!片刻。
1)显而易见:将数据源传入 cfreport标签。不适用于从 v8 开始的 ColdFusion Builder 报告,或在 Linux 上测试的 v9。
2)迄今为止最现实的选择(但很痛苦):将查询作为对象传递到 ColdFusion Builder 报告中。让我们考虑一下:
- 使用我本地盒子上的 RDS 等,使用报告生成器创建报告,让我心满意足。
- 完成后,将查询复制到代码片段或数据库列中,以便在运行时使用正确的数据源动态注入。
- 修改我的“运行报告”事件以从数据库列中查找查询,将其插入另一个动态 cfquery 并可能...评估(!?!)它?有趣的一面是我可以将 cfquery 数据源设置为每个环境所需的数据源。
- 当我在 CF Report Builder 中修改报表的列时,我总是必须更新数据库中的查询。有没有可以为我提取的代码片段?唔。
3)不太理想。 把它收起来,让所有暂存的报告在实时服务器上运行。也许将实时数据复制到暂存(无结构更改)以使其看起来相似。
是否有任何雄辩的方法来完成上述?
提前致谢!