Coldfusion报表生成器-如何在prod/staging/dev之间设置不同的外部数据源?

Coldfusion报表生成器-如何在prod/staging/dev之间设置不同的外部数据源?,coldfusion,datasource,reportbuilder,Coldfusion,Datasource,Reportbuilder,Coldfusion报表生成器非常棒 一个小问题。我们使用ANT+CFANT进行部署 当我们创建报告时,比如在一个名为MyApp_dev的数据源中的dev框中 我们的另一个服务器是生产服务器。它还包含一个暂存构建,以确保在发布到live之前一切都顺利进行。(感谢艾尔·埃弗里特让我注意到这一澄清。) 创建报告时,一切都很正常 我们将报告部署到staging服务器,该服务器的数据源为MyApp_staging。该服务器也可能会让live应用程序在MyApp_live下运行,也可能不会。Ant将更新推

Coldfusion报表生成器非常棒

一个小问题。我们使用ANT+CFANT进行部署

当我们创建报告时,比如在一个名为MyApp_dev的数据源中的dev框中

我们的另一个服务器是生产服务器。它还包含一个暂存构建,以确保在发布到live之前一切都顺利进行。(感谢艾尔·埃弗里特让我注意到这一澄清。)

创建报告时,一切都很正常

我们将报告部署到staging服务器,该服务器的数据源为MyApp_staging。该服务器也可能会让live应用程序在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) 不太理想。接受它,让暂存中的所有报告从实时服务器上运行。也许可以将实时数据复制到staging(sans结构更改)中,使其看起来类似

    有什么雄辩的方法来实现上述目标吗


    提前谢谢

    如果您有不同的dev/staging/production框,为什么不在每个框上使用相同的数据源名称呢?这样你就不用让代码知道它在哪里了


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

    开发框通常与暂存/生产框分开。对于较小的项目,我们通常在上线之前在生产服务器上运行一个单独的应用程序实例,以确保没有任何障碍。我只是想知道为什么在不同的服务器上使用不同的数据源名称。我们的策略一直是使用相同的DSN,针对不同的DBs进行开发、登台和直播。当我们在直播服务器上进行登台和直播安装时,我们必须在直播服务器上使用2个数据源名称。