Migration MySQL menggunakan Node.js Sequelize


Manfaat migration yaitu dapat melakukan proses pemindahan data, pembuatan struktur pada database secara program. Jadi gamblangnya dengan menggunakan migrasi, membuat table database bisa dilakukan tanpa melalui terminal SQL atau remote database. Migration juga berfungsi sebagai version control untuk database apabila aplikasi dikerjakan lebih dari 1 developer.

Sebelum melakukan tahap-tahap migration database mysql sequelize, yang harus disiapkan adalah:

  • node.js
  • npm
  • mysql-server

Instalasi Sequelize-cli

Buat directory project bernama belajar_migrasi

mkdir belajar_migrasi

Masuk kedalam directory belajar_migrasi

cd belajar_migrasi

Inisialisasi npm package

npm init

install mysql2, sequelize dan sequelize-cli

npm install --save mysql2
npm install --save sequelize
npm install --save-dev sequelize-cli

Inisialisasi sequelize-cli config

npx sequelize-cli init

modifikasi file config/config.json

{
  "development": {
    "username": "root",
    "password": null,
    "database": "database_development",
    "host": "127.0.0.1",
    "dialect": "mysql",
    "port": 3306
  },
  "test": {
    "username": "root",
    "password": null,
    "database": "database_test",
    "host": "127.0.0.1",
    "dialect": "mysql"
  },
  "production": {
    "username": "root",
    "password": null,
    "database": "database_production",
    "host": "127.0.0.1",
    "dialect": "mysql"
  }
}

pada file config/config.json terdapat credential setiap environment. Secara default, environment yang dipilih adalah “development” yang bisa diubah dengan menambahkan env NODE_ENV.

Membuat Model Migration

Selanjutnya membuat file model dengan perintah

npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string,age:integer

perintah diatas akan menciptakan sebuah file user di dalam folder models dan file migration di dalam folder migrations

Generate Database dan Run Migration

Setelah semua config sudah ditentukan, selanjutnya membuat database. Migrasi tidak akan bisa dijalankan apabila database belum dibuat.

Generate database dengan perintah:

npx sequelize-cli db:create

db:create akan membuat database sesuai dengan config/config.json. Dalam kasus ini, environment yang dipakai adalah environment default yaitu “development”. maka sequelize akan membuat database sesuai dengan config environment “development” dengan nama databasenya adalah database_development

Setelah selesai membuat database, lanjutkan dengan menjalankan migrasi dengan perintah

npx sequelize-cli db:migrate

Maka di database mysql seharusnya seperti ini:

mysql front db view

Leave a Reply

Your email address will not be published. Required fields are marked *