版本控制您的数据库!
项目描述
DVC
用 Python 编写的数据库版本控制 (DVC) 工具。
更多信息
| GitHub | 码头工人中心 | 阅读文档 | 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 |
|---|
对其他数据库的支持将很快添加......
支持数据库指令格式
- 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。
用户界面
- 命令行界面
- 使用 Python
Typer库 制作- 入口点是
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 数据库连接
- 入口点是
- 使用 Python
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
database_version_control-0.6.2.tar.gz
(21.7 kB
查看哈希)