How to handle migrations in Golang