如何为ORM设置动态数据源?
Coldfusion application.cfc中的ORM设置在运行任何其他设置之前运行(在ApplicationStart等上)。那么,如何在application.cfc中设置动态数据源(ORM init之前的代码)?我们可以在之后设置它,它将ORM重新指向一个动态数据源,但这要求硬编码的数据源也必须有效。这充其量是脆弱的 以下是一个例子:如何为ORM设置动态数据源?,orm,coldfusion,Orm,Coldfusion,Coldfusion application.cfc中的ORM设置在运行任何其他设置之前运行(在ApplicationStart等上)。那么,如何在application.cfc中设置动态数据源(ORM init之前的代码)?我们可以在之后设置它,它将ORM重新指向一个动态数据源,但这要求硬编码的数据源也必须有效。这充其量是脆弱的 以下是一个例子: <cfscript> this.name = "someapp_#hash(cgi.http_host)#"; this.ormenab
<cfscript>
this.name = "someapp_#hash(cgi.http_host)#";
this.ormenabled = "true";
this.ormsettings = { cfclocation = "config/definitions", eventhandling = "true",datasource="STATICDATASOURCE" };
</cfscript>
this.name=“someapp#hash(cgi.http#u host)#”;
this.ormenabled=“true”;
this.ormsettings={cfclosition=“config/definitions”,eventhandling=“true”,datasource=“STATICDATASOURCE”};
如果未在application.cfc范围中指定,则会出现类似“ORM未为当前应用程序配置”的错误
我们需要能够从服务器上的文本文件中获取数据源
this.datasource="YourDatasourceName";
好的,如果您想存储一个文件,在本例中,我们将其称为“datasource.xml”,包括:
<dataSourceName>Name goes here</dataSourceName>
如果未定义,ORM数据源仅使用默认数据源 话虽如此,如果您想动态添加/删除数据源,请参阅管理员API,网址:(自CF8起提供) 我不确定是否可以在运行时将
this.ormsettings.datasource
重新设置为其他内容(即onApplicationStart()
?或onServerStart()
?),但许多设置可以重新设置。你可能想试试
dataFile = fileRead("pathToFile/datasource.xml");
data = xmlParse(dataFile);
dataSourceName = data.dataSourceName.xmlText;
this.datasource=dataSourceName;