X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=db.sql;h=6a8f51ed05ec56e63b639cceeb5efb7c48f6284e;hb=7cc581729bb4b242c803299f72eed987b9fee216;hp=0bdc6549131bcb981885767d62058e9f2be2bb27;hpb=d3b90e6aa8ab580c77ead76ff5c6c6dca7991cc6;p=zpackage diff --git a/db.sql b/db.sql index 0bdc654..6a8f51e 100644 --- a/db.sql +++ b/db.sql @@ -38,6 +38,24 @@ create table packages ( without rowid ; +create table packagestatus ( + pkgid text primary key, + status text, -- installed installing removed upgraded + -- asof timestamp + asof integer default (strftime('%s', 'now')) +); + +create table packagetags ( + -- package id triple + package text, + version text, + release integer, + tag text, + set_time integer default (strftime('%s', 'now')), + primary key (package,version,release,tag), + foreign key (package,version,release) references packages (package,version,release) on delete cascade +); + -- packagefile hash is columns as text, joined with null bytes, then -- sha256 sum of that -- package checksum is package columns as text, joined with null bytes, @@ -47,7 +65,7 @@ without rowid -- really don't like this. -- files contained in a package -create table paths ( +create table packagefiles ( -- package id triple package text, version text, @@ -93,10 +111,22 @@ without rowid ; create table elfinfo ( - file text, -- hash of blob + file text primary key, -- hash of blob elftype text, foreign key (file) references files on delete cascade -); +) +without rowid +; + +create table elfdeps ( + file text, + soname text, + dependency text, + primary key (file, soname, dependency), + foreign key (file) references files on delete cascade +) +without rowid +; -- TODO just elf information? -- and just hash, not package? @@ -187,6 +217,15 @@ create table repository ( refreshed integer -- last refresh time ); +-- urls for downloading packages. possibly unneeded +create table repository_packages ( + repo text, + pkg text, -- glob pattern? in which case others not needed + version text, + release text, + url text +); + -- track which repository a package was cloned from, i.e. where we got it create table packagesource ( name text,