跳转到主要内容

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 查看哈希值)

上传时间:

构建分布

gocept.rdbmanagement-1.1-py2.py3-none-any.whl (5.4 kB 查看哈希值)

上传时间: Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面