Как мне установить динамический источник данных для ORM? - PullRequest
1 голос
/ 24 июня 2011

Настройки ORM в Coldfusion application.cfc запускаются до запуска чего-либо еще (onapplicationstart и т. Д.). Так как же установить динамический источник данных (код перед инициализацией ORM) в application.cfc? мы можем установить его после, и он перенаправит 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 ]

2 голосов
/ 24 июня 2011
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;
0 голосов
/ 24 июня 2011

Источник данных ORM просто использует источник данных по умолчанию, если он не определен.

Сказав это, если вы хотите динамически добавлять / удалять источник данных, см. API администратора по адресу: http://help.adobe.com/en_US/ColdFusion/9.0/Admin/WSc3ff6d0ea77859461172e0811cbf364104-7fcf.html (доступно с CF8)

Я не уверен, что вы можете переустановить this.ormsettings.datasource на что-то другое во время выполнения (т. Е. onApplicationStart()? Или onServerStart()?), Но многие настройки можно установить снова.Вы можете попробовать это.

...