Study
Truffle

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.

Editor Latihan

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.