【发布时间】:2013-01-16 05:49:23
【问题描述】:
请允许我说明我的情况。
我有一个应用程序,我可以在其中处理一些存储在数据库中的数据。例如:游戏应用程序。
1) 现在,假设我的应用程序运行在版本 5。在玩我的应用程序的任何时候,如果我觉得当前添加的功能(功能 5)不合适,我想切换回以前的应用程序的版本(例如,实现了功能 1、2、3 和 4 的版本 4)。
2) 这意味着我需要在数据库级别实现版本控制系统,以便我可以使用以前版本(版本 4)所需的数据运行我的应用程序。 简单来说,我不想要我最近添加到生产数据库中的任何数据(与功能 5 相关),以便我可以在版本 4 上运行我的应用程序。
3)后来,经过更多的开发,当我觉得功能 5 稳定时,我想签入我的应用程序的版本 6 并使其上线。
4) 版本 1、2、3 和 4、5 就像检查点:这是我决定我的应用可以上线的阶段。我希望能够在版本之间切换并在需要时使它们生效。
5) 另外,澄清一下:签入的版本不能被修改。这意味着一旦设置了检查点,例如版本 3,就无法对该版本进行任何更改。
请说明在数据库级别实施此版本控制系统的适当方法。我想到了一些选项,比如使用 hive 在版本点备份数据,并在 hive 中存储尽可能多的应用程序数据版本。我确实认为这会起作用,但它肯定看起来不像笨蛋。我想知道的是 - 我所说的方法是一个足够好的选择,还是有一些开源应用程序可以让我立即对数据库中的数据进行版本控制?任何其他建议或想法都非常欢迎和赞赏。
建议实施:
根据@Sameera 的回答,我想做什么。
1) 创建一个新版本表并将其与应用程序表相关联。
2) 将以前与应用程序表相关的其他表关联到版本表。
3) 每个版本表都将有一个状态属性 0、1 或 2:截至目前,1 表示 dev,2 表示 live,0 表示 dead。
【问题讨论】:
标签: mysql ruby-on-rails database version-control version