※作業メモ
概要・背景
Gitで修正パッチファイルを作成・適用する際に行った作業メモ。
自作アプリについて、複数のDB環境で動かす必要があり、その切り替えをスムーズに行う必要があったので、
「MySQL ⇔ Oracle」に簡単に変換できる修正パッチを作成した。
作業内容
対象Repositoryまで移動後、
・修正パッチの作成: git format-patch [コミットid]
(※1)
・修正パッチの適用: git am [patch file name]
(※1)現在のcommitから指定commit前までのパッチを作成するため、以下のコミット履歴であれば、
「user ⇒ SpringUserに修正」のコミットidを指定してgit format-patchを実行すれば、
「MySQL⇒Oracleで動くよう修正」までの修正を含めたパッチが作成される。
ちなみにMySQL ⇒ Oracleで行った修正内容
- application.properties
# Oracle DB
+spring.datasource.url=jdbc:oracle:thin:@192.168.10.103:1521:orcl
+spring.datasource.username=**********
+spring.datasource.password=**********
+spring.datasource.driverClassName=oracle.jdbc.driver.OracleDriver
# MySQL DB
-spring.datasource.url=jdbc:log4jdbc:mysql://localhost:3306/springdb?serverTimezone=JST
-spring.datasource.username=**********
-spring.datasource.password=**********
-spring.jpa.database=MYSQL
-spring.datasource.driverClassName = net.sf.log4jdbc.DriverSpy
- build.gradle
-runtimeOnly 'mysql:mysql-connector-java'
+compile group: 'com.oracle.database.jdbc', name: 'ojdbc8', version: '19.8.0.0'
- 各EntityでSequenceを使うよう修正
-@GeneratedValue(strategy = GenerationType.IDENTITY)
+@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_CUSTOMER_GENERATOR")
+@SequenceGenerator(name = "SEQ_CUSTOMER_GENERATOR", sequenceName = "SEQ_CUSTOMER", allocationSize = 1)
参照
あとがき
最近はOracleの有償サポートが高いということでPostgreSQLやMySQLに移行できないかという問い合わせがありますね。
あとはAWS Auroraへの移行とか。
DB環境を変えた場合の影響調査のリストとか誰かまとめていないかなぁ。