python使用alembic實現數據庫管理
環境準備
- 安裝依賴:
pip install sqlalchemy alembic
- 項目結構
my_project/
├── models.py # 定義數據模型
└── alembic/ # 遷移腳本目錄(自動生成)
使用步驟:
1. 初始化Alembic環境
在終端切換到項目目錄下,運行以下命令初始化
alembic init alembic
運行后的文件結構:
alembic/
├── versions/ # 存放遷移腳本
├── env.py # 遷移環境配置
└── script.py.mako # 遷移腳本模板
alembic.ini # 主配置文件
models.py
2. 配置數據庫連接
修改alembic.ini文件,設置數據庫連接,找到sqlalchemy.url進行配置:
# 模板:
sqlalchemy.url = mysql+驅動名稱://用戶名:密碼@主機地址:端口/數據庫名?charset=utf8mb4 # 使用mysql示例
3. 定義數據模型
在models.py中編寫sqlalchemy模型:
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_baseBase = declarative_base()class User(Base):__tablename__ = "users"id = Column(Integer, primary_key=True)name = Column(String(50))email = Column(String(100))
4.修改alembic/env.py 引入模型
找到alembic/env.py文件,引入models.py文件,具體修改如下:
修改前:
target_metadata = None
修改后:
from models import Base # 從你的模型文件導入 Base
target_metadata = Base.metadata
5. 生成遷移腳本
- 生成遷移腳本
# 首次使用
alembic revision -m "create users table"
# 非首次使用
alembic revision --autogenerate -m "create users table"
6. 數據庫遷移
運行遷移更新數據庫:
alembic upgrade head
7. 回滾遷移
回滾到上一個版本:
alembic downgrade -1
指定版本號回滾:
alembic downgrade <version_id>
8.常見命令匯總:
命令 | 作用 |
---|---|
alembic init alembic | 初始化遷移環境 |
alembic revision --autogenerate -m "msg" | 生成自動遷移腳本 |
alembic downgrade -1 | 回滾到上一個版本 |
alembic upgrade head | 應用最新遷移 |
alembic history | 查看遷移歷史 |