Ruoyi從mysql切換到postgresql的幾個踩坑實戰(zhàn)
前言
因為工程應用需要,需要將ruoyi的數(shù)據(jù)庫支持從mysql切換到postgresql。網(wǎng)上也有一些開源的demo或者已經集成好的框架說明已經將數(shù)據(jù)庫進行了切換。本文將簡單介紹在進行數(shù)據(jù)庫切換時,可能會遇到的幾個問題,以及怎么解決。
雖然同為關系型數(shù)據(jù)庫,但mysql和postgresql在sql的兼容性方面不是很好,mysql支持的語法在postgresql中很多是不認識的。
閑言少敘,下面進入正文。
一、在pom.xml文件中將mysql的依賴jar包替換成postgresql的。
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>二、mybatis-plus或者分頁插件數(shù)據(jù)庫類別支持

上面兩個地方紅框中的字符都要替換掉。
三、數(shù)據(jù)庫連接池要做相應調整

四、自動任務依賴,如果您開啟了quartz組件,請記得打開以下注釋
//pg啟用特殊配置,否則會報錯 update by wuzuhu on 20181224
//prop.put("org.quartz.jobStore.driverDelegateClass", "org.quartz.impl.jdbcjobstore.PostgreSQLDelegate");五、在所有的Mapper.xml配置文件中,找到有sysdate()的函數(shù),需要替換成now()函數(shù)。
六、所有帶日期查詢函數(shù)需要替換成如下的代碼:

七、mysql find_in_set()函數(shù)可以使用ANY()方案。
比如:
#{deptId} || '' = ANY(STRING_TO_ARRAY(ancestors, ','))
總結:
通過以上步驟基本可以完成ruoyi的數(shù)據(jù)庫從mysql切換到postgresql,希望可以幫助到你。
到此這篇關于Ruoyi從mysql切換到postgresql的幾個踩坑實戰(zhàn)的文章就介紹到這了,更多相關Ruoyi從mysql切換postgresql內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用docker compose啟動postgresql的示例代碼
要在啟動 PostgreSQL 容器時執(zhí)行特定的初始化文件,可以使用 Docker 的 docker-entrypoint-initdb.d 目錄,這個目錄下的 SQL 文件會在容器啟動時被自動執(zhí)行,下面是如何修改 Docker Compose 配置文件,以便在啟動時執(zhí)行初始化 SQL 腳本,需要的朋友可以參考下2024-10-10
PostgreSQL 實現(xiàn)sql放入文件批量執(zhí)行
這篇文章主要介紹了PostgreSQL 實現(xiàn)sql放入文件批量執(zhí)行,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02
postgresql 實現(xiàn)查詢出的數(shù)據(jù)為空,則設為0的操作
這篇文章主要介紹了postgresql 實現(xiàn)查詢出的數(shù)據(jù)為空,則設為0的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01
基于PostgreSQL的時序數(shù)據(jù)庫TimescaleDB的基本用法和概念
時序數(shù)據(jù)是指按照時間順序存儲的數(shù)據(jù),TimescaleDB是一個開源的、擴展了PostgreSQL的時序數(shù)據(jù)庫擴展,本文就給大家詳細的介紹一下基于PostgreSQL的時序數(shù)據(jù)庫TimescaleDB的基本用法和概念,需要的朋友可以參考下2023-06-06
Postgresql刪除數(shù)據(jù)庫表中重復數(shù)據(jù)的幾種方法詳解
本文詳細講解了Postgresql刪除數(shù)據(jù)庫表中重復數(shù)據(jù)的幾種方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-10-10

