如何升级MySQL数据库架构?

4

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


什么是更改? - Andrews B Anthony
每次升级都会有所不同,例如,某些列的名称可能不同,可能会有新的表,可能会进行一些更改。 - toast
@AndrewsBAnthony 我正在尝试编写一个脚本来自动化从开发环境到生产环境的迁移。 - toast
生成 SQL 查询语句并将其保存在属性文件/ XML 文件中,编写脚本以执行文件中的所有查询语句,在所有模式中逐一执行... - Andrews B Anthony
@AndrewsBAnthony 我原以为会有更简单、自动化的方式,哈哈。 - toast
为什么不写代码并分享出来呢?这相对来说很容易 :) - Andrews B Anthony
2个回答

3

模式迁移

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

有几个免费的工具可以做到这一点,例如:

所有这些都要求您编写详细的代码文件以进行每个变化,随着开发的进行,关于创建模式更改代码的过程必须严谨。如果您一直没有遵循此过程,则很难逆向工程一个项目。

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

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


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接