PostgreSQL数据库快照版本管理工具
anybox.pg.odoo的Python项目详细描述
anybox.pg.odoo
这个工具主要管理当前数据库的版本快照, 模仿VCS工具(如init、commit、revert、log等)的通用工作流。 它最初是为快照odoo数据库而创建的,但很容易修改为 不可知论者。
内容
Install
这个工具在Python2.7和Python3.x上工作。 在virtualenv、buildout或 全系统。当前唯一的依赖项是psycopg2>;=2.5。
使用virtualenv的示例:
$ virtualenv sandbox && source sandbox/bin/activate $ pip install anybox.pg.odoo
Usage
首先用odb -h读取可用的命令。 您将获得可用的命令:
init Set the current db commit Save the current db in a new revision info Display the revision of the current db revert Drop the current db and clone from a previous revision log List all available revisions purge Destroy revisions tags List all tags tag Tag a specific revision
您应该首先使用odb init:
设置当前数据库$ odb init demo8 Now revision 1
然后您可以使用odb info:
$ odb info database: demo8 revision : 1 (parent: 0)
提交当前数据库以使用odb commit:
创建快照和新修订版$ odb commit Now revision 2 $ odb info database: demo8 revision : 2 (parent: 1) $ odb commit Now revision 3 $ odb commit Now revision 4
您可以使用odb revert:
$ odb revert Reverted to parent 3, now at revision 4
您也可以恢复到以前的任何版本:
$ odb revert 2 Reverted to parent 2, now at revision 4 $ odb info database: demo8 revision : 4 (parent: 2)
您可以将标记放在修订版上,还原为标记,并使用odb tag和odb tags删除标记:
$ odb tag v1 2 $ odb tag v2 3 $ odb tags v2 (demo8*3) v1 (demo8*2) $ odb revert v1 Reverted to parent 2, now at revision 4 $ odb tag -d v1
您可以使用odb log:
显示所有修订$ odb log demo8: revision: 4 parent: 2 demo8*3: revision: 3 parent: 2 tag: v2 demo8*2: revision: 2 parent: 1 demo8*1: revision: 1 parent: 0
然后您可以清除除标记以外的所有修订:
$ odb purge keeptags
或所有修订版:
$ odb purge all
How it works and pollutes
- 它使用postgresql的CREATE DATABASE FROM TEMPLATE功能
- 它当前将版本信息存储在ir_config_parameter表中 关于奥多(尽管这在未来会改变)。
- 它希望通过unix域连接到postgresql 允许当前用户创建和删除数据库的套接字。
- 它将当前数据库存储在~/.anybox.pg.odoo
what’s next? (todo list)
- 使用专用数据库来存储版本信息,而不是ir_config_parameter表
- 实施差异(恐惧)
- 改进数据库命名方案
Contribute
Mercurial存储库和bug跟踪器:https://bitbucket.org/anybox/anybox.pg.odoo
使用以下命令运行测试:
$ python setup.py test
Changelog
0.6 (2014-11-02)
- 修复了python 3中的错误
- 提交并还原后删除当前版本的标记和消息
0.5 (2014-10-19)
- 适用于Python3.1+
- 适用于Postgres9.1或更低版本
- odb purge keeptags:清除除标记之外的所有标记
- 实现的提交消息
0.4 (2014-10-19)
- 已实现odb log
- 已实现odb purge
- 已实现odb tag,并还原为标记
- 已实现odb tags
- 将版本重命名为修订版
- 将snapshot()重命名为commit()
0.3 (2014-10-16)
- 保持与当前数据库相同的数据库以使其正常工作
- 固定版本并从1开始
- 在恢复操作期间也要断开连接
- 去掉了不需要的尖端
0.2 (2014-10-15 after sleeping)
- 固定包装
- 修正了revert行为
- 允许无参数还原
- 改进的文档