LAZR postgresql特定支持代码。
项目描述
版权所有 (c) 2011-2018, Canonical Ltd
本程序是自由软件:您可以按照自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它,版本3。
本程序按“希望有用”的原则提供,但没有任何保证;甚至不提供适销性或适用于特定用途的暗示保证。有关详细信息,请参阅GNU通用公共许可证。
您应该已经随本程序收到GNU通用公共许可证的一份副本。如果没有,请参阅 <https://gnu.ac.cn/licenses/>。GNU通用公共许可证版本3(请参阅LICENSE文件)。
lazr.postgresql 包含Launchpad用于PostgreSQL支持的多种辅助工具。其中最重要的是Slony意识数据库迁移功能。
依赖项
Python 2.7+
测试依赖项
subunit (http://pypi.python.org/pypi/python-subunit) (可选)
testtools (http://pypi.python.org/pypi/testtools)
van.pg (http://pypi.python.org/pypi/van.pg)
使用方法
数据库迁移
升级工具将数据迁移应用于PostgreSQL或Slony环境。
每个迁移是一个名为 patch-$major-$minor-$point-$type.sql 的SQL文件。主版本、次版本和点都是整数,它们提供了修补程序应用的序列。类型告诉迁移应用器迁移是否应该以正常事务方式应用,直接在集群的所有节点中应用事务,或直接在集群的所有节点外的事务中应用。这些是通过‘std’、‘direct’和‘concurrent’表示的。
如果修补程序应用在除‘标准’模式之外的任何模式下中断,可能需要进行手动清理(例如,因为某些节点上可能存在半构建的索引)。
例如,一个名为 patch-1-2-3-concurrent.sql 的文件将在非Slony环境中按以下方式应用
在主节点上打开一个事务,并将行 1-2-3 添加到已应用修补程序列表中。这可以防止其他迁移同时尝试。
然后执行修补程序文件的全部内容。
将更新1-2-3行的结束时间戳。
最后提交事务。
在Slony环境中,将发生以下情况
在主节点上打开一个事务,并将行 1-2-3 添加到已应用修补程序列表中。这可以防止其他迁移同时尝试。
在所有节点上,修补程序文件的全部内容将在事务外部分连接中执行。
将更新1-2-3行的结束时间戳。
最后提交事务。
除非提供 –all 参数,否则单个 upgrade.py 调用只会应用 std 或直接 + concurrent 修补程序。当提供 –all 参数时,它将循环直到所有修补程序都应用。
更多内容即将推出。
安装
在所有依赖项都可用的环境中运行 setup.py,或将工作目录添加到您的 PYTHONPATH。
开发
上游开发在 https://launchpad.net/lazr-postgresql 进行。要设置开发工作区,如果依赖项不可立即获得,您可以使用 ./bootstrap.py 创建 bin/buildout,然后使用 bin/py 获取一个具有依赖项的python解释器。
要运行测试,请使用您选择的运行器,测试套件是 lazr.postgresql.tests.test_suite。
例如
$ PYTHONPATH=src bin/py -m testtools.run lazr.postgresql.tests.test_suite
如果您有 testrepository,可以与它一起运行测试
$ testr run