头疼管理 MySQL 数据库 Schema?开源工具大盘点!

用Atlas自动管理数据库Schema变更,告别手写迁移脚本 在软件工程的日常开发中,数据库结构的持续演进往往比业务代码更难把控。传统的迁移脚本依赖开发者的纪律性来维护,而多环境下的schema漂移、缺失的版本记录、难以追溯的线上修改,常常让发布流程陷入不可控的境地。Atlas作为一款开源数据库Schema管理工具,引入了声明式与版本化迁移的双重工作流:通过期望状态与当前状态的差异对比,自动生成安全的DDL变更,并提供可校验的迁移历史。它让数据库结构的管理像Git管理代码一样清晰可追溯,既能应用于本地与测试环境的快速同步,也能在生产环境通过CI流程完成可审计的发布。本 阅读详情

MySQL 是世界上最流行的开源关系型数据库管理系统 (RDBMS),但是对 MySQL 数据库做 schema 变更 (schema migration) 还是有点难搞的😅。

本文中,我们盘点一些好用的针对 MySQL 的开源数据库 schema 迁移工具,简单聊一下它们提供的不同的功能和体验。

file

gh-ost

gh-ost 是一个无需触发器的 MySQL 在线 Schema 迁移工具,它是基于触发器的在线 Schema 迁移工具 pt-online-schema-change 的继任者。该工具由 GitHub 开发,并在 2016 年作为开源项目发布。

file

gh-ost: GitHub 的 Online Schema Transmogrifier/Transfigurator/Transformer/Thingy

传统的在线 schema 迁移方案通常涉及长时间维护窗口或需要将数据库脱机。gh-ost 旨在通过提供非阻塞和在线模式更改解决方案来解决这些限制。

所有现有的在线模式更改工具操作方式类似:它们创建一个和原始表相似的 ghost (幽灵) 表,将该表迁移为空,逐步从原始表复制数据到 ghost 表,同时发布正在进行中的更改(对表应用任何 INSERT, DELETE, UPDATE)到 ghost 表。最后,在恰当的时候,他们用 ghost 表替换原始表。gh-ost 使用相同的模式,但是它不同于所有现有工具,因为它不使用触发器,而是利用 MySQL binlog 捕获表更改,并异步地将其应用于 ghost 表之上。

Skeema

Skeem 是一个用于 MySQL 和 MariaDB 的 Schama 管理系统。它通过纯 SQL 以声明方式实现对表定义和模式更改的管理。

file

Skeema 支持基于拉取请求的工作流程,用于模式更改提交、审查和执行。这使团队可以像管理代码更改一样管理 Schema 变更。

Skeema 有一个配套的 SaaS 工具,名为 Skeema Cloud Linter,可自动对模式更改提交和拉取请求进行语法检查。

GitHub 同时使用 Skeema 和 gh-ost 来自动化其 MySQL Schema 迁移。

Liquibase

Liquibase 可以说是这个领域中最知名的产品之一。它基于命令行界面,使用 Java 编写。在 Liquibase 里,schema 迁移基于 Changeset 和 Changelog。可能由于其悠久历史和 Java 根基,最常用的形式是 XML(不过后来添加了 YAML 和 JSON 支持)。

file

使用适当注释也可支持普通 SQL 语句。

file

Flyway

Flyway 是另一个具有悠久历史和庞大客户群的开源项目。其核心是 CLI 和 Java 库。

Flyway 已被 Redgate 收购,但仍保持着开发者至上的初心,这一点在它官网也可以看出来。

file

Liquibase 和 Flyway 在其提供的功能上非常相似。它们之间的关键区别在于目标受众:Liquibase 面向企业客户,而 Flyway 则更注重开发人员友好和易用性。

Bytebase

Bytebase 是一款为研发团队准备的数据库 CI/CD 工具,专为开发者和 DBA 打造,用于协同处理数据库变更。Bytebase 使用 Go 和 TypeScript 编写。

file

Bytebase 提供了一系列可配置的 SQL 语法检查规则,用于检测 SQL 反模式,例如可以约束 NOT NULL。

👻 Bytebase 还专门为 MySQL 在线 Schema 迁移提供了基于 gh-ost 的 GUI。

除了管理数据库变更,Bytebase 还提供带有数据访问控制、动态数据脱敏和审计日志的 SQL 编辑器,以收口查询路径。

file

总结

file


💡 更多资讯,请关注 Bytebase 公号:Bytebase

MySQL:开源数据库管理系统的先驱 MySQL 作为一款开源的关系型数据库管理系统,具有稳定性、可靠性、性能优异等特点,在各种软件开发场景中得到了广泛的应用。随着云计算、大数据和新技术的不断发展,MySQL 将继续演进和壮大,为用户提供更好的数据存储和管理解决方案。作为开发者和企业,我们应该继续关注 MySQL 的发展动态,充分利用其强大的功能和特性,为我们的应用和业务带来更大的价值和竞争优势。 阅读详情

相关推荐

MySQL数据库(超详细万字长文,建议收藏)

这篇文章是对MySQL数据库知识的一个汇总,包括MySQL数据库的基础知识、SQL语句的知识、三大范式、数据库的数据类型、数据库与数据表的基本操作、数据表约束、基础查询和高级查询等等。

sunset_bo的博客 4840

mysql 导出dmp文件_15款优秀的mysql管理工具与应用程序推荐

对于开发人员来说,mysql管理工具可以说是必不可缺的,它能帮助开发人员在许多方面支持包括PostgreSQL、MySQL、Redis、MongoDB等在内的多种数据库;同时还能提供包括触发器、事件、视图、数据备份、对象结构等多种功能。本文帮大家整理了15款优秀的MySQL管理工具和应用软件,大家可以从中选择一个,从而帮助你轻松快速完成工作。1. InductionInduction是一款用于理解...

weixin_39610722的博客 1009

DBeaver实战指南:开源数据库工具的安装配置与信创适配

DBeaver是一款开源、跨平台、可扩展的通用数据库管理工具,其核心价值在于提供统一操作界面与深度数据库协议支持。它基于Eclipse RCP架构,通过JDBC/ODBC驱动实现对MySQL、Oracle、PostgreSQL及国产数据库(如openGauss、达梦、人大金仓)的原生兼容,技术原理涵盖驱动动态加载、SSH隧道代理、虚拟数据库联邦查询等工程机制。相比Navicat等商业工具,DBeaver以可控性、可审计性与供应链安全见长,广泛应用于金融信创迁移、政务云多源治理和K8s环境下的轻量运维场景。本

alince20008的博客 518

MySQL 开源工具集合

对于MySQL5.7版本这些工具目前支持的都非常友好,但8.0版本目前很多工具不兼容。工具就是替代一部分功能,提高效率的。MySQL运维中提高工作效率,就需要引入这些工具,也需要使用得当,理解,熟悉用法,才是运维之道。结合:MySQL官方工具 + 开源工具详细讲解视频:https://www.modb.pro/course/play/97?lsId=4647MySQL 开源工具集合 - 墨天轮。

学亮编程手记 1560

三款开源Web ER图工具实战指南:解决数据库建模断层问题

ER图是数据库设计的核心表达形式,其本质是实体、属性与关系的结构化建模。传统工具因缺乏元数据驱动和实时双向同步能力,导致设计与实现严重脱节,引发字段类型不一致、外键缺失、协作版本混乱等工程痛点。现代Web端开源ER图工具通过解析information_schema或DDL脚本,构建可交互、可编辑、可验证的动态模型,实现‘图即数据、数据即图’的技术闭环。它们支持CI/CD集成、中文注释渲染、字段级变更追溯等关键能力,广泛应用于敏捷开发、DBA规范治理与等保合规场景。本文聚焦DbSchema、QuickDBD与

weixin_34268310的博客 288

数据库版本管理利器Flyway:原理、实践与生产环境部署指南

数据库版本管理是软件工程中确保环境一致性和发布可靠性的关键技术。其核心原理是通过版本控制机制追踪数据库结构(Schema)与数据的变更历史,实现变更的可重复、自动化应用。这一技术为团队协作、持续集成与持续交付(CI/CD)提供了坚实基础,能有效解决开发、测试、生产环境数据库状态不一致的痛点。在实际应用中,数据库版本管理工具通过约定大于配置的方式,扫描并顺序执行迁移脚本,同时利用元数据表记录执行状态,确保幂等性。Flyway作为该领域的代表性开源工具,将这一理念工程化,支持纯SQL和Java迁移脚本,并可与S

weixin_30675247的博客 291

告别脚本维护:用atlas实现声明式数据库Schema管理

数据库迁移脚本管理是后端开发和运维中的高频痛点,传统版本化迁移工具依赖手工维护SQL脚本,容易出现脚本与真实表结构不一致、多人协作冲突、回滚困难等问题。近年来,数据库Schema管理逐渐转向声明式理念,即开发者只定义期望的最终表结构,工具自动计算差异并生成变更SQL。atlas作为一款开源的Schema管理工具,正是基于这一原理,支持MySQL、PostgreSQL等主流关系型数据库,提供从开发到生产的全流程迁移方案。它能有效降低团队心智负担,提升多人协作效率,并通过与CI/CD流水线集成实现自动化的数据库

weixin_34072296的博客 227

DB-GPT:Agentic数据应用的全栈框架与Text2SQL工程链路解析

自然语言转SQL(Text2SQL)是数据智能应用中的核心技术难点,涉及表结构理解、上下文裁剪、方言适配与业务口径对齐等复杂环节。实际工程中,模型生成的SQL往往因表过多、指标定义不清而难以生产可用。DB-GPT作为一个面向Agentic数据应用的全栈框架,通过Schema召回、少样本提示、执行反馈自纠错与知识库挂接,构建了完整的Text2SQL生成链路;同时其AWEL编排语言支持将LLM、检索、工具调用等算子组合成可扩展的工作流,实现多Agent协作。这使得开发者能快速搭建具备权限控制与可观测性的数据问答

weixin_29035405的博客 21

数据库CI/CD工具选型指南:Liquibase、Flyway、Bytebase、Sqitch对比

在软件交付走向GitOps与流水线化的今天,数据库变更仍是有状态基础设施中最棘手的一环。数据库迁移工具通过版本记录、变更追踪与自动化执行,让结构演进变得可重复、可校验。理解这些工具如何管理schema版本、处理校验和与回滚策略,是团队实现数据库DevOps的基础。无论是轻量级SQL迁移、企业级多数据库适配,还是平台化SQL审核与GitOps协作,不同工具解决不同阶段的核心痛点。结合团队规模、数据库类型与发布频率,选择合理的迁移引擎与发布管控组合,能显著降低生产事故风险,让数据库变更像应用代码一样可控、可审计

weixin_34161083的博客 713

一文带你了解三大开源关系型数据库:SQLite、MySQL和PostgreSQL

一文带你了解三大开源关系型数据库:SQLite、MySQL和PostgreSQL。

dvlinker的技术专栏 5万+

UE5.3与Colosseum配置实战:从编译到问题解决的全流程指南

本文提供了在Windows系统下配置UE5.3与Colosseum仿真环境的全流程实战指南。详细介绍了从软件版本选择、源代码获取、编译脚本执行到解决常见编译错误和引擎崩溃问题的具体步骤,旨在帮助开发者高效搭建无人机、机器人等仿真平台,并顺利运行外部API控制。

weixin_29002595的博客 557

10分钟上手db.py:让数据库交互像Python一样简单

你是否还在为繁琐的数据库连接代码而头疼?每次编写SQL查询都要重复处理游标、连接和结果转换?db.py(GitHub加速计划镜像仓库:https://gitcode.com/gh_mirrors/db/db.py)彻底改变了这一切!作为一款开源数据库交互工具,它将Pandas的易用性与SQL的强大功能完美结合,让你用Pythonic的方式轻松操作各类数据库。本文将带你从零开始,掌握db.py的核心...

gitblog_00392的博客 552

Pyside6实战:3种.ui文件加载方式对比(附完整代码示例)

本文深入解析Pyside6中3种.ui文件加载方式的优劣与性能优化策略,包括动态加载QUiLoader、预编译方案及混合策略。通过实测数据和完整代码示例,帮助开发者根据项目需求选择最优解,提升界面加载效率与内存管理。

weixin_30897233的博客 91

HedgeDoc 数据库迁移机制解析:CommonJS 迁移包、Knex 驱动与初始 Schema 全览

> 本文围绕 [backend/src/database/migrations/README.md](https://link.gitcode.com/i/492cafd4da5f78f80db4d3c433286079) 展开,深入解析 HedgeDoc(2.0 alpha 版)如何借助 Knex 管理数据库迁移:为什么迁移必须写成 CommonJS、独立的 `@hedgedoc/databas

gitblog_00872的博客 138

中国全国地面站点数据(1981-2010)、月平均气象、月平均降水、月平均相对湿度、月最大降水、月最高温度最低温度、月最高温平均值最低温平均值、高低温站点基础数据,气候数据

中国全国地面站点数据(1981-2010)、月平均气象、月平均降水、月平均相对湿度、月最大降水、月最高温度最低温度、月最高温平均值最低温平均值、高低温站点基础数据 b_china_mon_avg_data_pressure月平均气象 b_china_mon_avg_data_rain月平均降水 b_china_mon_avg_data_rhu月平均相对湿度 b_china_mon_max_data_rain月最大降水 b_china_mon_max_min_data_tem月最高温度最低温度 b_china

无极低码 2万+

无监督低照度增强实战:用ZeroDCE和SCI拯救你的夜间照片(附PyTorch代码)

本文深入探讨了无监督低照度图像增强技术,重点解析了ZeroDCE和SCI两大代表性模型的核心原理与实战应用。通过对比分析两者的技术路径、网络结构及性能特点,并附上详细的PyTorch代码实现,旨在帮助读者掌握无需配对数据即可有效提升夜间照片画质的深度学习解决方案。

git9versioner的博客 490

DBX数据库管理工具终极指南:15MB轻量级客户端如何改变你的开发工作流

DBX是一款仅15MB的轻量级跨平台数据库客户端,支持MySQL、PostgreSQL、SQLite、Redis、MongoDB等50多种数据库类型,无需Java运行时环境,无需Python虚拟环境,只需一个15MB的小巧二进制文件即可完成下载、安装和连接。本文将为你提供完整的DBX安装指南和数据库连接教程,让你在5分钟内快速上手这款高效的数据库管理工具。 ## 🎯 告别臃肿工具:为什么你需要

gitblog_00066的博客 369

SPSS_Process—简单&平行&链式中介模型

本篇文章介绍采用SPSS的插件Process对简单中介、链式中介、平行中介模型进行检验的操作方法及结果解读。

m0_54401011的博客 4万+

数据库CI/CD工具选型指南:Flyway、Liquibase、Atlas与Dolt对比

在现代软件工程实践中,数据库变更管理是持续交付链条中最具挑战性的一环。与无状态的应用代码不同,数据库作为长期共享的状态载体,其结构变更和数据迁移天然具有高风险性。主流的数据库CI/CD工具通过版本化SQL脚本、变更集抽象或声明式状态管理,将结构变更流程标准化。Flyway以简单约定和校验机制著称,Liquibase通过changelog与context实现环境隔离,Atlas基于期望状态自动生成迁移计划,Dolt则将版本控制能力延伸至数据层面。理解不同工具的底层原理与运维机制,结合团队规模、数据库类型和发布

weixin_34212762的博客 405

PCL 建筑物点云立面和平面分割提取【2025最新版】

在建筑物点云中,立面点和平面点的法向量存在明显的差异,根据法向量在Z方向的分量设置相应得阈值即可实现立面点与平面点的分割。

点云侠的博客 1963

NSIS教程(8): 基于第三方界面库的安装包界面

前面的几篇文章介绍了NSIS的传统界面的安装包和现代界面的安装包的制作方法,也提到了NSIS支持自定义页面(即使用page custom)的特性,自定义页面需要用户自己创建对话框、控件、添加控件响应等等,虽然NSIS提供了nsDialogs.nsh来支持这些功能,但使用起来还是不太方便(需要专门了解这个插件诸多用法),而且不够灵活,所以本文介绍一种终极的自定义界面的安装包解决方案,即完全使用第三方

while(1) { smile(); } 9万+

数据库结构变更不再靠手工:用Atlas实现声明式Schema管理与自动化迁移

在软件开发中,数据库Schema的频繁变更往往伴随着脚本冲突、人为失误与线上事故。如何从手工维护ALTER TABLE的原始模式,走向更可靠的自动化管理?声明式Schema管理提供了一种思路:开发者只需描述期望的数据库结构,工具自动对比实际状态并生成迁移脚本。这种模式不仅降低了结构漂移风险,也为团队协作提供了可审查、可追溯的变更记录。结合版本化迁移与CI/CD流水线,数据库结构可以像应用代码一样被持续集成与校验。Atlas作为一款开源Schema管理工具,将声明式建模、自动迁移生成与工作流整合于一体,正在成

weixin_42116058的博客 226

【nnUNetv2进阶】四、nnUNetv2 魔改网络-小试牛刀-加入注意力机制ChannelAttention

本文介绍了在nnunet中加入ChannelAttention的方法,按照本文教的教程,可以快速完成ChannelAttention的加入和自定义模型的跑通。

AI爱好者的博客,分享计算机领域相关知识 5802

终极指南:如何用Bytebase实现数据库DevOps自动化与安全管理

你是否经常为数据库变更而头疼?开发团队频繁修改schema导致生产事故,DBA手动审核SQL耗时费力,敏感数据暴露风险居高不下?Bytebase作为CNCF认证的数据库DevOps工具,为你提供了一站式解决方案。这款开源数据库DevOps工具能够帮助团队实现数据库变更的自动化管理,让数据库开发像代码开发一样高效可靠。 [![Bytebase数据库DevOps工具架构图](https://raw.

gitblog_00363的博客 900

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

10分钟打造你的专属AI数据助手:DB-GPT让数据分析像聊天一样简单

你是否曾为复杂的SQL查询而头疼?是否希望有一个智能助手能理解你的业务问题并直接从数据库中找出答案?今天,我要介绍的开源项目DB-GPT,正是这样一个革命性的AI数据助手,它能让你用自然语言与数据库对话,将数据分析的门槛降到最低。 想象一下这样的场景:早晨开会前,你需要快速了解公司上周的销售数据趋势,但你不懂SQL,也不熟悉复杂的报表工具。这时,你只需打开DB-GPT,输入"帮我分析上周的销售情

gitblog_00234的博客 499

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

终极指南:Nacos配置MySQL数据源启动失败的完整解决方案

Nacos作为阿里云开源的动态服务发现、配置管理和服务管理平台,在微服务架构中扮演着至关重要的角色。然而,当配置MySQL数据源时,开发者常常遇到令人头疼的"java.lang.IllegalStateException: No DataSource set"启动失败问题。本文将为你提供一套完整的诊断和解决方案,让你快速解决Nacos MySQL数据源配置难题。 ## 📋 问题速览:快速了解N

gitblog_00581的博客 776

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

上一篇: 当事人复盘 GitLab 史上最严重的数据库故障
下一篇: 百亿美金的设计,深度剖析 GitLab 的 Postgres 数据库 schema
Bytebase
博客等级 码龄5年 1349粉丝 258原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值