Skip to main content

版本控制您的数据库!

项目描述

DVC

立即对您的数据库进行版本控制!

用 Python 编写的数据库版本控制 (DVC) 工具。

GitHub 阅读文档(版本) GitHub 工作流状态 派皮 PyPI - Python 版本 GitHub 提交活动 GitHub 上次提交

GitHub 关注者 YouTube 频道观看次数

更多信息

GitHub 码头工人中心 阅读文档 YouTube
Github Dockerhub 阅读文档 YouTube

主要特征

命令行界面

命令行界面

丰富的数据库元数据

丰富的数据库元数据

数据库升级和降级

丰富的数据库元数据

灵活的配置格式

  • 通过环境变量

通过环境变量配置

  • 通过配置文件

通过环境变量配置

部署

作为命令行工具

github 版本上的可执行文件

https://github.com/kenho811/Python_Database_Version_Control/releases

  • 发布页面提供以下三个操作系统上的可执行文件。
    • Mac(最新)
    • Linux 乌布努图(最新)
    • 窗户(最新)

如果您碰巧使用上面列出的操作系统之一,您可以直接下载可执行文件并使用它而无需安装 python!

PyPI 上的 Python 库

https://pypi.org/project/database-version-control/

  • 如果你安装了 python 和 pip,你可以从 PyPI 下载命令行工具!
# Install the library from PyPi
pip install database-version-control

# To get more instructions of the commandline tool, run the below in the terminal
dvc --help

作为微服务

Dockerhub 上的图片

https://hub.docker.com/repository/docker/kenho811/database-version-control#

  • 运行以下命令以查看它的运行情况
# Clone the repo and checkout release branch
git clone -b release git@github.com:kenho811/Python_Database_Version_Control.git 

# cd to the repository
cd Python_Database_Version_Control/docker_compose_demo

# Fnd the docker-compose.yml and run 
docker compose up

# Using psql as client, access the postgres DB and see the result
(URL: postgres://test:test@localhost:5433/test)
PGPASSWORD=test psql -U test -d test -h localhost -p 5433

# Check out docker-compose.yml file for usage as a microservice

开发-测试-发布工作流程

# Git clone the repo and checkout master
git clone -b master git@github.com:kenho811/Python_Database_Version_Control.git 

# create a feature branch
git checkout -b feature/{code_change_theme}

# Pip install dependencies
pip install with `pip install ".[dev]"`

# Enable local githooks
git config --local core.hooksPath .githooks/

# Development

# Write unit + integration tests

# Run pytest
pytest

# Generate Documentation locally. ISLOCAL=1 removes local dependencies.
cd docs
ISLOCAL=1 make clean html

# Open PR against master

# (By maintainer) For a new release, cut a new release branch with version number (match app version number). 
git checkout -b release/{app_version_number}

CI约定

  • 以下是目前通过 Github Action 触发的
分支 测试 DockerHub 标记 Dockerhub 自述文件 PyPI 版本 阅读文档版本
掌握 是的 最新的 是的 不适用 最新的
释放/{major.minor} 是的 不适用 不适用 不适用 不适用
特征 是的 不适用 不适用 功能文档
标签 DockerHub 标记 Dockerhub 自述文件 PyPI 版本 阅读文档版本
发布/{major.minor.patch} 发布-{major.minor.patch} {major.minor.patch} 发布-{major.minor.patch}

技术细节

支持数据库

Postgres
Postgres

对其他数据库的支持将很快添加......

支持数据库指令格式

  • SQL 文件

SQL 文件命名约定

  • 考虑所有 SQL 文件revision files
  • 他们必须遵循模式RV[0-9]*__.*\.(upgrade|downgrade)\.sql。言下之意就是
    • 它们以前缀开头RV
    • 之后RV,它遵循任意修订号(例如 RV1、RV2、RV3 等)
    • 之后RV(arbitrary_revision_number),它遵循双下划线和任意数量的字符。之后的所有内容都__描述了 SQL 文件的作用。
    • 之后,它跟在一个点和一个或RV(arbitrary_revision_number)__(description)的字符组之后。应用时,升级修订文件会将数据库版本向上移动 1,而降级修订文件会将数据库版本向下移动 1。upgradedowngrade
    • 之后RV(arbitrary_revision_number)__(description).(upgrade/downgrade),它跟随一个点和字符组sql
    • 全面的,RV(arbitrary_revision_number)__(description).(upgrade/downgrade).sql
  • 示例 SQL 修订文件
    • RV1__create_scm_company_secrets_and_tbl_earnings.upgrade.sql
    • RV1__delete_scm_company_secrets_cascade.downgrade.sql
    • RV2__alter_scm_company_secrets_tbl_earnings_updated_at_add_index.upgrade.sql
    • RV2__alter_scm_company_secrets_tbl_earnings_updated_at_remove_index.downgrade.sql

数据库元数据

  • 将创建架构 dvc
    • 将创建表 dvc.database_revision_history。
    • 将创建表 dvc.database_version_history。

用户界面

  • 命令行界面
    • 使用 PythonTyper库 制作
      • 入口点是dvc
      • 示例命令是
        • dvc version--> 显示版本
        • dvc cfg--> 配置相关命令
          • dvc cfg init--> 生成配置文件
        • dvc db--> 数据库相关命令
          • dvc db init--> 使用元数据模式和表初始化数据库
          • dvc db upgrade---> 应用数据库升级修订并标记到元数据表
            • dvc db upgrade --mark-only---> 只标记到元数据表
          • dvc db downgrade---> 应用数据库降级修订
            • dvc db downgrade --mark-only---> 只标记到元数据表
          • dvc db current---> 当前数据库版本
          • dvc db ping--> Ping 数据库连接

项目详情


下载文件

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

源分布

database_version_control-0.6.2.tar.gz (21.7 kB 查看哈希

已上传 source