跳转到主要内容

管理迁移的另一种方法:数据库作为服务

项目描述

https://badge.fury.io/py/django-north.png https://travis-ci.org/peopledoc/django-north.png?branch=master https://readthedocs.org/projects/django-north/badge/ https://img.shields.io/codecov/c/github/peopledoc/django-north/master.svg

Django库,用于管理和执行手写的PostgreSQL迁移。

让您的数据库管理员定义数据库模式,并提供蓝/绿迁移文件。丢弃Django原生迁移,并在所有地方使用数据库管理员的迁移。

需求

  • 仅支持Postgresql

  • Django v1.11, v2.0, v2.1, v2.2

  • 在Python 3.6, 3.7或3.8下运行

文档

完整文档位于https://django-north.readthedocs.org

快速入门

安装Django North

pip install django-north

在您的settings.py

INSTALLED_APPS = [
    # ...
    "django_north",
]

NORTH_MANAGE_DB = True
NORTH_MIGRATIONS_ROOT = '/path/to/sql/migrations/'
NORTH_TARGET_VERSION = '1.42'

运行测试

您需要一个可用的Postgresql数据库来测试项目。例如

source <YOURVIRTUALENV>/bin/activate
export DATABASE_URL=postgres://USER:PASSWORD@HOST:PORT/NAME
(myenv) $ pip install -r requirements_test.txt

为特定版本运行测试

(myenv) $ ./runtest

为所有版本运行测试(如果全局安装了tox,则不需要虚拟环境)

$ tox

使用项目

许多操作在Makefile中有文档说明。更多信息,请使用

$ make help

致谢

渲染此包中使用的工具

历史

0.3.2 (2022-02-07)

  • 添加Django 3兼容性

  • 添加Github动作

  • 修复设置初始化

  • 将pytest_django版本固定以解决已知的multidb问题

  • 添加postgres docker容器

  • 将psycopg2版本固定以修复因类型不兼容导致的utc问题

0.3.1 (2020-07-24)

  • 修复runserver中的septentrion调用

  • 升级到septentrion 0.6.1

0.3.0 (2020-07-24)

  • 删除设置“NORTH_DISCARD_ALL”

  • 添加用于septentrion设置的函数

  • 修复分类器

  • 移除应用迁移的内部逻辑,改用septentrion。

0.2.6 (2019-10-25)

  • 添加对Django 2.2的支持

  • NORTH_AFTER_SCHEMA_FILESNORTH_BEFORE_SCHEMA_FILES现在可以接受glob字符串。

0.2.5 (2019-01-22)

  • 添加对Django 2.1 & Python 3.7的支持

  • 添加设置NORTH_AFTER_SCHEMA_FILES用于主模式之后的模式文件。

  • 添加设置NORTH_BEFORE_SCHEMA_FILES,以替换NORTH_ADDITIONAL_SCHEMA_FILES

  • 弃用设置NORTH_ADDITIONAL_SCHEMA_FILES

0.2.4 (2018-09-12)

  • 使用–database选项在migrate命令中确定使用哪个数据库(#35)

0.2.3 (2018-06-15)

  • 添加对Django 2.0的支持(#31)

  • 在每个脚本的末尾添加“DISCARD ALL”命令。它添加了一个新的设置变量:NORTH_DISCARD_ALL(#33)

0.2.2 (2018-02-01)

  • 刷新命令:不要刷新迁移表。

0.2.1 (2018-01-29)

  • VACUUM添加到默认设置NORTH_NON_TRANSACTIONAL_KEYWORDS

  • 添加设置NORTH_SCHEMA_VERSION以强制使用schema初始化数据库。

0.2.0 (2017-10-16)

  • 回滚sqlall命令。

  • 为SimpleBlock清理sql语句。

0.1.8 (2017-09-20)

  • 如果不在“manual”目录中存储,检测手动文件。

  • 修复SimpleBlock的unicode错误

0.1.7 (2017-09-06)

  • 修复get_applied_versions结果的排序。

0.1.6 (2017-09-05)

  • 为Django 1.11添加测试。

0.1.5 (2017-05-24)

  • 修复Django 1.10的showfixtures命令。

0.1.4 (2017-05-10)

  • 如果固定不存在,则不会失败。使用最接近的固定用于数据库初始化和刷新命令。

  • 添加对python3的支持。

0.1.3 (2017-04-18)

  • 如果sql文件包含“ALTER TYPE”指令,则使用Block。添加设置以自定义要运行的文件。

0.1.2 (2017-04-13)

  • 如果sql文件包含CONCURRENTLY指令,则使用Block。

0.1.1 (2017-04-11)

  • 添加配置当前版本检测器的可能性。

0.1.0 (2017-03-28)

  • 首次发布在PyPI上。

项目详情


下载文件

下载适用于您的平台文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

django-north-0.3.2.tar.gz (17.1 kB 查看哈希值)

上传时间

构建分发

django_north-0.3.2-py2.py3-none-any.whl (17.9 kB 查看哈希值)

上传时间 Python 2 Python 3