mirror of
git://git.savannah.gnu.org/guix/guix-cuirass.git
synced 2023-12-14 06:03:04 +01:00
12def48b3b
Add a table to store events, which have a type and a JSON blob. These can be used to record changes, this commit inserts events when new builds are created, and when the status of builds change. The EventsOutbox table is then used to track when events have been sent out. This is done through the new cuirass-send-events script. * Makefile.am (bin_SCRIPTS): Add bin/cuirass-send-events. .gitignore: Add bin/cuirass-send-events. (dist_pkgmodule_DATA): Add src/cuirass/send-events.scm. (dist_sql_DATA): Add src/sql/upgrade-5.sql. (EXTRA_DIST): bin/cuirass-send-events.in. (bin/cuirass-send-events): New rule. * bin/cuirass-send-events.in: New file. * src/cuirass/send-events.scm: New file. * src/sql/upgrade-5.sql: New file. * src/cuirass/database.scm (changes-count): New procedure. (db-update-build-status!): Call db-add-event after updating the build status. (db-add-event): New procedure. (db-add-build): Insert an event when a new build is inserted. (db-delete-events-with-ids-<=-to): New procedure. * src/schema.sql (Events): New table.
15 lines
295 B
SQL
15 lines
295 B
SQL
BEGIN TRANSACTION;
|
|
|
|
CREATE TABLE Events (
|
|
id INTEGER PRIMARY KEY,
|
|
type TEXT NOT NULL,
|
|
timestamp INTEGER NOT NULL,
|
|
event_json TEXT NOT NULL
|
|
);
|
|
|
|
CREATE TABLE EventsOutbox (
|
|
event_id INTEGER NOT NULL,
|
|
FOREIGN KEY (event_id) REFERENCES Events (id)
|
|
);
|
|
|
|
COMMIT;
|