Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为ORM设置动态数据源?_Orm_Coldfusion - Fatal编程技术网

如何为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

Coldfusion application.cfc中的ORM设置在运行任何其他设置之前运行(在ApplicationStart等上)。那么,如何在application.cfc中设置动态数据源(ORM init之前的代码)?我们可以在之后设置它,它将ORM重新指向一个动态数据源,但这要求硬编码的数据源也必须有效。这充其量是脆弱的

以下是一个例子:

<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;