如何升级 MySQL 数据库架构?

How to upgrade MySQL database schema?

如何通过命令行从开发数据库模式自动升级生产数据库模式?开发版本对生产模式中的模式进行了更改,但我不能在生产中丢失数据。

Schema Migrations

大多数现代项目都使用一种工具来跟踪对数据库的每个单独更改,并将一些版本号与更改相关联。数据库还必须有一些 table 来存储其当前版本。这样该工具就可以查询当前版本并确定要应用哪些(如果有)更改。

有几种免费工具可以执行此操作,例如:

所有这些都需要您在开发时为每个更改编写细致的代码文件。如果您一直没有遵循创建模式更改代码的过程,就很难对项目进行逆向工程。

mysqldbcompare 这样的工具可以帮助您生成最少的 ALTER TABLE 语句来升级您的生产数据库。

还有一个名为 Shift 的较新的免费工具(我与创建它的工程师一起工作),它有助于自动化升级数据库的过程。它甚至提供了一个很好的 Web 界面,用于输入您的模式更改,运行 它们作为在线更改,并监控它们的进度。但是使用这个工具需要相当多的经验,我不建议初学者使用它。

您也可以使用 MySQL WorkBench: https://dev.mysql.com/downloads/workbench/ 如果你想要一个简单的 GUI,并且与 OS 兼容 ;)