如何在不制作数据库完整副本的情况下对mysql数据库进行版本控制和分支?

cngwdvgl  于 2021-06-23  发布在  Mysql
关注(0)|答案(0)|浏览(244)

我有一个mysql数据库,它被20多个经常更改的人使用。我需要在版本控制下进行分支,记录哪些用户做了哪些更改,并且我需要保留每个分支的整个历史长达一年。在这方面花钱也不太理想,但可以控制。
数据库用于存储与程序员团队编写的代码密切相关的数据,程序员团队将处理不同的功能。每个特性都必须有自己的分支,在代码和数据测试成功后,这些分支将被合并到主分支中。当程序员更改代码时,他们还必须更改数据库以反映代码中的更改。这可能包括频繁的模式更改。当然,不止一个程序员可以同时在同一分支上工作。他们还需要自行决定回滚更改或将分支合并到主分支中。数据库用于生成json数据和我们开发的产品用来运行的其他文件。我们不能只使用一组由每个用户键入的表,因为每个用户都需要在不影响其他用户的情况下更改模式的能力。
我特别担心这个的存储空间需求。该数据库目前有45个表,每个表占用大约30mb。如果20个用户中的每个用户一年内每天更改一次分支,并且版本控制解决方案要求保存表的完整副本,则需要30mb45个表20个分支*365天的历史记录=9855 gb的存储空间。我不想为这个数据库保留太多的存储空间。
我基本上只是在寻找一个版本控制系统,它支持模式更改,并且只保留每个唯一文件的一个副本,比如macos上的timemachine备份是如何工作的(如果您使用timemachine进行备份,然后只更改一个文件并再次备份,它会为未更改的文件创建一组sym链接,并且只将更改复制到备份驱动器。)
我有一个支持mysql的版本控制系统的列表,但是我很难找到关于它们是否制作了数据库的完整副本的信息,而不需要实际尝试每一个。以下是我找到的清单:
液化酶
飞道
fluentmigrator公司
ruby-on-rails迁移
dbv公司
dbgeni公司
斯基奇
三角洲

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题