專案國產化,mysql替換為神通資料庫記錄

2021-10-12 17:41:48 字數 1612 閱讀 4607

專案中mysql資料庫要替換成神通資料庫;庫中的表有部分是內建資料,即專案安裝部署後庫、表要已經建立完成,並且部分表裡要有內建資料,專案啟動要能根據實體類動態更新表結構(為了方便公升級、運維)

2.1 安裝使用神通資料庫

由於資源匱乏,暫時只有windows 10版神通資料庫,資料庫安裝好後會生成乙個資料夾,資料夾內有一系列操作神通資料庫的工具(建立資料庫的工具、資料遷移的工具、管理工具等)

2.2 建立庫、啟動

神通安裝後自帶的資料庫配置工具來建立乙個資料庫,並在服務中開啟此資料庫服務(具體操作可搜尋神通資料庫使用教程)

2.3 資料遷移

使用神通資料遷移工具,將專案中mysql資料庫的結構及資料(包括表、約束、資料等)遷移到神通資料庫。

2.4 資料匯出

使用神通的sql互動工具將遷移好的神通資料庫裡面的表結構以及表資料匯出.sql指令碼檔案

2.5指令碼修改

匯出的.sql指令碼類似mysql匯出的指令碼,但是要改寫東西。指令碼中建表語句下面會有建立索引及約束的語句,匯出的pk都是大寫且不帶雙引號,需要把pk修改為小寫並加上雙引號;不然執行報錯。

3.1 .sql指令碼匯出匯入問題

使用神通資料庫工具匯出的.sql指令碼再使用工具匯入會報錯,目前我是採用執行語句的方法來建表(命令列匯入.sql指令碼未嘗試)

如果執行的話,就有建表語句的順序的問題,假如a表建表時關聯了b表,那就要先把b表先建好

3.2 主鍵自增問題

神通的sql中,主鍵可以自增,但是專案的實體中,id的strategy設定為generationtype.identity會報錯,不支援自增。但是如果先建好錶,專案中實體用identity不會報錯(由於不利於後期公升級與維護,故捨棄),暫時用sequence代替主鍵自增的功能,每乙個實體的id都建立乙個sequence

3.3 連線池

專案中之前資料庫連線池使用的alibaba的,但是看了alibaba的連線池原始碼暫時不支援神通,所以就用的自帶的連線池

3.4 專案中自定義sql查詢

專案中如果有自定義sql,即nativequery查詢,表前要加schema,採用庫.表,例如mysql查詢:select * from user;神通中要寫select * from test.user 。test為庫名。

3.5 部分函式支援

神通的函式不支援find_in_set(),可以用local()函式替代;like查詢時,如果表中某個字段型別是數字型別,查詢時要使用cast()函式把字段它轉為varchar。(在sql工具上寫sql語句時可以的,但是專案中用的神通資料庫驅動不支援此查詢)例如:telnum(**號碼)欄位為int型

mysql查詢:select * from user where telnum like 『135%』; 神通查詢要改為:select * from user where cast(telnum as varchar(10)) like 『135%』;

目前還在適配中,後續問題會更新

web專案國產化踩坑

最近在做公司專案的國產化改造,記錄一下遇到的坑 type file accept image 環境 問題 專案中一處檔案上傳使用的是原生的input type file 在上述環境下accept屬性 限制選擇檔案的型別 不生效。經測試,在相同系統中firefox支援。解決方法 退而求其次,沒有辦法的...

天融信助力國產化,構建基於國產化技術的安全防護體系

2015年12月20日,第二屆國家資訊保安與國產化戰略高層論壇在北京舉行。國家機關 科研院所專家 國家重要行業的資訊化主管 國內知名it企業的領導,就 國家資訊保安與國產化戰略 這一主題,採取主題演講 專題報告 問答互動等形式進入了深入研討 交流。會上,中國科學院中國工程院兩院士王越資深院士,對資訊...

基礎軟體國產化閒談

現代軟體是高度國際化的,在網際網路上,傳播 發布易如反掌。我們天天用著photoshop p圖,用 apache2 之類的開源產品搭 順便搭一搭mysql 或者芒果。程式猿用各種ide及編譯器 直譯器寫程式 做產品,團隊從開源 簽出訊息佇列,半天時間就能夠部署到自己的專案中。這太習以為常了,以至於,...