新增表字段迁移并发布1.0.19
This commit is contained in:
@@ -42,7 +42,7 @@
|
||||
|
||||
- `App.xaml`:应用资源、HandyControl 主题和 `MainViewModel` 资源注册;启动页是 `Views/HomeWindow.xaml`。
|
||||
- `App.xaml.cs`:Velopack 初始化、旧版 `current/config.ini` 更新迁移、后台/手动更新、更新前后 `config.ini`、`data/` 与 `pre/` 备份恢复、全局异常日志。
|
||||
- `Views/HomeWindow.xaml`:单窗口主界面,包含五个迁移 Tab、连接状态、SQL 编辑区和批量操作。
|
||||
- `Views/HomeWindow.xaml`:单窗口主界面,包含六个迁移 Tab、连接状态、SQL 编辑区和批量操作。
|
||||
- `Views/HomeWindow.xaml.cs`:只处理窗口关闭和手动检查更新等窗口事件。
|
||||
- `Views/ConnectionDialog.*`:源库/目标库连接配置与测试。
|
||||
- `Views/ErrorDialog.*`:错误详情展示和复制。
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
### 状态与编排
|
||||
|
||||
- `ViewModels/MainViewModel.cs`:主状态容器和命令编排;初始化五个 `TabServices`,管理数据库连接、单行/批量读写、SQL 编辑与断点续写。
|
||||
- `ViewModels/MainViewModel.cs`:主状态容器和命令编排;初始化六个 `TabServices`,管理数据库连接、单行/批量读写、SQL 编辑与断点续写。
|
||||
- `Models/TableRowModel.cs`:每个迁移对象的名称、所属 Tab、读写状态。
|
||||
- `Enums/`:Tab、状态、工作类型和输出扩展名枚举。
|
||||
|
||||
@@ -60,6 +60,7 @@
|
||||
- `Services/TabServices.cs`:索引列表加载/保存、单行读写、排序、删除和状态切换。
|
||||
- `Services/DbServices.cs`:Oracle SQL 的提取与执行核心:
|
||||
- `GetTableSql`:读取表 DDL、注释、主外键、唯一键和索引;
|
||||
- `GetTableField`:按 `TABLE.COLUMN` 读取单个物理表字段,不查询 BOS 元数据;目标字段不存在时新增,已存在时跳过;
|
||||
- `GetTableBos`:读取 BOS 配置;
|
||||
- `GetTableBosField`:按 `TABLE.COLUMN` 读取单个 BOS 字段配置,生成目标物理字段补充 SQL,并包含关联限定值/引用元数据;
|
||||
- `GetPrcSql` / `GetAllPrc`:读取存储过程或函数源码;
|
||||
@@ -71,11 +72,12 @@
|
||||
|
||||
## 真实数据流
|
||||
|
||||
五个 Tab 的映射由 `MainViewModel` 构造函数定义:
|
||||
六个 Tab 的映射由 `MainViewModel` 构造函数定义:
|
||||
|
||||
| Tab | 索引文件 | 内容文件 | 源库读取方法 |
|
||||
| --- | --- | --- | --- |
|
||||
| 表配置 | `data/from/table.txt` | `data/{对象名}_creat.txt` | `DbServices.GetTableSql` |
|
||||
| 表字段 | `data/from/table_field.txt` | `data/{表名}.{字段名}_table_field.txt` | `DbServices.GetTableField` |
|
||||
| BOS 配置 | `data/from/bos.txt` | `data/{对象名}_bos.txt` | `DbServices.GetTableBos` |
|
||||
| BOS 字段配置 | `data/from/bos_field.txt` | `data/{表名}.{字段名}_bos_field.txt` | `DbServices.GetTableBosField` |
|
||||
| 存储过程 | `data/from/prc.txt` | `data/{对象名}_prc.txt` | `DbServices.GetPrcSql` |
|
||||
@@ -83,6 +85,8 @@
|
||||
|
||||
读取流程:索引项 -> 调用源库读取委托 -> 生成 SQL 文本 -> 保存到 `data/` -> 更新读取状态并显示内容。
|
||||
|
||||
“表字段”位于“表配置”之后,列表项必须使用 `TABLE.COLUMN`。它只读取 Oracle 物理表字段定义和字段注释,不检查 `AD_TABLE`、`AD_COLUMN` 等 BOS 元数据。源物理表或字段不存在时读取失败;目标表不存在时写入失败;目标字段已存在时整项跳过,否则按源字段类型、默认值、可空性和注释新增。
|
||||
|
||||
读取 BOS 配置前会检查源库当前用户下的辅助过程。整表读取使用 `HMIG_GET_TABLE_BOS_31`,单字段读取使用 `HMIG_GET_TABLE_BOS_FIELD_31`;若过程不存在,程序从运行目录的同名 `pre/*.prc` 脚本安装,检查 `USER_ERRORS` 和对象状态后再读取。单字段列表项必须采用 `TABLE.COLUMN` 格式。界面不提供手动“预处理”入口。
|
||||
|
||||
单字段 SQL 写入目标库时,限定值组按名称、限定值按组和值判断,只补充缺失项;引用元数据按引用表名和字段 `DBNAME` 映射,目标引用字段不存在或不唯一时直接报错,不自动创建。
|
||||
@@ -147,7 +151,7 @@ dotnet build .\henlo_migration_wpf10\henlo_migration_wpf10.csproj -c Debug --no-
|
||||
|
||||
1. 所有 C#/XAML 修改至少执行一次主项目构建。
|
||||
2. 仅文档修改可不构建,但要重新读取文件检查 Markdown、路径和命令。
|
||||
3. XAML/绑定修改除构建外,应在 Windows 上启动应用,检查五个 Tab、连接弹窗、按钮可用性和错误弹窗;不要因此连接生产库。
|
||||
3. XAML/绑定修改除构建外,应在 Windows 上启动应用,检查六个 Tab、连接弹窗、按钮可用性和错误弹窗;不要因此连接生产库。
|
||||
4. SQL 生成/拆分修改需用不含真实数据的代表性 SQL 验证表 DDL、注释、约束、PL/SQL 和 INSERT。
|
||||
5. 更新逻辑修改需分别考虑普通 `dotnet run`(非 Velopack 安装)和 Velopack 安装态。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user