What actually happened with the "migrations"-folder?

Unboxing zeppelinos/zepkit gives a project with two Contracts including tests, but the migrations folder is empty. I understood that we use with OpenZepplin-OS now “zos add” and “zos push” so far. But doesnt this mean that the migrations-folder can be completely removed? Even from the ZepKit-Box?


The migrations folder is only there is a user wants to use truffle migrations, otherwise it should not be needed.

1 Like

@abcoathup is correct. Migrations are a Truffle feature for deployment of contracts via Truffle. With ZeppelinOS, this is taken care of via the zos add, zos push, and zos create commands, so the migrations file is not necessary.


Thanks for this answer! Might be useful to add this as an “FYI” to the readme… Like @itinance, I was confused about the purpose of the migrations folder & unsure if adding migrations there was required like it would be for a vanilla Truffle project.

In terms of why the migrations folder is there, are there certain advantages to using “zos push” vs. the migration files? Or vice versa? Certain situations where we’d want to use one vs the other?

Thanks again. Great project overall!


Hi @sbrichards welcome to the community.

I have created an issue: https://github.com/zeppelinos/zepkit/issues/29 for your suggestion to add to the README.

My understanding of the migrations folder is for when a user wants to use truffle migrations as well as ZeppelinOS. This could be where a user has a mixed project of upgradeable contracts deployed using ZeppelinOS and non-upgradeable contracts deployed using Truffle migrations.

There was a discussion recently on how to manage non-upgradeable projects in ZeppelinOS:

Also information about minimal proxies support in ZeppelinOS in the May development update:

1 Like

There is another use case, which is managing ZeppelinOS upgradeable contracts from truffle migrations. Check out this example project on how to do it: