1.9.3. Eksen Oracle Konfigürasyonu#
Eksen veritabanı bağımsız geliştirilen bir altyapı olduğu için Oracle veritabanını da desteklemektedir. Varsayılan ayarlar postgresql için yapıldığı için Oracle veritabanını kullanabilmek için bazı ayarların yapılması gerekmektedir.
Oracle Veritabanı Nasıl Çalıştırılır#
hvl-infra projesindeki "deployment/management-service/oracle-db/docker-compose.yml" altından oracle veritabanı çalıştırılabilir.
Veribatanına aşağıdaki bilgiler ile bağlanılır.
- host: localhost
- port: 1521
- Service name: hvl
- username SYSTEM
- password: hvl12345
bilgileri ile bağlanılır.
Projede kullanılacak şemalar aşağıdaki şekilde oluşturulmalıdır.
Not: Infra altındaki oracle database container'ı EKSEN ürünlerine ait şemaları otomatik oluşturmaktadır.
Hosts Dosyası#
/etc/hosts
dosyasına aşağıdaki değer eklenmelidir.
hvl-infra Konfigürasyonları#
application-database-datasource.yml#
- spring.datasource.driver-class-name satırı silinir.
- spring.datasource.username değeri
SYSTEM
yapılır. - spring.datasource.url değeri
jdbc:oracle:thin:@//hvloracledatabase:1521/hvl
olarak güncellenir. - spring.sql.init.platform değeri
oracle
yapılır. - spring.jpa.properties.hibernate.dialect değeri
tr.com.havelsan.javarch.data.jpa.dialect.oracle.HvlOracleSQL12cDialect
olarak güncellenir. - spring.jpa.properties.hibernate.templates değeri
tr.com.havelsan.javarch.data.jpa.dialect.oracle.templates.HvlOracleSQL12cTemplates
olarak güncellenir. - spring.jpa.properties.hibernate.sql-templates-type değeri
oracle
olarak güncellenir.
application-database-liquibase.yml#
- preliquibase.sqlScriptReferences satırı silinir.
- preliquibase.dbPlatformCode satırı silinir.
Uygulama Konfigürasyonları#
1. Adım#
bağımlılık değeri
şeklinde değiştirilir. Eğer 2 veritabanına da destek verilecekse 2 değerin de yazılması gerekmektedir.2. Adım#
Liquibase dosyaları oracle uyumlu hale getirilir.
Liquibase Sequence Düzeltimi#
Örnek olarak postgresql'den oluşturulmuş olan liquibase createSequence satırları oracle için düzenlenmelidir.
createSequence içerisindeki cacheSize="1" ve dataType="bigint" oracle için desteklenmediği için silinmelidir.
<createSequence cycle="false" incrementBy="1" maxValue="9223372036854775807" minValue="1" sequenceName="hibernate_sequence" startValue="1"/>
Liquibase Dosylarında Postgresql'e Özgü Kullanılmış Veri Tipleri#
Postgresql'e özgü kullanılmış veri tipleri liquibase üzerinde kolayca ayarlanabilir. Bunu yapmak için root xml dosyasına property tanımı yapılır ve veri tipinin olduğu yerlere bu property eklenir. Böylece liquibase, veritabanı tipine göre uygun veri tipini yerleştirecektir. Örnekler aşağıdadır.
Not: Öncesinde proje başlatılmaya çalışılmalıdır. Sadece hata alınan yerlere müdahale edilmelidir. Liquibase birçok dönüşümü otomatik olarak yapmaktadır.
databaseChangeLog:
- property:
name: clob.type
value: text
dbms: postgresql
- property:
name: clob.type
value: clob
dbms: db2,oracle
- property:
name: clob.type
value: varchar(MAX)
dbms: mssql
- property:
name: blob.type
value: bytea
dbms: postgresql
- property:
name: blob.type
value: blob
dbms: db2,oracle
- property:
name: blob.type
value: varbinary(MAX)
dbms: mssql
- include:
file: db/changelog/setup/setup-ddl.xml
Veritabanlarındaki veri tipleri mappinglerini aşağıdaki linkten bulabilirsiniz.