首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >DataGrip 跨库复制表实践:TableBridge 的配置流程与 SQL 审核

DataGrip 跨库复制表实践:TableBridge 的配置流程与 SQL 审核

原创
作者头像
用户10976269
发布于 2026-10-02 23:25:37
发布于 2026-10-02 23:25:37
350
举报

把开发库中的表复制到测试库,涉及的不只是搬运行数据:还要决定复制结构还是记录、目标表已存在时怎样处理,以及跨数据库类型时生成的 SQL 是否符合预期。我在开发 TableBridge 时,将这个流程拆成两个阶段:复制粘贴负责选择来源和目标,真正写入由传输向导中的确认与执行负责。

如果平时使用 Navicat 处理数据库复制,也可以从这个例子了解 DataGrip 中的另一种操作流程。本文说明配置与审核设计,功能范围仍以当前版本为准。

1. 在数据库树中复制粘贴

在来源连接的数据库树中选中表并复制,然后在目标数据库或 schema 上粘贴。粘贴动作打开传输向导,尚不执行数据库写入。SQL 编辑器和数据网格中的常规复制粘贴继续保留原有含义。

实现上,插件通过 ActionPromoter 判断动作上下文。项目级服务保存 SmartPsiElementPointer 对象引用,系统剪贴板使用自定义 DataFlavor 的随机 token;读取时核对 token 并解析对象指针。复制阶段不生成数据快照,实际记录在执行阶段读取。

2. 明确选择复制范围与目标策略

向导分为来源与目标、对象选择、传输审核三个步骤。可以选择结构与数据、仅结构,或将记录写入目标表,并配置目标名称、列映射和目标表已存在时的策略。默认停止并提示,避免未经选择覆盖已有对象。

对象选择与传输设置
对象选择与传输设置

按主键增量新增与更新会保留目标独有记录;镜像新增、更新和删除会删除目标中来源不存在的记录。这两种语义需要分别评估,试用时先使用可丢弃的测试数据。

3. 执行前审核目标 SQL

当前支持范围内的 MySQL 与 PostgreSQL 转换会生成目标 SQL。向导展示目标位置、对象摘要、类型转换与依赖说明,涉及结构时先审核再执行。

执行前审核目标 SQL
执行前审核目标 SQL

复杂视图、函数、过程、排序规则、高级索引和触发器可能需要人工处理,自动转换不代表任意 SQL 都能等价执行。部分 DDL 可能隐式提交,失败后可能留下已创建结构,插件不能替代数据库备份。

4. 当前验证范围

当前版本为 alpha,兼容 DataGrip 2026.2(262.*)。已有实库验收覆盖 MySQL 8.0.43 与 PostgreSQL 18.3,以及支持范围内的同类型复制和两者之间的转换。Oracle 是未经本版本实库验收的实验性能力;SQL Server 暂不支持。

截图和 56 秒视频使用真实插件界面与示例元数据,展示配置路径,不代表完整数据库传输结果。

5. 安装与交流

TableBridge 免费使用,源码暂未公开,已上架 JetBrains Marketplace。

欢迎交流 DataGrip 插件开发、元数据处理和 SQL 转换问题。反馈请提供 IDE、插件与数据库版本及脱敏复现步骤,去掉连接凭据、业务数据与敏感 SQL。

本文文字由 AI 辅助整理,技术描述依据项目实现和已有验收记录核对。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 1. 在数据库树中复制粘贴
  • 2. 明确选择复制范围与目标策略
  • 3. 执行前审核目标 SQL
  • 4. 当前验证范围
  • 5. 安装与交流
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档