Commit graph

5 commits

Author SHA1 Message Date
bde3baec46 Refactor migrations and don't enable foreign keys
Each migration is, for the most part, a module that exposes expected
database version numbers, command identifier and documentation. This
results in all information about the migration and rollback are
found in the module itself, and builder_migrations.ml only has to
reference the module.

Some migrations require foreign keys constraints are disabled. It is not
possible to enable or disable foreign key constraints inside a
transaction.
2021-06-10 12:08:14 +02:00
Robur
49003ca21f Store relative paths for build artifacts in database 2021-06-01 15:43:55 +00:00
52da2cf588 Refactor list result iter 2021-03-12 09:47:28 +01:00
e2a489a74d Refactor migrations 2021-03-10 10:51:34 +01:00
56737ec71b Migration code, model aware of main binary
Sqlite3 application_id and user_version are now set to identify the
database is a builder-web database, and the user_version represents the
schema version.

The 'build' table is extended with a 'main_binary' column. This
represents the main binary artifact from the build. This is decided by
there being exactly one file in bin/.

A migration tool is written that does both migrations and rollbacks, and
migration and rollback is implemented for the above mentioned change.
2021-01-29 10:15:31 +01:00