1

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 报告中。让我们考虑一下:

  1. 使用我本地盒子上的 RDS 等,使用报告生成器创建报告,让我心满意足。
  2. 完成后,将查询复制到代码片段或数据库列中,以便在运行时使用正确的数据源动态注入。
  3. 修改我的“运行报告”事件以从数据库列中查找查询,将其插入另一个动态 cfquery 并可能...评估(!?!)它?有趣的一面是我可以将 cfquery 数据源设置为每个环境所需的数据源。
  4. 当我在 CF Report Builder 中修改报表的列时,我总是必须更新数据库中的查询。有没有可以为我提取的代码片段?唔。

3)不太理想。 把它收起来,让所有暂存的报告在实时服务器上运行。也许将实时数据复制到暂存(无结构更改)以使其看起来相似。

是否有任何雄辩的方法来完成上述?

提前致谢!

4

1 回答 1

0

如果您有不同的 dev/staging/production 框,为什么不在每个框上使用相同的数据源名称?这将使您不必让代码弄清楚它在哪里。

由于当前任务中的安全问题使我无法使用 RDS,因此我理所当然地使用选项 2。我也喜欢它,因为它使调试更容易。

于 2010-04-21T13:31:06.683 回答