【问题标题】:How do I set a dynamic datasource for ORM?如何为 ORM 设置动态数据源?
【发布时间】:2011-06-23 21:51:09
【问题描述】:

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”之类的错误。

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

【问题讨论】:

    标签: orm coldfusion


    【解决方案1】:
    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;
    

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-17
        • 1970-01-01
        • 2011-08-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多