115 lines
6.5 KiB
SQL
115 lines
6.5 KiB
SQL
ALTER DATABASE pa SET timezone TO 'Australia/Victoria';
|
|
|
|
create table settings( id integer, import_path varchar, last_import_date float, constraint pk_settings_id primary key(id) );
|
|
|
|
create table FILE_TYPE ( ID integer, NAME varchar(32) unique, constraint PK_FILE_TYPE_ID primary key(ID) );
|
|
|
|
create table ENTRY( ID integer, NAME varchar(128), TYPE integer, constraint PK_ENTRY_ID primary key(ID) );
|
|
|
|
create table NEW_FILE ( EID integer, SIZE_MB integer, HASH varchar(34), THUMBNAIL varchar,
|
|
constraint PK_FILE_ID primary key(EID),
|
|
constraint FK_FILE_ENTRY_ID foreign key (EID) references ENTRY(ID) );
|
|
|
|
create table DIR ( EID integer, PATH_PREFIX varchar(256),
|
|
constraint PK_DIR_ID primary key(EID),
|
|
constraint FK_DIR_ENTRY_ID foreign key (EID) references ENTRY(ID) );
|
|
|
|
create table ENTRY_DIR_LINK ( entry_id integer, dir_eid integer,
|
|
constraint PK_EDL_entry_id_dir_eid primary key (entry_id, dir_eid),
|
|
constraint FK_EDL_ENTRY_ID foreign key (ENTRY_ID) references ENTRY(ID),
|
|
constraint FK_EDL_DIR_ID foreign key (DIR_EID) references DIR(EID) );
|
|
|
|
-- ENTRY( 1, 'images_to_process', D)
|
|
-- ENTRY( 2, 'IMG_9289.JPG', F )
|
|
-- ENTRY( 3, 'IMG_9289.JPG', F )
|
|
-- ENTRY( 4, 'TEST', D )
|
|
-- ENTRY( 5, 'a.jpg', F ) ; -- in TEST/
|
|
-- ENTRY( 6, 'new_img_dir/', F )
|
|
-- ENTRY( 7, 'b.jpg', F ) ; -- in new_img_dir/
|
|
--
|
|
-- DIR( 1, 'static/images_to_process/'
|
|
-- NEW_FILE( 3, size, hash, thumb )
|
|
-- DIR( 4, 'static/images_to_process/TEST/'
|
|
-- NEW_FILE( 5, size, hash, thumb )
|
|
-- DIR( 6, 'static/new_img_dir/'
|
|
-- NEW_FILE( 7, size, hash, thumb )
|
|
--
|
|
-- DIR, ENTRY ( 1, 2 )
|
|
-- DIR, ENTRY ( 1, 3 )
|
|
-- DIR, ENTRY ( 1, 4 )
|
|
-- DIR, ENTRY ( 4, 5 )
|
|
-- DIR, ENTRY ( 6, 7 )
|
|
|
|
create table file( id integer, name varchar(128), size_MB integer, type varchar(20), path_prefix varchar(256), hash varchar(34), thumbnail varchar,
|
|
constraint pk_photos_id primary key(id) );
|
|
|
|
create table person ( id integer, tag varchar(48), firstname varchar(48), surname varchar(48),
|
|
constraint pk_person_id primary key(id) );
|
|
|
|
create table refimg ( id integer, fname varchar(256), constraint pk_refimg_id primary key(id) );
|
|
|
|
create table file_person_link ( file_id integer, person_id integer,
|
|
constraint pk_fpl PRIMARY KEY(file_id, person_id),
|
|
constraint fk_fpl_file_id FOREIGN KEY (file_id) REFERENCES file(id),
|
|
constraint fk_fpl_person_id FOREIGN KEY (person_id) REFERENCES person(id) );
|
|
|
|
create table person_refimg_link ( person_id integer, refimg_id integer,
|
|
constraint pk_prl PRIMARY KEY(person_id, refimg_id),
|
|
constraint fk_prl_person_id FOREIGN KEY (person_id) REFERENCES person(id),
|
|
constraint fk_prl_refimg_id FOREIGN KEY (refimg_id) REFERENCES refimg(id),
|
|
constraint u_prl_refimg_id unique(refimg_id) );
|
|
|
|
create table job (
|
|
id integer, start_time timestamptz, last_update timestamptz, name varchar(64), state varchar(128), num_passes integer, current_pass integer,
|
|
num_files integer, current_file_num integer, current_file varchar(256), wait_for integer, pa_job_state varchar(48),
|
|
constraint pk_job_id primary key(id) );
|
|
|
|
-- used to pass / keep extra values, e.g. num_files for jobs that have sets of files, or out* for adding output from jobs that you want to pass to next job in the chain
|
|
create table jobextra ( id integer, job_id integer, name varchar(32), value varchar(1024),
|
|
constraint pk_jobextra_id primary key(id), constraint fk_jobextra_job_id foreign key(job_id) references job(id) );
|
|
|
|
create table joblog ( id integer, job_id integer, log_date timestamptz, log varchar,
|
|
constraint pk_jl_id primary key(id), constraint fk_jl_job_id foreign key(job_id) references job(id) );
|
|
|
|
create table pa_job_manager ( id integer, state varchar(128), num_active_jobs integer, num_completed_jobs integer, constraint pa_job_manager_id primary key(id) );
|
|
|
|
create table pa_job_manager_fe_message ( id integer, job_id integer, alert varchar(16), message varchar(1024), constraint pa_job_manager_fe_acks_id primary key(id), constraint fk_pa_job_manager_fe_message_job_id foreign key(job_id) references job(id) );
|
|
|
|
create sequence file_id_seq;
|
|
create sequence file_type_id_seq;
|
|
create sequence jobextra_id_seq;
|
|
create sequence joblog_id_seq;
|
|
create sequence job_id_seq;
|
|
create sequence person_id_seq;
|
|
create sequence refimg_id_seq;
|
|
create sequence settings_id_seq;
|
|
create sequence pa_job_manager_id_seq;
|
|
create sequence pa_job_manager_fe_message_id_seq;
|
|
|
|
insert into FILE_TYPE values ( (select nextval('file_type_id_seq')), 'Directory' );
|
|
insert into FILE_TYPE values ( (select nextval('file_type_id_seq')), 'Image' );
|
|
insert into FILE_TYPE values ( (select nextval('file_type_id_seq')), 'Video' );
|
|
insert into FILE_TYPE values ( (select nextval('file_type_id_seq')), 'Unknown' );
|
|
|
|
-- fake data only for making testing easier
|
|
insert into person values ( (select nextval('person_id_seq')), 'dad', 'Damien', 'De Paoli' );
|
|
insert into person values ( (select nextval('person_id_seq')), 'mum', 'Mandy', 'De Paoli' );
|
|
insert into person values ( (select nextval('person_id_seq')), 'cam', 'Cameron', 'De Paoli' );
|
|
insert into person values ( (select nextval('person_id_seq')), 'mich', 'Michelle', 'De Paoli' );
|
|
insert into refimg values ( (select nextval('refimg_id_seq')), 'dad.jpg');
|
|
insert into refimg values ( (select nextval('refimg_id_seq')), 'mum.jpg');
|
|
insert into refimg values ( (select nextval('refimg_id_seq')), 'cam.jpg');
|
|
insert into refimg values ( (select nextval('refimg_id_seq')), 'mich.jpg');
|
|
insert into person_refimg_link values ( 1, 1 );
|
|
insert into person_refimg_link values ( 2, 2 );
|
|
insert into person_refimg_link values ( 3, 3 );
|
|
insert into person_refimg_link values ( 4, 4 );
|
|
insert into settings values ( (select nextval('settings_id_seq')), '/home/ddp/src/photoassistant/images_to_process/#c:/Users/cam/Desktop/code/python/photoassistant/photos/#/home/ddp/src/photoassistant/new_img_dir/', 0 );
|
|
insert into job values ( (select nextval('job_id_seq')), now(), now(), 'Full Import', 'Completed', 3, 3, 157, 157, 'fake_data.img', null, 'Completed' );
|
|
insert into joblog values ( (select nextval('joblog_id_seq')), 1, now(), 'Pass 1: Started Scanning Files' );
|
|
insert into joblog values ( (select nextval('joblog_id_seq')), 1, now(), 'Pass 1: Finished Scanning Files' );
|
|
insert into joblog values ( (select nextval('joblog_id_seq')), 1, now(), 'Pass 2: Started Generating Hashes and thumbnails' );
|
|
insert into joblog values ( (select nextval('joblog_id_seq')), 1, now(), 'Pass 2: Finished Generating Hashes and thumbnails' );
|
|
insert into joblog values ( (select nextval('joblog_id_seq')), 1, now(), 'Pass 3: Started Processing AI' );
|
|
insert into joblog values ( (select nextval('joblog_id_seq')), 1, now(), 'Pass 3: Finished Processing AI' );
|