Migration 使用ColdFusion 8数据源扩展ColdFusion 9数据源文件
我想将数据源从ColdFusion 8服务器合并到现有的ColdFusion 9服务器。据我所知,两个版本的neo-datasources.xml的xml格式是相同的 我已尝试将xml块复制并粘贴到。。。从CF8 neo-datasources.xml文件中插入ColdFusion 9 xml文件。在此之前,我已经停止了CF服务。 但是重新启动服务后,要么加载CF8数据源,要么加载CF9数据源。大多数情况下,只剩下CF9数据源,CF8XML节点正在剥离 任何人都可以告诉我一种更好的方法,用CF8服务器的数据源扩展neo-datasources.xml吗 有一百多个,我不想一个接一个地设置它们。该服务器是CF8 Pro/StandardMigration 使用ColdFusion 8数据源扩展ColdFusion 9数据源文件,migration,datasource,coldfusion-9,coldfusion-8,Migration,Datasource,Coldfusion 9,Coldfusion 8,我想将数据源从ColdFusion 8服务器合并到现有的ColdFusion 9服务器。据我所知,两个版本的neo-datasources.xml的xml格式是相同的 我已尝试将xml块复制并粘贴到。。。从CF8 neo-datasources.xml文件中插入ColdFusion 9 xml文件。在此之前,我已经停止了CF服务。 但是重新启动服务后,要么加载CF8数据源,要么加载CF9数据源。大多数情况下,只剩下CF9数据源,CF8XML节点正在剥离 任何人都可以告诉我一种更好的方法,用CF8
提前谢谢。我正在用一个解决方案回答我自己的问题。最后,我放弃了将CF8合并到CF9 neo-datasource.xml文件中的计划。为了在CF9服务器中设置数据源,我找到了一种使用CF9管理API的方法 这些步骤是:
<cfset wddx = fileRead(path_to_file) />
<cfwddx action="wddx2cfml" input="#wddx#" output="_array" validate="yes" />
如果您使用cfdump查看“str”结构,我认为它是不言自明的
希望这能帮助其他ppl满足他们的需求
核心理念源自肖恩·沃尔什的博客:
非常感谢您,肖恩。在搜索解决方案时,您是否遇到查理的博客条目?读到最后,我肯定你不想迁移所有的设置。谢谢你,米格尔。我最终找到了Charlie的帖子,我写了一个小工具,读取CF8 XML文件,获取连接和数据库数据,并使用CF9管理API在CF9服务器中创建一个全新的数据源。请投票选择一种编程方法来解决您的问题。做得好!
<cfset _str = _array[1] />
<cfset admin = new cfide.adminapi.Administrator() />
<cfset login = admin.login("cf_admin_password_here", "admin") />
<cfloop index="key" list="#ListSort(StructKeyList(str), 'textnocase')#">
<cfset _str = str[key] />
<cfset db = _str.name />
<cfset dsn = {
driver = 'mysql5',
name = _str.name,
host = 'localhost',
port = '3306',
database = TRIM(ReReplaceNoCase(_str.url, ".*\/(.+?)(\/?\?{0}|\/?\?{1}.*)$", "\1", "ALL")),
username = 'db_user',
password = 'db_password',
args = 'useUnicode=true&characterEncoding=utf8'
}
/>
<cfset dsnAPI = new cfide.adminapi.datasource() />
<cfset dsnAPI.setMySQL5( argumentCollection = dsn ) />
</cfloop>
TRIM(ReReplaceNoCase(_str.url, ".*\/(.+?)(\/?\?{0}|\/?\?{1}.*)$", "\1", "ALL"))