We've already done a few schema changes "out of band", but with
https://github.com/LibriVox/librivox-catalog/pull/212 we now have a
situation where a schema change is needed in a PR for the code to
work, and since we have no way to supply that, our CI (continuous
integration, not Code Igniter), basic such as it is, fails because the
schema that the code relies on is not deployed in the CI VM.
In addition, tracking schema changes inline with migrations is just
good standard practice.
This patch starts making use of Code Igniter's DB migrations framework
(https://codeigniter.com/userguide3/libraries/migration.html) to allow
PRs to include schema changes. There will be a librivox-ansible
follow-up patch to run the DB migrate script on every deployment.
We've already done a few schema changes "out of band", but with https://github.com/LibriVox/librivox-catalog/pull/212 we now have a situation where a schema change is needed in a PR for the code to work, and since we have no way to supply that, our CI (continuous integration, not Code Igniter), basic such as it is, fails because the schema that the code relies on is not deployed in the CI VM.
In addition, tracking schema changes inline with migrations is just good standard practice.
This patch starts making use of Code Igniter's DB migrations framework (https://codeigniter.com/userguide3/libraries/migration.html) to allow PRs to include schema changes. There will be a librivox-ansible follow-up patch to run the DB migrate script on every deployment.