问题:
由于TimeWise在4.1.0版本修改过团队用户表的team_id 字段类型,之前是 long 类型,改为 int 类型,而Oracle 不支持在有数据的情况下修改字段类型,所以当数据表存在旧数据时,更新TimeWise 4.1.0及之后的版本,会出现以下报错:
Image Removed
Image Added
解决方案:
需要数据库管理员对TimeWise数据表进行初始化(方法如下),由于涉及表数据删除,有操作风险,建议联系龙智技术支持团队进行协助。
| 信息 |
|---|
|
- 适用场景:针对 Oracle 数据库用户,首先采取简单方案,若失败,则再尝试复杂方案
- 实施步骤(请务必按步骤实施)
- 禁用 timewise 插件
- 执行以下 sql 脚本
团队与用户关系表:AO_B40E65_WISE_TEAM_USERalter table AO_B40E65_WISE_TEAM_USER rename column TEAM_ID to TEAM_ID_TEMP;
alter table AO_B40E65_WISE_TEAM_USER add TEAM_ID NUMBER(11);
update AO_B40E65_WISE_TEAM_USER set TEAM_ID = trim(TEAM_ID_TEMP);
alter table AO_B40E65_WISE_TEAM_USER drop column TEAM_ID_TEMP;
|
休假记录表:AO_B40E65_LEAVE_RECORD alter table AO_B40E65_LEAVE_RECORD rename column ISSUE_ID to ISSUE_ID_TEMP;
alter table AO_B40E65_LEAVE_RECORD add ISSUE_ID NUMBER(20);
update AO_B40E65_LEAVE_RECORD set ISSUE_ID = trim(ISSUE_ID_TEMP);
alter table AO_B40E65_LEAVE_RECORD drop column ISSUE_ID_TEMP;
|
休假配置表:AO_B40E65_M_LEAVE_CONFIGalter table AO_B40E65_M_LEAVE_CONFIG rename column ISSUE_ID to ISSUE_ID_TEMP;
alter table AO_B40E65_M_LEAVE_CONFIG add ISSUE_ID NUMBER(20);
update AO_B40E65_M_LEAVE_CONFIG set ISSUE_ID = trim(ISSUE_ID_TEMP);
alter table AO_B40E65_M_LEAVE_CONFIG drop column ISSUE_ID_TEMP;
|
- 启动 timewise 插件,确认页面是否可以正常访问
|
...
| 信息 |
|---|
|
- 适用场景
- 简单方案无法解决问题时,采用复杂方案
- 客户那边删除 timewise 数据表后,禁用重启插件后,不会自动创建删除的数据,例如清空 timewise 的全局配置表后,重启插件后不会生成初始化数据
- 实施步骤(请务必按步骤实施)
- 卸载 timewise 插件
- 若需要备份数据若客户需要备份数据
- 有些客户可能只需要备份几个关键表的数据,具体和客户沟通备份需要的数据表
- 导出 sql 数据时,务必带上字段名称,否则可能遇到字段顺序不一致的问题,导出的 insert 语句示例:insert into tableName(id,name,...) values(...)
- 删除 timewise 的数据
- 数据表:删除所有以 AO_B40E65 开头的表,这些都是 timewise 的表
- 序列:删除所有包含字符串 AO_B40E65 的序列,只有 Oracle 数据需要删除序列
- 重新安装 timewise 插件,检查插件功能是否正常
- 禁用插件
- 恢复数据
- 若客户之前备份了数据,则把相关数据插入到对应的表中若之前备份了数据,则把相关数据插入到对应的表中
- 重启插件,确认页面和数据是否正常
|