Sistem Migration (Numbered Migration Files)
Penjelasan
Migration adalah cara khas Truffle mengelola deployment: setiap file di folder `migrations/` diberi nomor urut awalan (misal `1_initial_migration.js`, `2_deploy_metacoin.js`) yang menentukan urutan eksekusi. Truffle mencatat migration mana saja yang sudah pernah dijalankan pada suatu network lewat contract on-chain bernama Migrations, sehingga menjalankan `truffle migrate` berulang kali tidak akan mengeksekusi ulang migration yang sudah selesai — hanya migration baru yang dijalankan. Setiap file migration meng-export fungsi yang menerima objek `deployer`, dipakai untuk memanggil `deployer.deploy(ContractName, ...args)`. Pendekatan bernomor dan tercatat ini berbeda dari script deployment bebas di Hardhat/Foundry yang tidak punya state tracking bawaan seketat ini.
Contoh Konsep
// migrations/2_deploy_simplebank.js
const SimpleBank = artifacts.require("SimpleBank");
module.exports = function (deployer) {
deployer.deploy(SimpleBank);
};
// Jalankan migration ke network development
// truffle migrate --network development
// Jalankan ulang paksa semua migration (reset state tracking)
// truffle migrate --reset
Praktikum
Buat file migration baru bernomor 2 yang men-deploy contract SimpleBank ke network development.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Gunakan `truffle migrate --reset` saat development untuk memaksa semua migration dijalankan ulang dari awal — berguna kalau kamu sering mengubah contract dan butuh alamat deployment baru tiap kali.