Migration 使用ColdFusion 8数据源扩展ColdFusion 9数据源文件

Migration 使用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

我想将数据源从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/Standard


提前谢谢。

我正在用一个解决方案回答我自己的问题。最后,我放弃了将CF8合并到CF9 neo-datasource.xml文件中的计划。为了在CF9服务器中设置数据源,我找到了一种使用CF9管理API的方法

这些步骤是:

  • 读入CF8 neo-datasource.xml
  • 将其转换为具有保存数据的结构的cfml数组
  • 启动CF9管理API,登录并使用datasources.cfc在CF9服务器上将每个数据源创建为新数据源
  • 读入并转换XML数据:

    <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"))