表結構發布流程化可保障您在自助變更表結構的同時,滿足企業的設計規范、不同數據庫環境之間相關表結構的一致性,大大提升生產發布的成功率。本文以自定義結構設計流程為例為您介紹規范、安全的表結構發布流程,流程節點包括設計結構(Develop,簡稱Dev)、測試(Test)、生產發布(Product)。
背景信息
結構設計功能 | 說明 |
保障生產發布的成功率 | 在發布新的表結構至生產環境之前,將依照研發流程對表結構在各個節點進行驗證,以避免未經過驗證的腳本直接發布到生產環境而導致發布失敗,保障生產發布的成功率。 |
保障環境結構的一致性 | 系統會依據研發流程對每個數據庫環境進行結構變更,以避免因部分環境未執行而導致的測試延誤及項目整體發版進展延誤等。 |
保障數據結構的規范性 | 結構設計的研發規范涵蓋新建表、修改表字段、修改表索引等近40條標準,以便研發人員自助設計符合企業研發規范的表結構,可以有效避免因不符合規范的結構發布上線而引發的生產故障。同時,該功能可減少運維人員檢查規范的人員投入,并提升研發效率,從而有效支撐快速迭代和發布工作。更多信息,請參見表結構設計規范。 |
方案概覽
自定義研發流程(可選):系統默認的研發流程為設計結構(Dev)> 生產發布(Product)。您可以自定義新的研發流程以滿足業務需求。
設置數據庫實例的安全規則(可選):為數據庫實例關聯安全規則(包含自定義研發流程)。
數據庫結構設計:提交結構設計工單,保障多套數據庫之間相關表結構的一致性、生產發布的成功率。
本示例準備的測試環境
創建三個RDS MySQL數據庫實例,并在對應實例下創建賬號和數據庫。創建操作,請參見快速創建RDS MySQL實例。
本示例中實例名稱分別為Schema_Design-dev、Schema_Design-test、Schema_Design-product。
本示例中數據庫名稱分別為dev_database、test_database、product_database。
使用阿里云主賬號(有管理員或DBA權限)將創建的三個數據庫實例錄入至DMS中,并將實例的管控模式都設置為安全協同,將數據庫環境類型分別設置為開發(Dev)、測試(Test)、生產(Product)。更多信息,請參見云數據庫錄入。
數據庫實例與結構設計各節點的對應關系
1. 自定義研發流程規則
以下步驟將介紹新建安全規則并配置表結構設計的步驟,研發流程為設計結構(Dev)、測試(Test)、生產發布(Product)。
1.1 登錄DMS并進入安全規則頁面
登錄數據管理DMS 5.0。
單擊控制臺左上角的圖標,選擇
。
若您使用的是非極簡模式的控制臺,在頂部菜單欄中,選擇
。1.2 新建安全規則(可選)
在安全規則頁面,單擊左上角的新增規則集按鈕,新增一個規則集。本示例以創建SD-DT為例。
成功創建安全規則后,DMS將自動進入該規則的詳情頁面。
1.3 自定義研發流程
在安全規則中配置研發流程,以明確表結構設計的步驟及每個步驟允許的操作。
(可選)單擊安全規則右側的編輯,進入安全規則詳情頁面。
說明如果待編輯的安全規則是新創建的,可跳過該步驟。
在安全規則詳情頁面左側的導航欄中,單擊結構設計。
在結構設計頁簽中,單擊研發流程右側操作列中的編輯。
將第二條節點名稱改為
測試
,將庫環境改為test
。新增第三條節點,將第三條節點名稱改為
生產發布
,將庫環境改為product
,同時將該節點設置為錨點。說明錨點為工單編輯的凍結點,即錨點所在步驟成功發布之后,工單將會變成已發布狀態,不可編輯。
單擊提交。
2. 設置實例的安全規則
將Schema_Design-dev實例(環境類型為Dev)的管控模式設置為安全協同并選擇SD-DT安全規則。
在控制臺首頁左側的實例列表中,右鍵單擊Schema_Design-dev數據庫實例。
在彈出的列表中,選擇 。
3. 數據庫結構設計
以下步驟以新建數據庫的表結構變更為例,向您介紹設計結構(Dev)、測試(Test)、生產發布(Product)三節點的結構設計項目。
3.1 進入DMS結構設計功能頁面
- 登錄數據管理DMS 5.0。
在頂部菜單欄中,選擇 。
說明若您使用的是極簡模式的控制臺,請單擊控制臺左上角的圖標,選擇
。單擊頁面右上角的結構設計。
3.2 配置結構設計工單信息
創建結構設計工單。
在創建工單頁面選擇變更基準庫為開發環境的數據庫,其他參數請您自行填寫。
本示例變更基準庫選擇dev_database。
在設計結構節點,給dev_database數據庫中創建表。
單擊導入SQL語句,填入創建表的SQL,再單擊確定。
CREATE TABLE `teacher` ( `teacher_id` varchar(20) NOT NULL COMMENT '教師編號', `teacher_name` varchar(20) NULL COMMENT '教師名字', `phonenumber` varchar(20) NULL COMMENT '教師電話號碼', PRIMARY KEY (`teacher_id`) ) DEFAULT CHARSET=utf8 COMMENT='教師表';
單擊保存,并在彈出的預檢測結果對話框中單擊確認無誤,提交保存。
單擊執行變更到基準庫。
在提示面板中選擇執行策略,確認執行SQL的正確性,再單擊確定。
等待審批人手動審批通過,系統會將新的表結構寫入到dev_database數據庫中。
單擊進入下一節點。
說明在進行該項操作前,請您自行在該節點對dev_database數據庫進行多次變更設計與驗證,系統最終會產生一個
create
腳本,發布到下個節點。
在測試節點中,將上一節點中創建的表結構同步至測試庫中。
單擊執行變更到目標庫。
選擇test_database數據庫,并將執行策略設置為立刻執行,單擊確定。
審批完成后,系統會將變更的結構寫入到test_database數據庫中。
重要下一節點為有錨點的生產發布節點,進入該節點后將不允許回退到上一節點進行設計或發布操作。
單擊進入下一節點。
在生產發布(錨點)節點,將表結構同步至生產庫中。
單擊執行變更到目標庫。
選擇product_database數據庫,并將執行策略設置為立刻執行,單擊確定。
提交執行后請等待審批完成。
待審批完成后,系統會將變更的結構寫入到product_database數據庫中,您也可以將數據寫入product_database數據庫。
單擊進入下一節點后,結構設計流程將會結束,工單也會自動關閉。
相關操作
了解安全規則中結構設計模塊的具體規則,請參見安全規則之結構設計模塊。
了解結構設計功能的使用場景、功能特性等信息,請參見結構設計。
通過API獲取結構設計工單的發布情況。