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:

