TD升级之经验

上一篇 / 下一篇  2008-05-19 20:29:37

公司TD安装在windows 2003 server下,使用时不稳定,同时每次进入TD都要安装插件,使用中很不爽,于是痛下决心,将TD迁移回windows 2000 server下面,并从7.6升级到8.0,以下是升级的步骤。
升级迁移步骤:
1.备份项目文件,数据库,特别是DOMSINFO下面的doms.mdb库,TD_Dir目录中的项目信息,项目数据库
2.安装8.0,sql2000
3.新建项目,最好先升级一下项目,建议项目名称与原项目的一致,然后关闭td服务器
4.用Access打开doms.mdb中的user表,只要拷贝即可,注意只要拷贝数据
6.将数据库还原,并拷贝TD_Dir目录中的项目文件,不需要拷贝DBID.INI,同时修改项目数据库的consonst表的版本号,和cycsy表加入CY_FOLDER_ID字段
7.在2000数据库中执行  EXEC sp_change_users_login'Report'
                    EXEC sp_change_users_login'Update_One','td','td'
  使数据库td用户可以访问还原后的数据库
8.重新开td服务
9.升级项目,迁移完成


问题及处理
td8.0升级完成后,进行新的用户添加,无法添加,导致出现如下问题:
在最初进行升级时,将TD7.6的doms.mdb库中user表直接拷贝TD8.0的doms.mdb库对应表中,没有考虑到8.0中该表已经增加新的字段,造成在增加用户时提示
Error when trying to update TDUser.
Item cannot be found in the collection corresponding to the requested name or ordinal. |error '800a0cc1'。
所以在拷贝user表千万注意只要拷贝数据,因为8.0的user表比7.6的user表多了两个字段。


在增加字段后,再次升级,还是无法添加,如下问题:
提示:
Error when trying to update TDUser.
由于将在索引、主关键字、或关系中创建重复的值,请求对表的改变没有成功。改变该字段中的或包含重复数据的字段中的数据,删除索引或重新定义索引以允许重复值并再试一次。
IDispatch error #3105.
经过不断摸索,终于发现问题症结在于doms.mdb中的user表与数据库user表之间存在索引或关联造成。在TD管理平台中的user tab表中的用户列表是和数据库中的user表相对应的,在最初升级时,虽然doms.mdb中的user进行了初始化,保证迁移过来的项目用户数据不丢,但当数据库user表和其关联后,数据进行了同步,但这个用户数据是迁移项目的,而不是TD本身的,所以当TD继续需要新增用户时,TD会重新建立用户ID,这时,新建的ID与原来已经在的用户ID相冲突,造成无法新增用户。

解决:将升级前拷贝的doms.mdb表,覆盖回去,同时不要重启td,就可以继续用原来的项目用户,也可以继续增加新用户。如果重启TD,造成迁移项目的用户数据丢失,需要重新把用户加到项目中去。对于全新的项目将不会受影响。

TAG:

 

评分:0

我来说两句

Open Toolbar