如何为ORM设置动态数据源?

时间:2011-06-23 21:51:10

标签: orm coldfusion

Coldfusion application.cfc中的ORM设置在运行任何其他内容之前运行(onapplicationstart等)。那么如何在application.cfc中设置动态数据源(ORM初始化之前的代码)?我们可以在之后设置它并将ORM重新指向动态数据源,但这要求硬编码数据源也必须有效。这充其量是微不足道的。

以下是一个例子:

<cfscript>
this.name = "someapp_#hash(cgi.http_host)#";
this.ormenabled = "true";
this.ormsettings = { cfclocation = "config/definitions", eventhandling = "true",datasource="STATICDATASOURCE" };
</cfscript>

如果未在application.cfc范围中指定,则会出现“未为当前应用程序配置ORM”之类的错误。

我们需要能够从服务器上的文本文件中获取数据源。

2 个答案:

答案 0 :(得分:2)

this.datasource="YourDatasourceName";

好吧,如果你想存储一个文件,对于这个例子,我们称之为“datasource.xml”,包括:

<dataSourceName>Name goes here</dataSourceName>

您可以阅读:

dataFile = fileRead("pathToFile/datasource.xml");
data = xmlParse(dataFile);
dataSourceName = data.dataSourceName.xmlText;

this.datasource=dataSourceName;

答案 1 :(得分:0)

如果没有定义,ORM数据源只使用默认数据源。

话虽如此,如果您想动态添加/删除数据源,请参阅管理员API:http://help.adobe.com/en_US/ColdFusion/9.0/Admin/WSc3ff6d0ea77859461172e0811cbf364104-7fcf.html(自CF8起可用)

我不确定您是否可以在运行时将this.ormsettings.datasource重新设置为其他内容(例如onApplicationStart()?或onServerStart()?),但可以设置许多设置再次。你可能想尝试一下。