sirup-prod
Sistem Informasi RUP
Pengembangan Sistem Informasi Rencana Umum Pengadaan (SIRUP)
Migrasi DB
Projek ini menggunakan modul Migrate yang tersedia pada website resmi Play Framework pada link berikut: https://www.playframework.com/modules/migrate-1.4/home.
Mengaktifkan Modul Migrate
Untuk mengaktifkan modul Migrate, kita perlu menambahkan baris berikut pada file /conf/application.conf:
module.migrate=modules/migrate
Konfigurasi Koneksi DB untuk Modul Migrate
Kita juga perlu menuliskan parameter koneksi DB yang akan digunakan oleh modul Migrate pada file /conf/application.conf.
Parameter Project parameter yang sama yang digunakan oleh aplikasi SIRUP untuk terhubung ke DB.
migrate.module.username=postgres
migrate.module.password=postgres
migrate.module.port=5432
migrate.module.host=localhost
migrate.module.dbs=sirup-1618
Modul Migrate ini menggunakan perintah command-line untuk mengeksekusi skrip SQL perubahan DB.
Karena itu, kita juga perlu menspesifikasikan perintah command-line yang akan dijalankan.
Karena pada aplikasi SIRUP ini kita menggunakan PostgreSQL untuk basis data, maka bisa langsung salin konfigurasi berikut pada file /conf/application.conf:
migrate.module.file.format=psql -U %(username)s -h %(host)s -p%(port)s -t -d %(dbname)s -f %(filename)s
Membuat Skrip SQL Perubahan DB
Nama file SQL yang memuat skrip perubahan DB harus mengikuti pola berikut: [version number].[up/down].[description].sql
Skrip dengan prefix up akan dieksekusi ketika melakukan upgrade versi migrasi. Sebaliknya, file dengan prefix down akan dieksekusi ketika melakukan downgrade versi migrasi.
Semua file SQL ini harus diletakkan pada direktori /db/migrate/sirup-1618.
Membuat Tabel patchlevel untuk Menyimpan Versi Migrasi
Sebelum mengeksekusi perintah migrasi, pastikan pada DB kita sudah terdapat tabel dengan nama patchlevel.
Tabel ini akan berfungsi untuk menyimpan versi migrasi DB terkini yang sudah dieksekusi.
Gunakan skrip SQL berikut untuk membuat tabel patchlevel:
CREATE TABLE public.patchlevel (version int4 NOT NULL, status varchar(255) default NULL, PRIMARY KEY (version));
insert into public.patchlevel (version, status) values (0,'Successful');
Eksekusi Migrasi DB
Untuk mengeksekusi migrasi DB, jalankan perintah berikut melalui command-line:
play migrate:up
Perintah tersebut akan mengeksekusi semua skrip SQL dengan versi yang lebih besar (terbaru).
Di bawah Project contoh keluaran hasil eksekusi perintah play migrate:up melalui command-line ketika melakukan perubahan DB dari versi 1 ke versi 3:
$ play migrate:up
~ _ _
~ _ __ | | __ _ _ _| |
~ | '_ \| |/ _' | || |_|
~ | __/|_|\____|\__ (_)
~ |_| |__/
~
~ play! lkpp, https://www.playframework.com
~
~ Database migration:
~
~ Database: sirup-1618 (Alias:None)
~ Version: 1
~ Status: | Successful
~ Max patch version: 3
~
~ Migrating...
~ 2...
~ 3...
~
~ Migration completed successfully
~
~ ------------------------------------
~
```