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

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

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

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

