RDB模式管理的配方
项目描述
这是一个zc.buildout配方,有助于管理关系型数据库上的模式更新。
目前仅支持PostgreSQL。
定义要管理的数据库
必须在外部创建(CREATEDB)一个要管理的数据库。该配方仅负责初始化现有数据库和随后升级模式。
部分定义看起来像
[managed_db] recipe = gocept.rdbmanagement dbname = mydatabase eggs = projectegg schema = projectegg.schemadir host = localhost user = username password = apassword
其中
- dbname
是与PostgreSQL数据库交互的名称
- eggs
这是一个在查找方案目录资源路径之前应激活的鸡蛋需求列表
- 方案
是setuptools资源路径,它是一个管理的方案目录
管理方案目录
方案目录包含一组用于管理数据库方案的SQL和Python文件。一个典型的目录如下所示
$ ls schemadir __init__.py init.sql precondition3.py update1.sql update2.sql update3.sql
注意:管理的方案目录必须是Python包。
init.sql
从空数据库开始创建方案。
在init.sql之后,当前生成将设置为从更新脚本中可用的最高生成号。因此,init.sql始终创建当前数据库方案,不会运行任何更新。
updateX.sql
更新脚本必须以BEGIN语句开始,以COMMIT语句结束。
更新脚本X将在生成X-1的数据库上运行。
preconditionX.py
脚本必须包含一个名为precondition的函数,该函数接受一个参数,即对数据库的DB-API2连接。
预条件脚本X将在生成X-1的数据库上运行。
预条件脚本X必须引发异常,以指示数据库不得更新到生成X。
更改
1.1 (2020-04-15)
支持Python 3。
1.0 (2015-07-06)
实现使用密码访问数据库的能力,要求至少PostgreSQL 9.0支持此功能。
至少需要Python 2.7。
0.1.2
允许使用比精确的psycopg2==2.0.6新版本的版本
0.1.1
第一个公共版本
项目详情
下载文件
下载适合您平台的自定义文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
gocept.rdbmanagement-1.1.tar.gz (5.2 kB 查看哈希值)
构建分布
关闭
哈希值 for gocept.rdbmanagement-1.1-py2.py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1e27bb745e3d9d10e60605b9425d9778d64477ff2fd820fe96c583adc71976f0 |
|
MD5 | 90d4f75a5b426f180d99fed3da6b0db8 |
|
BLAKE2b-256 | 380cae0f0e2c6b66514ef3658d20117f7c88e1f8b98d3e6b4d53396e39c48aa6 |