一个简单的迁移文件看起来是这样的:
文件名:4_example_migration.js
var MyContract = artifacts.require("MyContract");
module.exports = function(deployer) {
// 部署步骤
deployer.deploy(MyContract);
};
注意,文件名以数字编号作为前缀,并以描述作为后缀。为了记录迁移是否成功运行,需要使用数字编号前缀。后缀是为了好认和好理解。
artifacts.require()
在迁移文件开头,通过artifacts.require()
方法告诉Truffle,希望与哪些合约进行交互。此方法与Node的require
类似,它返回一个合约抽象,后续代码可以使用该抽象。方法参数是合约名称,不要传递源文件的名称,因为文件可以包含多个合约。
例如,在同一个源文件中包含2个合约:
文件名:./contracts/Contracts.sol
contract ContractOne {
// ...
}
contract ContractTwo {
// ...
}
要只使用ContractTwo
,artifacts.require()
语句如下所示:
var ContractTwo = artifacts.require("ContractTwo");
要同时使用这2个合约:
var ContractOne = artifacts.require("ContractOne");
var ContractTwo = artifacts.require("ContractTwo");
module.exports
所有迁移脚本都必须通过module.exports
导出一个函数,该函数接受deployer
对象作为其第一个参数。deployer
对象是执行部署任务的主接口。
module.exports = function(deployer) {
deployer.deploy(ContractOne);
};