From dc4c541d46706199ca5faf10e298b521c03feecd Mon Sep 17 00:00:00 2001 From: Nick Davis Date: Thu, 29 Jun 2017 17:13:51 -0400 Subject: [PATCH] changed some schema table entries to allow NULL or set as NOT NULL --- .../datamodel/PostgresEamDbSettings.java | 16 ++++++++-------- .../datamodel/SqliteEamDbSettings.java | 19 ++++++++----------- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/CentralRepository/src/org/sleuthkit/autopsy/centralrepository/datamodel/PostgresEamDbSettings.java b/CentralRepository/src/org/sleuthkit/autopsy/centralrepository/datamodel/PostgresEamDbSettings.java index dcab3f6648..d53b26b504 100644 --- a/CentralRepository/src/org/sleuthkit/autopsy/centralrepository/datamodel/PostgresEamDbSettings.java +++ b/CentralRepository/src/org/sleuthkit/autopsy/centralrepository/datamodel/PostgresEamDbSettings.java @@ -313,11 +313,11 @@ public final class PostgresEamDbSettings { createCasesTable.append("org_id integer,"); createCasesTable.append("case_name text NOT NULL,"); createCasesTable.append("creation_date text NOT NULL,"); - createCasesTable.append("case_number text NOT NULL,"); - createCasesTable.append("examiner_name text NOT NULL,"); - createCasesTable.append("examiner_email text NOT NULL,"); - createCasesTable.append("examiner_phone text NOT NULL,"); - createCasesTable.append("notes text NOT NULL,"); + createCasesTable.append("case_number text,"); + createCasesTable.append("examiner_name text,"); + createCasesTable.append("examiner_email text,"); + createCasesTable.append("examiner_phone text,"); + createCasesTable.append("notes text,"); createCasesTable.append("foreign key (org_id) references organizations(id) ON UPDATE SET NULL ON DELETE SET NULL"); createCasesTable.append(")"); @@ -338,7 +338,7 @@ public final class PostgresEamDbSettings { StringBuilder createReferenceSetsTable = new StringBuilder(); createReferenceSetsTable.append("CREATE TABLE IF NOT EXISTS reference_sets ("); createReferenceSetsTable.append("id SERIAL PRIMARY KEY,"); - createReferenceSetsTable.append("org_id integer,"); + createReferenceSetsTable.append("org_id integer NOT NULL,"); createReferenceSetsTable.append("set_name text NOT NULL,"); createReferenceSetsTable.append("version text NOT NULL,"); createReferenceSetsTable.append("import_date text NOT NULL,"); @@ -354,7 +354,7 @@ public final class PostgresEamDbSettings { createReferenceTypesTableTemplate.append("reference_set_id integer,"); createReferenceTypesTableTemplate.append("value text NOT NULL,"); createReferenceTypesTableTemplate.append("known_status text NOT NULL,"); - createReferenceTypesTableTemplate.append("comment text NOT NULL,"); + createReferenceTypesTableTemplate.append("comment text,"); createReferenceTypesTableTemplate.append("CONSTRAINT %s_multi_unique UNIQUE (reference_set_id, value),"); createReferenceTypesTableTemplate.append("foreign key (reference_set_id) references reference_sets(id) ON UPDATE SET NULL ON DELETE SET NULL"); createReferenceTypesTableTemplate.append(")"); @@ -382,7 +382,7 @@ public final class PostgresEamDbSettings { createArtifactInstancesTableTemplate.append("value text NOT NULL,"); createArtifactInstancesTableTemplate.append("file_path text NOT NULL,"); createArtifactInstancesTableTemplate.append("known_status text NOT NULL,"); - createArtifactInstancesTableTemplate.append("comment text NOT NULL,"); + createArtifactInstancesTableTemplate.append("comment text,"); createArtifactInstancesTableTemplate.append("CONSTRAINT %s_multi_unique_ UNIQUE (case_id, data_source_id, value, file_path),"); createArtifactInstancesTableTemplate.append("foreign key (case_id) references cases(id) ON UPDATE SET NULL ON DELETE SET NULL,"); createArtifactInstancesTableTemplate.append("foreign key (data_source_id) references data_sources(id) ON UPDATE SET NULL ON DELETE SET NULL"); diff --git a/CentralRepository/src/org/sleuthkit/autopsy/centralrepository/datamodel/SqliteEamDbSettings.java b/CentralRepository/src/org/sleuthkit/autopsy/centralrepository/datamodel/SqliteEamDbSettings.java index 9d14a26c74..494f513ee9 100644 --- a/CentralRepository/src/org/sleuthkit/autopsy/centralrepository/datamodel/SqliteEamDbSettings.java +++ b/CentralRepository/src/org/sleuthkit/autopsy/centralrepository/datamodel/SqliteEamDbSettings.java @@ -251,11 +251,11 @@ public final class SqliteEamDbSettings { createCasesTable.append("org_id integer,"); createCasesTable.append("case_name text NOT NULL,"); createCasesTable.append("creation_date text NOT NULL,"); - createCasesTable.append("case_number text NOT NULL,"); - createCasesTable.append("examiner_name text NOT NULL,"); - createCasesTable.append("examiner_email text NOT NULL,"); - createCasesTable.append("examiner_phone text NOT NULL,"); - createCasesTable.append("notes text NOT NULL,"); + createCasesTable.append("case_number text,"); + createCasesTable.append("examiner_name text,"); + createCasesTable.append("examiner_email text,"); + createCasesTable.append("examiner_phone text,"); + createCasesTable.append("notes text,"); createCasesTable.append("CONSTRAINT case_uid_unique UNIQUE(case_uid) ON CONFLICT IGNORE,"); createCasesTable.append("foreign key (org_id) references organizations(id) ON UPDATE SET NULL ON DELETE SET NULL"); createCasesTable.append(")"); @@ -277,7 +277,7 @@ public final class SqliteEamDbSettings { StringBuilder createReferenceSetsTable = new StringBuilder(); createReferenceSetsTable.append("CREATE TABLE IF NOT EXISTS reference_sets ("); createReferenceSetsTable.append("id integer primary key autoincrement NOT NULL,"); - createReferenceSetsTable.append("org_id integer,"); + createReferenceSetsTable.append("org_id integer NOT NULL,"); createReferenceSetsTable.append("set_name text NOT NULL,"); createReferenceSetsTable.append("version text NOT NULL,"); createReferenceSetsTable.append("import_date text NOT NULL,"); @@ -293,7 +293,7 @@ public final class SqliteEamDbSettings { createReferenceTypesTableTemplate.append("reference_set_id integer,"); createReferenceTypesTableTemplate.append("value text NOT NULL,"); createReferenceTypesTableTemplate.append("known_status text NOT NULL,"); - createReferenceTypesTableTemplate.append("comment text NOT NULL,"); + createReferenceTypesTableTemplate.append("comment text,"); createReferenceTypesTableTemplate.append("CONSTRAINT %s_multi_unique UNIQUE(reference_set_id, value) ON CONFLICT IGNORE,"); createReferenceTypesTableTemplate.append("foreign key (reference_set_id) references reference_sets(id) ON UPDATE SET NULL ON DELETE SET NULL"); createReferenceTypesTableTemplate.append(")"); @@ -312,9 +312,6 @@ public final class SqliteEamDbSettings { createCorrelationTypesTable.append("CONSTRAINT correlation_types_names UNIQUE (display_name, db_table_name)"); createCorrelationTypesTable.append(")"); - // NOTE: there are API methods that query by one of: name, supported, or enabled. - // Only name is currently implemented, but, there will only be a small number - // of artifact_types, so there is no benefit to having any indices. // Each "%s" will be replaced with the relevant TYPE_instances table name. StringBuilder createArtifactInstancesTableTemplate = new StringBuilder(); createArtifactInstancesTableTemplate.append("CREATE TABLE IF NOT EXISTS %s ("); @@ -324,7 +321,7 @@ public final class SqliteEamDbSettings { createArtifactInstancesTableTemplate.append("value text NOT NULL,"); createArtifactInstancesTableTemplate.append("file_path text NOT NULL,"); createArtifactInstancesTableTemplate.append("known_status text NOT NULL,"); - createArtifactInstancesTableTemplate.append("comment text NOT NULL,"); + createArtifactInstancesTableTemplate.append("comment text,"); createArtifactInstancesTableTemplate.append("CONSTRAINT %s_multi_unique UNIQUE(case_id, data_source_id, value, file_path) ON CONFLICT IGNORE,"); createArtifactInstancesTableTemplate.append("foreign key (case_id) references cases(id) ON UPDATE SET NULL ON DELETE SET NULL,"); createArtifactInstancesTableTemplate.append("foreign key (data_source_id) references data_sources(id) ON UPDATE SET NULL ON DELETE SET NULL");