JeecgBoot低程式碼開發框架,後臺服務使用SpringBoot開發,支援MySQL、Oracle、PostgreSQL,SQLServer多種資料庫,整合Flyway版本化管理SQL指令碼。
程式碼託管:GitHub和Gitee,國內使用者訪問Gitee速度快。
系統環境:Win10,JDK8,maven,docker。
一,SpringBoot整合Flyway
1,pom.xml中新增依賴
2,application.yml中新增配置
3,新增初始化SQL指令碼
建立資料表,匯入初始化資料。
二,功能測試
Flyway管理維護Migration,SQL指令碼在服務啟動時自動執行。
為了方便測試,使用docker-compose,快速啟動。
1,配置JeecgBoot後端服務
修改配置檔案application。yml,在MySQL和redis連線中引用hostname
2,編譯打包
執行命令mvn package,也可以使用IntelliJ IDEA,得到target目錄下的jar包檔案。
3,生成Docker映象
執行docker-compose build
4,啟動Docker容器
執行docker-compose up
5,訪問後臺服務
三,常見問題
1,異常ClassNotFoundException,找不到FlywayCallback類
原因:flyway版本不匹配。
解決方法:在pom。xml中新增flyway-core依賴時,不要指定版本,SpringBoot將自動匹配管理。
2,執行SQL指令碼錯誤FlywayException: No value provided for placeholder expressions
原因:Flyway預設會解析SQL指令碼中的變數,如果沒有設定引數值,將出錯。
解決方法:配置flyway不替換變數值。
spring。flyway。placeholder-replacement=false
3,建立flyway_schema_history資料表失敗
原因:如果配置了Ali Druid Wall安全過濾器,將禁止SQL語句中包含註釋。Flyway在建立migration歷史記錄表時的SQL語句包含註釋。
解決方法:配置WallFilter允許SQL註釋。
commentAllow=true