mirror of
git://git.savannah.gnu.org/guix/guix-cuirass.git
synced 2023-12-14 06:03:04 +01:00
Alter the Builds table to have an id field
The internal rowid's are used for builds as you can request builds by using the rowid in the URL. The motivation here is to enable running VACUUM operations in SQLite, without risking the rowid's for Builds changing. It would be bad if they change, as they're used in the URL's for builds. * src/schema.sql (Builds): Add id column. * src/curiass/dataabse.scm (db-add-build): Change PRIMARYKEY constraint to UNIQUE constraint. * src/sql/upgrade-6.sql: New file. * Makefile.am (dist_sql_DATA): Add it.
This commit is contained in:
parent
9eb96d1b19
commit
fa412cdb59
4 changed files with 52 additions and 3 deletions
|
@ -70,7 +70,8 @@ dist_sql_DATA = \
|
|||
src/sql/upgrade-2.sql \
|
||||
src/sql/upgrade-3.sql \
|
||||
src/sql/upgrade-4.sql \
|
||||
src/sql/upgrade-5.sql
|
||||
src/sql/upgrade-5.sql \
|
||||
src/sql/upgrade-6.sql
|
||||
|
||||
dist_css_DATA = \
|
||||
src/static/css/bootstrap.css \
|
||||
|
|
|
@ -540,7 +540,7 @@ VALUES ("
|
|||
;; If we get a unique-constraint-failed error, that means we have
|
||||
;; already inserted the same build. That happens when several jobs
|
||||
;; produce the same derivation, and we can ignore it.
|
||||
(on SQLITE_CONSTRAINT_PRIMARYKEY
|
||||
(on SQLITE_CONSTRAINT_UNIQUE
|
||||
=>
|
||||
(sqlite-exec db "ROLLBACK;") #f))))
|
||||
|
||||
|
|
|
@ -51,7 +51,8 @@ CREATE TABLE Outputs (
|
|||
);
|
||||
|
||||
CREATE TABLE Builds (
|
||||
derivation TEXT NOT NULL PRIMARY KEY,
|
||||
id INTEGER NOT NULL PRIMARY KEY,
|
||||
derivation TEXT NOT NULL UNIQUE,
|
||||
evaluation INTEGER NOT NULL,
|
||||
job_name TEXT NOT NULL,
|
||||
system TEXT NOT NULL,
|
||||
|
|
47
src/sql/upgrade-6.sql
Normal file
47
src/sql/upgrade-6.sql
Normal file
|
@ -0,0 +1,47 @@
|
|||
BEGIN TRANSACTION;
|
||||
|
||||
ALTER TABLE Builds RENAME TO OldBuilds;
|
||||
|
||||
CREATE TABLE Builds (
|
||||
id INTEGER NOT NULL PRIMARY KEY,
|
||||
derivation TEXT NOT NULL UNIQUE,
|
||||
evaluation INTEGER NOT NULL,
|
||||
job_name TEXT NOT NULL,
|
||||
system TEXT NOT NULL,
|
||||
nix_name TEXT NOT NULL,
|
||||
log TEXT NOT NULL,
|
||||
status INTEGER NOT NULL,
|
||||
timestamp INTEGER NOT NULL,
|
||||
starttime INTEGER NOT NULL,
|
||||
stoptime INTEGER NOT NULL,
|
||||
FOREIGN KEY (evaluation) REFERENCES Evaluations (id)
|
||||
);
|
||||
|
||||
INSERT INTO Builds(
|
||||
id,
|
||||
derivation,
|
||||
evaluation,
|
||||
job_name,
|
||||
system,
|
||||
nix_name,
|
||||
log,
|
||||
status,
|
||||
timestamp,
|
||||
starttime,
|
||||
stoptime
|
||||
) SELECT rowid,
|
||||
derivation,
|
||||
evaluation,
|
||||
job_name,
|
||||
system,
|
||||
nix_name,
|
||||
log,
|
||||
status,
|
||||
timestamp,
|
||||
starttime,
|
||||
stoptime
|
||||
FROM OldBuilds;
|
||||
|
||||
DROP TABLE OldBuilds;
|
||||
|
||||
COMMIT;
|
Loading…
Reference in a new issue