Skip to content

Enhance ER diagram features and interactive transaction support#109

Merged
qianmoQ merged 16 commits into
devlive-community:devfrom
qianmoQ:dev-26.3.0
Jun 26, 2026
Merged

Enhance ER diagram features and interactive transaction support#109
qianmoQ merged 16 commits into
devlive-community:devfrom
qianmoQ:dev-26.3.0

Conversation

@qianmoQ

@qianmoQ qianmoQ commented Jun 25, 2026

Copy link
Copy Markdown
Member

No description provided.

qianmoQ added 16 commits June 25, 2026 11:49
- 新增 utils/dbSchema(columnsSql/fksSql,覆盖 mysql/postgres/sqlite·内存,clickhouse/duckdb 无外键内省)
- 新增 ErDiagram:取表+列+外键,表卡片(外键列标◆)+ SVG 贝塞尔连线,自动网格布局、表头可拖拽
- SQL 工具栏新增 ER 图入口;补充 er.* 文案
- MySQL 数据源未指定 database 时 table_schema 为空、查不到表
- 不再显示空图,而是提示先在数据源中选择数据库(与 SchemaBrowser 一致的前置条件)
- MySQL 未指定库时不再只是提示,改为在 ER 图内列出数据库供点击选择
- 选库后加载该库 ER;头部显示当前库并提供「换库」返回选择
- 替换 er.needDb 为 er.pickDb/switchDb
- 后端新增 TxnConn trait + TxnState(单会话持久连接) + tx_begin/exec/finish/active 命令
- DbExecutor 加默认 begin()(不支持则报错);SQLite/DuckDB 抽出 run_on_conn 并实现 begin + Txn(BEGIN→同连接执行→COMMIT/ROLLBACK)
- 前端 useSqlTxn + TxnControl 工具栏(开启/提交/回滚+事务中标识);事务进行中 runSql 改走 tx_exec(同一连接、不分页)
- MySQL/Postgres 待 D4-2;补充 txn.* 文案
- 抽出 connect()(返回连接+Endpoint,事务会话持有 Endpoint 以保活 SSH 隧道)与 run_on_conn/run_on_client
- MySQL: START TRANSACTION → 同连接执行 → COMMIT/ROLLBACK;Postgres 同理(BEGIN)
- ClickHouse 仍用默认 begin() 报「不支持事务」
- 去掉开启事务按钮的原生 title:点击后按钮被 v-if 替换,浏览器收不到 mouseout 导致 title 提示卡住
- 开启/提交/回滚向结果面板写入一条消息(emit notice → onTxnNotice),不再只有 toast、面板无变化
- 左侧组(语言名+面包屑+SQL 工具栏)含多个 flex-shrink-0 按钮,放不下时会溢出盖到右侧的 AI 预测/光标信息上
- 给左侧组加 overflow-x-auto(隐藏滚动条),拥挤时滚动而非溢出,两组不再重叠
- 还原事务按钮的说明提示,但改用 ui/Tooltip(纯 CSS hover)而非原生 title
- 原生 title 在元素被 v-if 移除时收不到 mouseout 会卡住;Tooltip 随元素移除即消失,不残留
- DebugToolbar/DebugPanel/ErDiagram/TaskRunner/GitRebase/GitWorktrees 的按钮提示由原生 :title 改为 ui/Tooltip
- 原生 title 在元素被移除/切换时残留;统一用 Tooltip 避免
- 后端 git_ignore_append_block(按块首行标题去重,追加整块)
- 内置 Node/Python/Rust/Go/Java/macOS/Windows/IDE/Env/Logs 模板;GitIgnoreTemplates 弹层多选追加
- 命令面板「插入 .gitignore 模板」;补充 gitignore.* 文案
- 后端新增 gitignore_templates.rs(独立表 gitignore_templates) + list/save/delete 命令,GitignoreStore 注册
- 设置页新增「.gitignore」分页(setting/Gitignore.vue):增/改/删自定义模板
- 插入模板弹层合并 内置 + 自定义;补充 settings.gitignore.* 与 nav 文案
- 左侧模板列表(选中高亮+悬停删除) + 右侧表单(名称/规则/保存),对齐 setting/Database.vue
- 复用 Label/Input/Button;补充 newTitle/editTitle/name/content 文案
- 后端 resolve_editorconfig:向上查找 .editorconfig,glob 匹配(* ** ? {a,b} [..]),近的覆盖远的,遇 root=true 停
- 解析 indent_style/indent_size/tab_width 等;按文件覆盖编辑器缩进
- 前端 effectiveTabSize/effectiveIndentWithTab(.editorconfig 优先于全局),文件切换时重解析并即时生效
- 后端 dap_build:Rust 走 cargo build 取 target/debug/<package>;C/C++ 用 cc/c++ -g 编译到临时可执行
- useDebug 对 rust/c/cpp 先 dap_build 拿产物,再用 lldb-dap(adapterID=lldb, program=产物)启动
- dapSupportsLanguage 放开 rust/c/cpp;缺 lldb-dap 给安装提示
- 补充 debug.installLldb 文案
- 设置页「调试适配器」Tab 新增 lldb-dap 条目:安装命令 brew install llvm
- 检测兼容 brew keg-only:额外探测 /opt/homebrew/opt/llvm/bin 与 /usr/local/opt/llvm/bin
- 原 label 含中文「随 LLVM 提供」是该翻译的文案却写死在后端,切换语言不变
- 改为与 debugpy/delve 一致的语言中立工具名「Rust / C / C++ (lldb-dap)」;是否随 LLVM 由安装命令 brew install llvm 体现
@qianmoQ qianmoQ merged commit 655fbd1 into devlive-community:dev Jun 26, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant