把开发库中的表复制到测试库,涉及的不只是搬运行数据:还要决定复制结构还是记录、目标表已存在时怎样处理,以及跨数据库类型时生成的 SQL 是否符合预期。我在开发 TableBridge 时,将这个流程拆成两个阶段:复制粘贴负责选择来源和目标,真正写入由传输向导中的确认与执行负责。
如果平时使用 Navicat 处理数据库复制,也可以从这个例子了解 DataGrip 中的另一种操作流程。本文说明配置与审核设计,功能范围仍以当前版本为准。
1. 在数据库树中复制粘贴
在来源连接的数据库树中选中表并复制,然后在目标数据库或 schema 上粘贴。粘贴动作打开传输向导,尚不执行数据库写入。SQL 编辑器和数据网格中的常规复制粘贴继续保留原有含义。
实现上,插件通过 ActionPromoter 判断动作上下文。项目级服务保存 SmartPsiElementPointer 对象引用,系统剪贴板使用自定义 DataFlavor 的随机 token;读取时核对 token 并解析对象指针。复制阶段不生成数据快照,实际记录在执行阶段读取。
2. 明确选择复制范围与目标策略
向导分为来源与目标、对象选择、传输审核三个步骤。可以选择结构与数据、仅结构,或将记录写入目标表,并配置目标名称、列映射和目标表已存在时的策略。默认停止并提示,避免未经选择覆盖已有对象。

按主键增量新增与更新会保留目标独有记录;镜像新增、更新和删除会删除目标中来源不存在的记录。这两种语义需要分别评估,试用时先使用可丢弃的测试数据。
3. 执行前审核目标 SQL
当前支持范围内的 MySQL 与 PostgreSQL 转换会生成目标 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 辅助整理,技术描述依据项目实现和已有验收记录核对。