Home

Awesome

docker-fastapi-demo

Fastapi 脚手架

alembic 数据库迁移

一个迁移过程基本如下:

# 1/ 初始化环境 
alembic init migrations 

# 2/ 修改alembic.ini参数
# alembic.ini 
sqlalchemy.url = mysql://root:Root1024@localhost/fastapi

# migrations/env.py
import sys 
sys.path = ['', '..'] + sys.path[1:]
from service.models import Base

...
target_metadata = Base.metadata  # 一个app model 
target_metadata = [Base.metadata, Base2.metadata]  # 多个app model

# 3/ 生成迁移脚本
alembic revision --autogenerate -m "init"

# 4/ 应用迁移脚本到数据库
alembic upgrade head 

alembic 还支持数据库的回滚、历史版本的查看等操作。更多内容,可参考:https://alembic.sqlalchemy.org/en/latest/index.html。

编译启动

docker build -t fastapi-mysql:v1.0 .

docker run -p 80:80 -d -e DB_CONNECTION="mysql://root:Root1024@xxxx/fastapi" fastapi-mysql:v1.0 ./start.sh