Cara Membuat Migration Database di Golang

Pada kesempatan tutorial kali ini, kita akan membuat modul untuk migration database di Golang. Modul ini tergolong vital untuk sebuah aplikasi yang dikatakan ‘komplet’, dan tujuan utamanya tentu adalah kemudahan proses ‘deployment’ ke depan.

Yang akan kita pakai pada tutorial kali ini adalah library SQL-migrate dari om Rubenv. Dengan fitur-fitur utamanya adalah:

  • Usable as a CLI tool or as a library
  • Supports SQLite, PostgreSQL, MySQL, MSSQL and Oracle databases (through gorp)
  • Can embed migrations into your application
  • Migrations are defined with SQL for full flexibility
  • Atomic migrations
  • Up/down migrations to allow rollback
  • Supports multiple database types in one project
  • Works great with other libraries such as sqlx

Cara Instalasi

Untuk instalasi, bisa menggunakan perintah go get:

go get -v github.com/rubenv/sql-migrate/...

kemudian tunggu proses instalasi selesai. Gunakan sql-migrate ini dari command line:

$ sql-migrate --help
usage: sql-migrate [--version] [--help]  []

Available commands are:
    down      Undo a database migration
    new       Create a new migration
    redo      Reapply the last migration
    status    Show migration status
    up        Migrates the database to the most recent version available

tool sql-migrate membutuhkan file dbconfig.yml. Contoh file YAML:

postgres:
    dialect: postgres
    datasource: dbname=test sslmode=disable
    dir: test-migrations

mysql:
    dialect: mysql
    datasource: [email protected]/test?parseTime=true
    dir: test-migrations

mysql_noflag:
    dialect: mysql
    datasource: [email protected]/test
    dir: test-migrations

mysql_env:
    dialect: mysql
    datasource: ${MYSQL_USER}:${MYSQL_PASSWORD}@tcp(${MYSQL_HOST}:${MYSQL_PORT})/${DATABASE_NAME}?parseTime=true
    dir: test-migrations

sqlite:
    dialect: sqlite3
    datasource: test.db
    dir: test-migrations
    table: migrations

untuk menggunakannya, ya tinggal sql-migrate up.

Silakan baca lebih lanjut disini https://github.com/rubenv/sql-migrate

Wagiman Wiryosukiro

Petani Sistem Informasi, tukang las plugin & themes Wordpress. Co-Founder SistemInformasi.biz. Saat ini aktif sebagai Developer & kontributor di OpenMandriva Linux.

You may also like...

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: