<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      alembic使用指南

      一、alembic是什么?

      Alembic 是一個用于 Python 數據庫遷移和版本控制的工具。它與 SQLAlchemy(一個流行的 Python ORM 庫)緊密集成,共同為 Python 應用程序提供數據庫管理和遷移支持。

      python使用mysql時常用SQLAlchemy+Alembic進行ORM和數據庫遷移。

      二、如何集成到項目中?

      1.安裝

      uv install alembic==1.13.0 or pip install alembic==1.13.0

      2.進入項目根目錄 初始化Alembic

      2.1 終端執行 alembic init alembic init 初始化命令 alembic 環境名稱

      項目中多出alembic目錄

      • alembic.ini: Alembic 的主配置文件。
      • env.py: Alembic 運行時環境的 Python 腳本,用于配置 SQLAlchemy 引擎和元數據。
      • script.py.mako: 遷移腳本的模板文件。
      • versions/: 存放所有遷移腳本的目錄。

      圖片

      2.2 配置 alembic.ini(指定數據庫連接字符串)

      通過環境變量讀取 不要硬編碼

      圖片

      2.3 配置 env.py (告訴 Alembic 你的 SQLAlchemy 模型在哪里,以便它能夠進行自動檢測。)

      找到 target_metadata 變量,將其指向你的 SQLAlchemy Base.metadata 對象。

      圖片

      解釋一下:Base對象是所有模型類的基類,你創建的所有模型都要繼承Base

      from sqlalchemy.ext.declarative import declarative_base
      Base = declarative_base()
      

      創建Base雖然創建在哪都可以,最好放在數據庫連接層,結構清晰,目錄結構如下

      圖片

      2.4 創建SQLAlchemy模型

      所有模型集成Base對象,這樣后面執行遷移就會自動檢測所有更改的字段

      圖片

      3.生成第一個遷移腳本

      要提前安裝 pip install pymysql

      3.1 自動生成

      終端輸入命令: alembic revision --autogenerate -m "Create initial tables"

      • alembic revision: 創建一個新的數據庫遷移腳本。
      • --autogenerate: 自動檢測你的 SQLAlchemy 模型與數據庫當前狀態的差異,并生成相應的升級/降級 SQL 語句。
      • -m "Create initial tables": 為這個遷移腳本添加一個描述性消息,方便你理解其目的。

      圖片

      圖片

      檢查生成的遷移文件sql命令是否正常 不正常就手動或者找ai修復下

      3.2 手動生成(推薦)

      第一次創建遷移文件 上一次版本號為None
      后續按照現有的文件格式創建新的遷移即可,版本號使用基于時間戳的uuid即可,上一個版本的版本號記得填。
      upgrade:對應新的sql操作
      downgrade:操作失敗回滾
      有時候alembic對于修改和刪除的字段檢測不出來,最好就手寫遷移腳本

      4.執行遷移

      終端命令 alembic upgrade head 檢查庫中表是否存在
      圖片

      邏輯流程圖

      1. 初始化 Alembic 項目
      2. 配置 alembic.ini (數據庫連接) & env.py (加載 ORM 模型, 建立連接)
      3. 定義 SQLAlchemy Base 和 ORM 模型
      4. ORM 模型發生變化?
        ├─ 是 (模型與數據庫結構不一致)
        │ ↓
        │ 5. 生成遷移文件 (alembic revision --autogenerate)
        │ (Alembic 比較 ORM 模型定義 與 MySQL 數據庫實際結構)
        │ ↓
        │ 6. 人工檢查并修改遷移文件 (確保 upgrade/downgrade 邏輯正確)
        │ ↓
        │ 7. 執行遷移 (alembic upgrade head)
        │ (Alembic 讀取遷移文件, 更新 MySQL 數據庫結構, 并更新 alembic_version 表)
        │ ↓
        └─ 否 (模型與數據庫結構一致)

        (無需遷移)
      5. 應用程序啟動 & 與更新后的 MySQL 數據庫交互

      三、常用的命令?

      alembic revision --autogenerate -m "描述" 自動生成遷移腳本
      alembic upgrade head  執行最新遷移
      alembic current 查看當前數據庫遷移腳本
      alembic stamp <revision_id> 將數據庫標記為指定版本(不執行遷移)
      alembic history 查看遷移歷史
      

      一般創建完遷移腳本后 alembic upgrade head 直接執行遷移即可。

      posted @ 2025-11-03 10:32  yaoty  閱讀(53)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 年辖:市辖区| 亚洲高清成人av在线| 男女性高爱潮免费网站| 亚洲欧美激情在线一区| 亚洲精品色无码AV试看| 国内极度色诱视频网站| 熟女激情乱亚洲国产一区| 少妇高潮灌满白浆毛片免费看 | 国产精品人伦一区二区三| 国产午夜鲁丝片av无码| 日韩人妻无码精品专区综合网| 超碰伊人久久大香线蕉综合| 最新中文乱码字字幕在线| 剑阁县| Y111111国产精品久久久| 亚洲国产成人久久精品APP| 中文字幕制服国产精品| 久久精品国产男包| 麻豆tv入口在线看| 亚洲熟妇自偷自拍另欧美| 无码高潮爽到爆的喷水视频 | 国产偷国产偷亚洲清高| 国产福利社区一区二区| 一区二区三区久久精品国产| 国产专区一va亚洲v天堂| 日韩精品成人区中文字幕| 国产高清自产拍av在线| 亚洲中文字幕无码久久精品1| 国产自产对白一区| 午夜精品亚洲一区二区三区| 精品 日韩 国产 欧美 视频| 亚洲欧美日韩在线不卡| 亚洲成人av免费一区| 日韩欧美猛交xxxxx无码| 国产视频一区二区三区四区视频 | 国语对白做受xxxxx在线中国| 91色老久久精品偷偷蜜臀| 国产午夜亚洲精品不卡下载| 精品无码国产自产拍在线观看蜜| 亚洲精品国产一区二区三区在线观看| 成人午夜福利视频一区二区|