From 21059a62356366bbfc99e4b3da08cb5a9ecb94bf Mon Sep 17 00:00:00 2001 From: Damien De Paoli Date: Sat, 20 Sep 2025 19:32:47 +1000 Subject: [PATCH] reformatted to be normal sql, added query table --- tables.sql | 308 +++++++++++++++++++++++++++-------------------------- 1 file changed, 157 insertions(+), 151 deletions(-) diff --git a/tables.sql b/tables.sql index bf4763b..047e5df 100644 --- a/tables.sql +++ b/tables.sql @@ -1,189 +1,195 @@ -alter database PA set timezone to 'Australia/Victoria'; +ALTER DATABASE pa SET TIMEZONE TO 'aUSTRALIA/vICTORIA'; -create sequence PA_USER_ID_SEQ; -create sequence PA_USER_STATE_ID_SEQ; -create sequence FACE_ID_SEQ; -create sequence PATH_ID_SEQ; -create sequence PATH_TYPE_ID_SEQ; -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; -create sequence FACE_OVERRIDE_TYPE_ID_SEQ; -create sequence FACE_OVERRIDE_ID_SEQ; +CREATE SEQUENCE pa_user_id_seq; +CREATE SEQUENCE pa_user_state_id_seq; +CREATE SEQUENCE face_id_seq; +CREATE SEQUENCE path_id_seq; +CREATE SEQUENCE path_type_id_seq; +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; +CREATE SEQUENCE face_override_type_id_seq; +CREATE SEQUENCE face_override_id_seq; +CREATE SEQUENCE query_id_seq; -- these are hard-coded at present, not sure I can reflexively find models from API? -create table AI_MODEL ( ID integer, NAME varchar(24), DESCRIPTION varchar(80), constraint PK_AI_MODEL primary key(ID) ); -insert into AI_MODEL values ( 1, 'hog', 'normal' ); -insert into AI_MODEL values ( 2, 'cnn', 'more accurate / much slower' ); +CREATE TABLE ai_model ( id INTEGER, name VARCHAR(24), description VARCHAR(80), CONSTRAINT pk_ai_model PRIMARY KEY(id) ); +INSERT INTO ai_model VALUES ( 1, 'HOG', 'NORMAL' ); +INSERT INTO ai_model VALUES ( 2, 'CNN', 'MORE ACCURATE / MUCH SLOWER' ); -create table SETTINGS( - ID integer, - BASE_PATH varchar, IMPORT_PATH varchar, STORAGE_PATH varchar, RECYCLE_BIN_PATH varchar, METADATA_PATH varchar, - AUTO_ROTATE Boolean, - DEFAULT_REFIMG_MODEL integer, DEFAULT_SCAN_MODEL integer, DEFAULT_THRESHOLD float, - FACE_SIZE_LIMIT integer, - SCHEDULED_IMPORT_SCAN integer, SCHEDULED_STORAGE_SCAN integer, - SCHEDULED_BIN_CLEANUP integer, BIN_CLEANUP_FILE_AGE integer, - JOB_ARCHIVE_AGE integer, - constraint PK_SETTINGS_ID primary key(ID), - constraint FK_DEFAULT_REFIMG_MODEL foreign key (DEFAULT_REFIMG_MODEL) references AI_MODEL(ID), - constraint FK_DEFAULT_SCAN_MODEL foreign key (DEFAULT_SCAN_MODEL) references AI_MODEL(ID) ); +CREATE TABLE settings( + id INTEGER, + base_path VARCHAR, import_path VARCHAR, storage_path VARCHAR, recycle_bin_path VARCHAR, metadata_path VARCHAR, + auto_rotate bOOLEAN, + default_refimg_model INTEGER, default_scan_model INTEGER, default_threshold FLOAT, + face_size_limit INTEGER, + scheduled_import_scan INTEGER, scheduled_storage_scan INTEGER, + scheduled_bin_cleanup INTEGER, bin_cleanup_file_age INTEGER, + job_archive_age INTEGER, + CONSTRAINT pk_settings_id PRIMARY KEY(id), + CONSTRAINT fk_default_refimg_model FOREIGN KEY (default_refimg_model) REFERENCES ai_model(id), + CONSTRAINT fk_default_scan_model FOREIGN KEY (default_scan_model) REFERENCES ai_model(id) ); -create table PA_USER( - ID integer, - DN varchar unique, - DEFAULT_IMPORT_NOO varchar, - DEFAULT_STORAGE_NOO varchar, - DEFAULT_SEARCH_NOO varchar, - DEFAULT_GROUPING varchar(16), - DEFAULT_HOW_MANY integer, - DEFAULT_SIZE integer, - DEFAULT_IMPORT_FOLDERS Boolean, - DEFAULT_STORAGE_FOLDERS Boolean, - constraint PK_PA_USER_ID primary key(ID) ); +CREATE TABLE pa_user( + id INTEGER, + dn VARCHAR UNIQUE, + default_import_noo VARCHAR, + default_storage_noo VARCHAR, + default_search_noo VARCHAR, + default_grouping VARCHAR(16), + default_how_many INTEGER, + default_size INTEGER, + default_import_folders bOOLEAN, + default_storage_folders bOOLEAN, + CONSTRAINT pk_pa_user_id PRIMARY KEY(id) ); -- this is totally not 3rd normal form, but when I made it that, it was so complex, it was stupid -- so for the little data here, I'm deliberately doing a redundant data structure -create table PA_USER_STATE ( ID integer, PA_USER_DN varchar(128), PATH_TYPE varchar(16), - NOO varchar(16), GROUPING varchar(16), HOW_MANY integer, ST_OFFSET integer, SIZE integer, FOLDERS Boolean, - ROOT varchar, CWD varchar, - ORIG_PTYPE varchar, ORIG_SEARCH_TERM varchar, ORIG_URL varchar, - VIEW_EID integer, CURRENT integer, FIRST_EID integer, LAST_EID integer, NUM_ENTRIES integer, LAST_USED timestamptz, - constraint FK_PA_USER_DN foreign key (PA_USER_DN) references PA_USER(DN), - constraint PK_PA_USER_STATES_ID primary key(ID ) ); +CREATE TABLE pa_user_state ( id INTEGER, pa_user_dn VARCHAR(128), path_type VARCHAR(16), + noo VARCHAR(16), grouping VARCHAR(16), how_many INTEGER, st_offset INTEGER, size INTEGER, folders bOOLEAN, + root VARCHAR, cwd VARCHAR, + orig_ptype VARCHAR, orig_search_term VARCHAR, orig_url VARCHAR, + view_eid INTEGER, current INTEGER, first_eid INTEGER, last_eid INTEGER, num_entries INTEGER, last_used TIMESTAMPTZ, + CONSTRAINT fk_pa_user_dn FOREIGN KEY (pa_user_dn) REFERENCES pa_user(dn), + CONSTRAINT pk_pa_user_states_id PRIMARY KEY(id ) ); -create table FILE_TYPE ( ID integer, NAME varchar(32) unique, constraint PK_FILE_TYPE_ID primary key(ID) ); - -create table PATH_TYPE ( ID integer, NAME varchar(16) unique, constraint PK_PATH_TYPE_ID primary key(ID) ); - -create table PATH ( ID integer, TYPE_ID integer, PATH_PREFIX varchar(1024), NUM_FILES integer, - constraint PK_PATH_ID primary key(ID), - constraint FK_PATH_TYPE_TYPE_ID foreign key (TYPE_ID) references PATH_TYPE(ID) ); - -create table ENTRY( ID integer, NAME varchar(128), TYPE_ID integer, EXISTS_ON_FS boolean, - constraint PK_ENTRY_ID primary key(ID), - constraint FK_FILE_TYPE_TYPE_ID foreign key (TYPE_ID) references FILE_TYPE(ID) ); - -create table FILE ( EID integer, SIZE_MB integer, HASH varchar(34), THUMBNAIL varchar, FACES_CREATED_ON float, LAST_HASH_DATE float, LAST_AI_SCAN float, YEAR integer, MONTH integer, DAY integer, WOY integer, - constraint PK_FILE_ID primary key(EID), - constraint FK_FILE_ENTRY_ID foreign key (EID) references ENTRY(ID) ); - -create table DEL_FILE ( FILE_EID integer, ORIG_PATH_PREFIX varchar(1024), constraint PK_DEL_FILE_FILE_EID primary key (FILE_EID), - constraint FK_ENTRY_ID foreign key (FILE_EID) references FILE(EID) ); - -create table DIR ( EID integer, REL_PATH varchar(256), NUM_FILES integer, LAST_IMPORT_DATE float, - constraint PK_DIR_EID primary key(EID), - constraint FK_DIR_ENTRY_ID foreign key (EID) references ENTRY(ID) ); - -create table PATH_DIR_LINK ( path_id integer, dir_eid integer, - constraint PK_PDL_path_id_dir_eid primary key (path_id, dir_eid), - constraint FK_PDL_PATH_ID foreign key (PATH_ID) references PATH(ID), - constraint FK_PDL_DIR_EID foreign key (DIR_EID) references DIR(EID) ); - -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_EID foreign key (DIR_EID) references DIR(EID) ); - -create table PERSON ( ID integer default nextval('PERSON_ID_SEQ'), TAG varchar(48), FIRSTNAME varchar(48), SURNAME varchar(48), - constraint PK_PERSON_ID primary key(ID) ); -alter sequence PERSON_ID_SEQ owned by PERSON.ID; +CREATE TABLE query ( id INTEGER, path_type VARCHAR(16), noo VARCHAR(16), grouping VARCHAR(16), q_offset INTEGER, + folders BOOLEAN, root VARCHAR, cwd VARCHAR, search_term VARCHAR, current INTEGER, created TIMESTAMPTZ, + CONSTRAINT pk_query_id PRIMARY KEY(id ) ); -create table REFIMG ( ID integer, FNAME varchar(128), FACE bytea, ORIG_W integer, ORIG_H integer, - FACE_TOP integer, FACE_RIGHT integer, FACE_BOTTOM integer, FACE_LEFT integer, CREATED_ON float, THUMBNAIL varchar, MODEL_USED integer, - constraint PK_REFIMG_ID primary key(ID), - constraint FK_REFIMG_MODEL_USED foreign key (MODEL_USED) references AI_MODEL(ID) ); -alter sequence REFIMG_ID_SEQ owned by REFIMG.ID; +CREATE TABLE file_type ( id INTEGER, name VARCHAR(32) UNIQUE, CONSTRAINT pk_file_type_id PRIMARY KEY(id) ); -create table FACE( ID integer, FACE bytea, FACE_TOP integer, FACE_RIGHT integer, FACE_BOTTOM integer, FACE_LEFT integer, - W integer, H integer, constraint PK_FACE_ID primary key(ID) ); +CREATE TABLE path_type ( id INTEGER, name VARCHAR(16) UNIQUE, CONSTRAINT pk_path_type_id PRIMARY KEY(id) ); -create table FACE_FILE_LINK( FACE_ID integer, FILE_EID integer, MODEL_USED integer, - constraint PK_FFL_FACE_ID_FILE_ID primary key(FACE_ID, FILE_EID), - constraint FK_FFL_FACE_ID foreign key (FACE_ID) references FACE(ID) on delete cascade, - constraint FK_FFL_FILE_EID foreign key (FILE_EID) references FILE(EID), - constraint FK_FFL_MODEL_USED foreign key (MODEL_USED) references AI_MODEL(ID) ); +CREATE TABLE path ( id INTEGER, type_id INTEGER, path_prefix VARCHAR(1024), num_files INTEGER, + CONSTRAINT pk_path_id PRIMARY KEY(id), + CONSTRAINT fk_path_type_type_id FOREIGN KEY (type_id) REFERENCES path_type(id) ); -create table FACE_REFIMG_LINK( FACE_ID integer, REFIMG_ID integer, FACE_DISTANCE float, - constraint PK_FRL_FACE_ID_REFIMG_ID primary key(FACE_ID, REFIMG_ID), - constraint FK_FRL_FACE_ID foreign key (FACE_ID) references FACE(ID) on delete cascade, - constraint FK_FRL_REFIMG_ID foreign key (REFIMG_ID) references REFIMG(ID) ); +CREATE TABLE entry( id INTEGER, name VARCHAR(128), type_id INTEGER, exists_on_fs BOOLEAN, + CONSTRAINT pk_entry_id PRIMARY KEY(id), + CONSTRAINT fk_file_type_type_id FOREIGN KEY (type_id) REFERENCES file_type(id) ); -create table FACE_OVERRIDE_TYPE ( ID integer, NAME varchar unique, constraint PK_FACE_OVERRIDE_TYPE_ID primary key(ID) ); -insert into FACE_OVERRIDE_TYPE values ( (select nextval('FACE_OVERRIDE_TYPE_ID_SEQ')), 'Manual match to existing person' ); -insert into FACE_OVERRIDE_TYPE values ( (select nextval('FACE_OVERRIDE_TYPE_ID_SEQ')), 'Not a face' ); -insert into FACE_OVERRIDE_TYPE values ( (select nextval('FACE_OVERRIDE_TYPE_ID_SEQ')), 'Too young' ); -insert into FACE_OVERRIDE_TYPE values ( (select nextval('FACE_OVERRIDE_TYPE_ID_SEQ')), 'Ignore face' ); +CREATE TABLE file ( eid INTEGER, size_mb INTEGER, hash VARCHAR(34), thumbnail VARCHAR, faces_created_on FLOAT, last_hash_date FLOAT, last_ai_scan FLOAT, year INTEGER, month INTEGER, day INTEGER, woy INTEGER, + CONSTRAINT pk_file_id PRIMARY KEY(eid), + CONSTRAINT fk_file_entry_id FOREIGN KEY (eid) REFERENCES entry(id) ); + +CREATE TABLE del_file ( file_eid INTEGER, orig_path_prefix VARCHAR(1024), CONSTRAINT pk_del_file_file_eid PRIMARY KEY (file_eid), + CONSTRAINT fk_entry_id FOREIGN KEY (file_eid) REFERENCES file(eid) ); + +CREATE TABLE dir ( eid INTEGER, rel_path VARCHAR(256), num_files INTEGER, last_import_date FLOAT, + CONSTRAINT pk_dir_eid PRIMARY KEY(eid), + CONSTRAINT fk_dir_entry_id FOREIGN KEY (eid) REFERENCES entry(id) ); + +CREATE TABLE path_dir_link ( PATH_ID INTEGER, DIR_EID INTEGER, + CONSTRAINT pk_pdl_PATH_ID_DIR_EID PRIMARY KEY (PATH_ID, DIR_EID), + CONSTRAINT fk_pdl_path_id FOREIGN KEY (path_id) REFERENCES path(id), + CONSTRAINT fk_pdl_dir_eid FOREIGN KEY (dir_eid) REFERENCES dir(eid) ); + +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_eid FOREIGN KEY (dir_eid) REFERENCES dir(eid) ); + +CREATE TABLE person ( id INTEGER DEFAULT NEXTVAL('person_id_seq'), tag VARCHAR(48), firstname VARCHAR(48), surname VARCHAR(48), + CONSTRAINT pk_person_id PRIMARY KEY(id) ); +ALTER SEQUENCE person_id_seq OWNED BY person.id; + + +CREATE TABLE refimg ( id INTEGER, fname VARCHAR(128), face BYTEA, orig_w INTEGER, orig_h INTEGER, + face_top INTEGER, face_right INTEGER, face_bottom INTEGER, face_left INTEGER, created_on FLOAT, thumbnail VARCHAR, model_used INTEGER, + CONSTRAINT pk_refimg_id PRIMARY KEY(id), + CONSTRAINT fk_refimg_model_used FOREIGN KEY (model_used) REFERENCES ai_model(id) ); +ALTER SEQUENCE refimg_id_seq OWNED BY refimg.id; + +CREATE TABLE face( id INTEGER, face BYTEA, face_top INTEGER, face_right INTEGER, face_bottom INTEGER, face_left INTEGER, + w INTEGER, h INTEGER, CONSTRAINT pk_face_id PRIMARY KEY(id) ); + +CREATE TABLE face_file_link( face_id INTEGER, file_eid INTEGER, model_used INTEGER, + CONSTRAINT pk_ffl_face_id_file_id PRIMARY KEY(face_id, file_eid), + CONSTRAINT fk_ffl_face_id FOREIGN KEY (face_id) REFERENCES face(id) ON DELETE CASCADE, + CONSTRAINT fk_ffl_file_eid FOREIGN KEY (file_eid) REFERENCES file(eid), + CONSTRAINT fk_ffl_model_used FOREIGN KEY (model_used) REFERENCES ai_model(id) ); + +CREATE TABLE face_refimg_link( face_id INTEGER, refimg_id INTEGER, face_distance FLOAT, + CONSTRAINT pk_frl_face_id_refimg_id PRIMARY KEY(face_id, refimg_id), + CONSTRAINT fk_frl_face_id FOREIGN KEY (face_id) REFERENCES face(id) ON DELETE CASCADE, + CONSTRAINT fk_frl_refimg_id FOREIGN KEY (refimg_id) REFERENCES refimg(id) ); + +CREATE TABLE face_override_type ( id INTEGER, name VARCHAR UNIQUE, CONSTRAINT pk_face_override_type_id PRIMARY KEY(id) ); +INSERT INTO face_override_type VALUES ( (SELECT NEXTVAL('face_override_type_id_seq')), 'mANUAL MATCH TO EXISTING PERSON' ); +INSERT INTO face_override_type VALUES ( (SELECT NEXTVAL('face_override_type_id_seq')), 'nOT A FACE' ); +INSERT INTO face_override_type VALUES ( (SELECT NEXTVAL('face_override_type_id_seq')), 'tOO YOUNG' ); +INSERT INTO face_override_type VALUES ( (SELECT NEXTVAL('face_override_type_id_seq')), 'iGNORE FACE' ); -- keep non-redundant FACE because, when we rebuild data we may have a null FACE_ID, but still want to connect to this override -- from a previous AI pass... (would happen if we delete a file and then reimport/scan it), OR, more likely we change (say) a threshold, etc. -- any reordering of faces, generates new face_ids... (but if the face data was the same, then this override should stand) -create table FACE_NO_MATCH_OVERRIDE ( ID integer, FACE_ID integer, TYPE_ID integer, - constraint FK_FNMO_FACE_ID foreign key (FACE_ID) references FACE(ID), - constraint FK_FNMO_TYPE foreign key (TYPE_ID) references FACE_OVERRIDE_TYPE(ID), - constraint PK_FNMO_ID primary key(ID) ); +CREATE TABLE face_no_match_override ( id INTEGER, face_id INTEGER, type_id INTEGER, + CONSTRAINT fk_fnmo_face_id FOREIGN KEY (face_id) REFERENCES face(id), + CONSTRAINT fk_fnmo_type FOREIGN KEY (type_id) REFERENCES face_override_type(id), + CONSTRAINT pk_fnmo_id PRIMARY KEY(id) ); -- manual match goes to person not refimg, so on search, etc. we deal with this anomaly (via sql not ORM) -create table FACE_FORCE_MATCH_OVERRIDE ( ID integer, FACE_ID integer, PERSON_ID integer, constraint PK_FACE_FORCE_MATCH_OVERRIDE_ID primary key(ID) ); +CREATE TABLE face_force_match_override ( id INTEGER, face_id INTEGER, person_id INTEGER, CONSTRAINT pk_face_force_match_override_id PRIMARY KEY(id) ); -create table DISCONNECTED_NO_MATCH_OVERRIDE ( FACE bytea, TYPE_ID integer, - constraint FK_DNMO_TYPE_ID foreign key (TYPE_ID) references FACE_OVERRIDE_TYPE(ID), - constraint PK_DNMO_FACE primary key (FACE) ); +CREATE TABLE disconnected_no_match_override ( face BYTEA, type_id INTEGER, + CONSTRAINT fk_dnmo_type_id FOREIGN KEY (type_id) REFERENCES face_override_type(id), + CONSTRAINT pk_dnmo_face PRIMARY KEY (face) ); -create table DISCONNECTED_FORCE_MATCH_OVERRIDE ( FACE bytea, PERSON_ID integer, - constraint FK_DFMO_PERSON_ID foreign key (PERSON_ID) references PERSON(ID), - constraint PK_DFMO_FACE primary key (FACE) ); +CREATE TABLE disconnected_force_match_override ( face BYTEA, person_id INTEGER, + CONSTRAINT fk_dfmo_person_id FOREIGN KEY (person_id) REFERENCES person(id), + CONSTRAINT pk_dfmo_face PRIMARY KEY (face) ); -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 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_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) ); +CREATE TABLE job ( + id INTEGER, start_time TIMESTAMPTZ, last_update TIMESTAMPTZ, name VARCHAR(64), state VARCHAR(128), + 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, - constraint PK_JOBEXTRA_ID primary key(ID), constraint FK_JOBEXTRA_JOB_ID foreign key(JOB_ID) references JOB(ID) ); +CREATE TABLE jobextra ( id INTEGER, job_id INTEGER, name VARCHAR(32), value VARCHAR, + 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 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_FE_MESSAGE ( ID integer, JOB_ID integer, LEVEL varchar(16), MESSAGE varchar(8192), PERSISTENT boolean, CANT_CLOSE boolean, - 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 TABLE pa_job_manager_fe_message ( id INTEGER, job_id INTEGER, level VARCHAR(16), message VARCHAR(8192), persistent BOOLEAN, cant_close BOOLEAN, + 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) ); -- default data for types of paths -insert into PATH_TYPE values ( (select nextval('PATH_TYPE_ID_SEQ')), 'Import' ); -insert into PATH_TYPE values ( (select nextval('PATH_TYPE_ID_SEQ')), 'Storage' ); -insert into PATH_TYPE values ( (select nextval('PATH_TYPE_ID_SEQ')), 'Bin' ); -insert into PATH_TYPE values ( (select nextval('PATH_TYPE_ID_SEQ')), 'Metadata' ); +INSERT INTO path_type VALUES ( (SELECT NEXTVAL('path_type_id_seq')), 'iMPORT' ); +INSERT INTO path_type VALUES ( (SELECT NEXTVAL('path_type_id_seq')), 'sTORAGE' ); +INSERT INTO path_type VALUES ( (SELECT NEXTVAL('path_type_id_seq')), 'bIN' ); +INSERT INTO path_type VALUES ( (SELECT NEXTVAL('path_type_id_seq')), 'mETADATA' ); -- default data for types of files -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')), 'Directory' ); -insert into FILE_TYPE values ( (select nextval('FILE_TYPE_ID_SEQ')), 'Unknown' ); +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')), 'dIRECTORY' ); +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 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' ); -- DEV(ddp): -insert into SETTINGS ( id, base_path, import_path, storage_path, recycle_bin_path, metadata_path, auto_rotate, default_refimg_model, default_scan_model, default_threshold, face_size_limit, scheduled_import_scan, scheduled_storage_scan, scheduled_bin_cleanup, bin_cleanup_file_age, job_archive_age ) values ( (select nextval('SETTINGS_ID_SEQ')), '/home/ddp/src/photoassistant/', 'images_to_process/', 'photos/', '.pa_bin/', '.pa_metadata/', true, 1, 1, '0.55', 43, 1, 1, 7, 30, 3 ); +INSERT INTO settings ( ID, BASE_PATH, IMPORT_PATH, STORAGE_PATH, RECYCLE_BIN_PATH, METADATA_PATH, AUTO_ROTATE, DEFAULT_REFIMG_MODEL, DEFAULT_SCAN_MODEL, DEFAULT_THRESHOLD, FACE_SIZE_LIMIT, SCHEDULED_IMPORT_SCAN, SCHEDULED_STORAGE_SCAN, SCHEDULED_BIN_CLEANUP, BIN_CLEANUP_FILE_AGE, JOB_ARCHIVE_AGE ) VALUES ( (SELECT NEXTVAL('settings_id_seq')), '/HOME/DDP/SRC/PHOTOASSISTANT/', 'IMAGES_TO_PROCESS/', 'PHOTOS/', '.PA_BIN/', '.PA_METADATA/', TRUE, 1, 1, '0.55', 43, 1, 1, 7, 30, 3 ); -- DEV(cam): ---insert into SETTINGS ( id, base_path, import_path, storage_path, recycle_bin_path, metadata_path, auto_rotate, default_refimg_model, default_scan_model, default_threshold, face_size_limit, scheduled_import_scan, scheduled_storage_scan, scheduled_bin_cleanup, bin_cleanup_file_age, job_archive_age ) values ( (select nextval('SETTINGS_ID_SEQ')), 'c:/Users/cam/Desktop/code/python/photoassistant/', 'c:\images_to_process', 'photos/', '.pa_bin/', '.pa_metadata/', true, 1, 1, '0.55', 43, 1, 1, 7, 30, 3 ); +--INSERT INTO settings ( id, base_path, import_path, storage_path, recycle_bin_path, metadata_path, auto_rotate, default_refimg_model, default_scan_model, default_threshold, face_size_limit, scheduled_import_scan, scheduled_storage_scan, scheduled_bin_cleanup, bin_cleanup_file_age, job_archive_age ) VALUES ( (select nextval('SETTINGS_ID_SEQ')), 'c:/Users/cam/Desktop/code/python/photoassistant/', 'c:\images_to_process', 'photos/', '.pa_bin/', '.pa_metadata/', TRUE, 1, 1, '0.55', 43, 1, 1, 7, 30, 3 ); -- PROD: ---insert into SETTINGS ( id, base_path, import_path, storage_path, recycle_bin_path, metadata_path, auto_rotate, default_refimg_model, default_scan_model, default_threshold, face_size_limit, scheduled_import_scan, scheduled_storage_scan, scheduled_bin_cleanup, bin_cleanup_file_age, job_archive_age ) values ( (select nextval('SETTINGS_ID_SEQ')), '/export/docker/storage/', 'Camera_uploads/', 'photos/', '.pa_bin/', '.pa_metadata/', true, 1, 1, '0.55', 43, 1, 1, 7, 30, 4 ); +--INSERT INTO settings ( id, base_path, import_path, storage_path, recycle_bin_path, metadata_path, auto_rotate, default_refimg_model, default_scan_model, default_threshold, face_size_limit, scheduled_import_scan, scheduled_storage_scan, scheduled_bin_cleanup, bin_cleanup_file_age, job_archive_age ) VALUES ( (SELECT NEXTVAL('settings_id_seq')), '/export/docker/storage/', 'Camera_uploads/', 'photos/', '.pa_bin/', '.pa_metadata/', TRUE, 1, 1, '0.55', 43, 1, 1, 7, 30, 4 );