我构建了一个工具,用于为数据库生成关系感知的测试数据(无需 seed scripts)

发布: (2025年12月17日 GMT+8 18:29)
3 min read
原文: Dev.to

Source: Dev.to

Cover image for I built a tool to generate relationship-aware test data for Database (no seed scripts)

我想分享一个我一直在做的副项目,并希望社区给出诚恳的反馈。

这个想法来源于我经常遇到的一个问题——无论是在工作中还是在自己的副项目里。功能在开发环境里运行完美,测试也全部通过,一切看起来都很正常。但当同样的代码上线到生产环境时,问题就开始出现。大多数情况下,问题并不是代码本身,而是数据。

在开发和测试阶段,我们的数据集通常很小、很干净且不够真实。最初使用 seed 脚本还能解决问题,但随着应用的增长、模式的演进以及关系的日益复杂,这些脚本变得越来越难维护。每次集合或模式变化都要更新或重写脚本,既耗时又容易被推迟,甚至直接被跳过。

正是这种挫败感促使我开始构建 Drawline

Drawline 的功能

Drawline 旨在让使用真实的测试数据变得更简单:

  • 连接已有数据库或从全新项目开始
  • 自动推断数据库结构和关系
  • 使用可视化界面查看并微调模式
  • 一键为开发或测试数据库填充真实、关系感知的数据
  • 跟踪并恢复模式版本,类似代码的版本控制方式

目标是帮助开发者在测试、调试和演示阶段提前获得有意义的数据,而无需编写或不断维护 seed 脚本。

产品仍处于早期阶段,但我已经在自己的项目中使用并根据实际使用情况不断迭代。如果你感兴趣,可以访问 Drawline 了解更多。

我期待你的反馈

我分享这篇文章并不是推销,而是想向同样遇到类似问题的开发者学习:

  • 你目前是如何处理 Web 应用的测试数据的?
  • 这类工具你会真正使用吗,还是现有的工具和脚本已经足够?
  • 什么因素会让你坚决拒绝使用这样的工具?

感谢阅读,期待你的任何反馈或想法。

Back to Blog

相关文章

阅读更多 »

SQLite 如何测试

文章 URL: https://sqlite.org/testing.html 评论 URL: https://news.ycombinator.com/item?id=46303277 点数: 85 评论数: 8

SQLite 的测试方式

文章 URL: https://sqlite.org/testing.html 评论 URL: https://news.ycombinator.com/item?id=46303277 点赞数: 27 评论数: 2

步骤2

查询过滤器https://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2...