摘要:可以處理定義的數據庫的升級生成可配置的升級腳本編輯文件來建立與數據庫實體之間的關聯改成和自己的數據庫相對應編輯來與建立關聯定義了數據庫與類之間的映射為了關聯與需要修改在定義數據庫表時我們需要繼承這時可以改成即可如果是用的庫可以改成處理升級在
alembic可以處理sqlalchemy定義的數據庫的升級.
1. 生成可配置的升級腳本 alembic init update. ├── alembic.ini └── update ├── env.py ├── env.pyc ├── README ├── script.py.mako └── versions2. 編輯alembic.ini文件來建立alembic與數據庫實體之間的關聯
sqlalchemy.url = driver://user:pass@localhost/dbname
改成和自己的數據庫engine相對應
3. 編輯env.py來與sqlalchemy建立關聯sqlalchemy定義了數據庫與類之間的映射, 為了關聯alembic與sqlalchemy, 需要修改target_metadata = None
在定義數據庫表時, 我們需要繼承Base = declarative_base(), 這時可以改成target_metadata = Base.metadata即可. 如果是用的elixir庫, 可以改成target_metadata = elixir.metadata
4. alembic處理升級alembic在處理數據庫升級時, 需要知道當前的數據庫更新到了哪個升級腳本, 在數據庫中會有alembic_version記錄這一項, 如果沒有的話, 需要運行alembic history來查看當前的腳本之間的前后繼關系
c13aac80dc0d -> a6bd6b66dc68 (head), v1.0.6 8af8ba526412 -> c13aac80dc0d, 12_27 c07041b991dd -> 8af8ba526412, v1.0.4 d9e1223a5cc6 -> c07041b991dd, 002_update_for_12.2-> d9e1223a5cc6, v1.0.2
如果我確定我當前的數據庫是由c13aac80dc0d對應的腳本升級上來的, 那么執行alembic stamp c13aac80dc0d來更新數據庫, 表明當前數據庫對應到了這個腳本, 此時可以執行alembic current來查看確實是這個
版本.
之后, 可以基于當前的數據庫與我們已經定義好的表之間自動生成升級腳本alembic revision --autogenerate -m "create update files", 可能還需要改一些語句, 或者數據庫表之間的關系的調整還涉及到數據>記錄的內容更改與填充.
5. 升降級命令alembic upgrade +1 alembic downgrade -16. 建議
不要自己去寫python或者Sql腳本創建數據庫實體, 建議從一開始就用alembic操作數據庫. 就是說在項目里面跟數據庫相關的操作, 只需要定義好了orm, 之后代碼里面做增刪查改就夠了. 其它的創建數據庫, 創建表
, 更改表結構的操作都由alembic來接管.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/38348.html
摘要:當使用到后者這類微型框架時,根據業務場景不同,如果需要處理模型的建立升級和遷移的問題,可以考慮下接下來要介紹的和。這時候檢查數據庫,可以發現生成了張表,升級工作就完成了。而我在使用的實際項目中是操作的原生,異步類型的配合使用留待以后探究。 背景 Python的世界里有許多web框架:比如大而全的 Django, 提供了模型定義遷移,到路由處理,再到視圖的渲染等整套功能;比如小巧靈活的F...
摘要:是的一個數據庫工具,提供了強大的對象模型間的轉換,可以滿足絕大多數數據庫操作的需求,并且支持多種數據庫引擎,,等,在這里記錄基本用法和學習筆記一安裝通過安裝二使用首先是連接到數據庫,支持多個數據庫引擎,不同的數據庫引擎連接字符串不一樣,常用 SQLAlchemy是python的一個數據庫ORM工具,提供了強大的對象模型間的轉換,可以滿足絕大多數數據庫操作的需求,并且支持多種數據庫引擎(...
摘要:在實際項目中,這么做肯定是不行的實際項目中不會使用內存數據庫,這種數據庫一般只是在單元測試中使用。接下來,我們將會了解中單元測試的相關知識。 在上一篇文章,我們介紹了SQLAlchemy的基本概念,也介紹了基本的使用流程。本文我們結合webdemo這個項目來介紹如何在項目中使用SQLAlchemy。另外,我們還會介紹數據庫版本管理的概念和實踐,這也是OpenStack每個項目都需要做的...
閱讀 1492·2021-11-24 11:16
閱讀 2697·2021-07-28 12:32
閱讀 2308·2019-08-30 11:22
閱讀 1445·2019-08-30 11:01
閱讀 604·2019-08-29 16:24
閱讀 3552·2019-08-29 12:52
閱讀 1632·2019-08-29 12:15
閱讀 1338·2019-08-29 11:18