資料庫進行版本管理

2021-06-21 11:29:41 字數 1303 閱讀 8196

我們在編寫資料庫應用軟體時,需要考慮這樣的問題:因為我們開發的軟體可能會安裝在很多使用者的手機上,如果應用使

用到了sqlite

資料庫,我們必須在使用者初次使用軟體時建立出應用使用到的資料庫表結構及新增一些初始化記錄,另

外在軟體公升級的時候,也需要對資料表結構進行更新。那麼,我們如何才能實現在使用者初次使用或公升級軟體時自動在

使用者的手機上建立出應用需要的資料庫表呢?總不能讓我們在每個需要安裝此軟體的手機上通過手工方式建立資料庫

表吧?因為這種需求是每個資料庫應用都要面臨的,所以在

android

系統,為我們提供了乙個名為

sqliteopenhelper

的抽象類,必須繼承它才能使用,它是通過對資料庫版本進行管理來實現前面提出的需求。

為了實現對資料庫版本進行管理,

sqliteopenhelper

類提供了兩個重要的方法,分別是

oncreate(sqlitedatabase db)

和onupgrade(sqlitedatabase db, int oldversion, int newversion)

,前者用於初次使用軟體時生成資料庫表,後者用

於公升級軟體時更新資料庫表結構

。當呼叫

sqliteopenhelper

的getwritabledatabase()

或者getreadabledatabase()

方法獲取用於運算元據庫的

sqlitedatabase

例項的時候,如果資料庫不存在,

android

系統會自動生成乙個資料庫,

接著呼叫

oncreate()

方法,oncreate()

方法在初次生成資料庫時才會被呼叫,在

oncreate()

方法裡可以生成資料庫表

結構及新增一些應用使用到的初始化資料

。onupgrade()

方法在資料庫的版本發生變化時會被呼叫,一般在軟體公升級

時才需改變版本號

,而資料庫的版本是由程式設計師控制的,假設資料庫現在的版本是

1,由於業務的變更,修改了資料

庫表結構,這時候就需要公升級軟體,公升級軟體時希望更新使用者手機裡的資料庫表結構,為了實現這一目的,可以把原

來的資料庫版本設定為

2,並且在

onupgrade()

方法裡面實現表結構的更新。當軟體的版本公升級次數比較多,這時在

onupgrade()

方法裡面可以根據原版號和目標版

本號進行判斷,然後作出相應的表結構及資料更新。

使用alembic進行資料庫版本管理

alembic是sqlalchemy的作者開發的。用來做omr模型與資料庫的遷移與對映。alembic使用方式跟git有點了類似,表現在兩個方面,第乙個,alembic的所有命令都是以alembic開頭 第二,alembic的遷移檔案也是通過版本進行控制的。首先,通過pip install alem...

資料庫版本管理

資料庫版本管理包括這麼幾個方面 1 好的資料庫版本管理工具的支援 2 不依賴於具體rdms資料庫的自己的資料字典 3 可以檢視到當前資料庫scheme的版本,版本好應該是經過加密的,不能手動更改的 其實最簡單的資料庫版本管理工具可以這麼做 1 指令碼結構 a 基礎版本a 基本版本a上上修訂記錄 b ...

資料庫版本管理

資料庫版本管理包括這麼幾個方面 1 好的資料庫版本管理工具的支援 2 不依賴於具體rdms資料庫的自己的資料字典 3 可以檢視到當前資料庫scheme的版本,版本好應該是經過加密的,不能手動更改的 其實最簡單的資料庫版本管理工具可以這麼做 1 指令碼結構 a 基礎版本a 基本版本a上上修訂記錄 b ...