We moved to liquibase migrations as part of #254 and selected a changeSet called loadUpdateData as our method of choice for managing seed data. It was nice because you could add or update seed data by simply editing a csv and liquibase would magically update or insert new data when migrations were run.
Unfortunately, like all magic, it came at a cost.
In short, this kind of "hot migration" broke some migration metaphors, meaning that if we changed table structure or dropped a table we would potentially need to edit or modify the seed data changeSets. They also made inconsistent rollback numbering, which was a pain for developers who rely on rollbacks.
We're going to move to the less dynamic loadData changeSet type. This still uses csvs, but it will only get loaded once per migration.
This needs to be done before #57 is really possible.
We moved to liquibase migrations as part of #254 and selected a changeSet called
loadUpdateData
as our method of choice for managing seed data. It was nice because you could add or update seed data by simply editing a csv and liquibase would magically update or insert new data when migrations were run.Unfortunately, like all magic, it came at a cost.
In short, this kind of "hot migration" broke some migration metaphors, meaning that if we changed table structure or dropped a table we would potentially need to edit or modify the seed data changeSets. They also made inconsistent rollback numbering, which was a pain for developers who rely on rollbacks.
We're going to move to the less dynamic
loadData
changeSet type. This still uses csvs, but it will only get loaded once per migration.This needs to be done before #57 is really possible.