为asyncpg提供的简单迁移系统
项目描述
asyncpg-trek: 为asyncpg提供的简单迁移
一个用于管理迁移的简单库。
目标受众
我自己。但如果您使用[asyncpg]并且更喜欢以原始SQL(即您不使用SQLAlchemy/Alembic)编写迁移,那么您也会。
特性
- 异步:迁移通常不需要异步,但您可以从使用与应用程序相同的数据库驱动程序中受益(仅支持[asyncpg])。
- 简单:您只需在选择的文件夹中创建
.sql
或Python文件,并将此工具指向该文件夹。无需与新的API斗争来编写迁移。 - 以API为中心:没有CLI需要了解,您自己决定如何调用迁移,您自己控制数据库连接的创建。这使得在测试中运行迁移、将其包装在CLI中或通过公开的HTTP端点运行迁移变得非常简单。
- 声明式:只需指定您想要的版本,库就会确定是否需要升级、降级或无需操作。
示例用法
from pathlib import Path
import asyncpg
from asyncpg_trek import plan, execute, Direction
from asyncpg_trek.asyncpg import AsyncpgBackend
MIGRATIONS_DIR = Path(__file__).parent / "migrations"
async def migrate(
conn: asyncpg.Connection,
target_revision: str,
) -> None:
backend = AsyncpgBackend(conn)
async with backend.connect() as conn:
planned = await plan(conn, backend, MIGRATIONS_DIR, target_revision=target_revision, direction=Direction.up)
await execute(conn, backend, planned)
您可以将此作为一个Docker镜像的入口点,API中的管理端点或测试中的辅助函数(或以上所有)。如何运行迁移取决于您系统的复杂度。例如,对于简单的系统,可能很容易根据硬编码的修订版本在应用启动时运行迁移。对于更复杂的系统,您可能希望手动运行迁移或通过管理API运行。
在GitHub上查看此版本:v0.4.0
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
asyncpg_trek-0.4.0.tar.gz (7.8 kB 查看哈希值)
构建分布
asyncpg_trek-0.4.0-py3-none-any.whl (9.5 kB 查看哈希值)
关闭
asyncpg_trek-0.4.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3a04c096ae896913d369329a96253b309bf095b1d4cd029ecad43c19dc5cf4da |
|
MD5 | 108859157e705cca403506cc280fc1b6 |
|
BLAKE2b-256 | 15df3dbad74b63ca14a47083849842a5ad6964a2b78d91ae09ae28e0f35f4971 |
关闭
asyncpg_trek-0.4.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 31348799d67704ffd0e4c0a0ab419b0687449271796214ca7a08c5e1ef68925e |
|
MD5 | a4cba0eff928f3ee453d581ce99f9891 |
|
BLAKE2b-256 | b081d79224c679505e5224f921aaec09a6d667959b04fb35cd94d942e032c638 |