Skip to content

Commit cfb6f91

Browse files
authored
CMR-8379 - Create the Generic Document Table (#1606)
* CMR-8379 - Creating a new table for the storage of Generic Metadata as a CMR concept.
1 parent 8bbcb72 commit cfb6f91

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
(ns cmr.metadata-db.migrations.080-add-generic-document-table
2+
(:require
3+
[config.mdb-migrate-helper :as h]))
4+
5+
(defn- create-generic-documents-table
6+
[]
7+
(h/sql
8+
"CREATE TABLE METADATA_DB.cmr_generic_documents (
9+
id NUMBER,
10+
concept_id VARCHAR(255) NOT NULL,
11+
native_id VARCHAR(1030) NOT NULL,
12+
provider_id VARCHAR(10) NOT NULL,
13+
document_name VARCHAR(20) NOT NULL,
14+
schema VARCHAR(255) NOT NULL,
15+
format VARCHAR(255) NOT NULL,
16+
mime_type VARCHAR(255) NOT NULL,
17+
metadata BLOB NOT NULL,
18+
revision_id INTEGER DEFAULT 1 NOT NULL,
19+
revision_date TIMESTAMP WITH TIME ZONE DEFAULT SYSTIMESTAMP NOT NULL,
20+
created_at TIMESTAMP WITH TIME ZONE DEFAULT SYSTIMESTAMP NOT NULL,
21+
deleted INTEGER DEFAULT 0 NOT NULL,
22+
user_id VARCHAR(30),
23+
transaction_id INTEGER DEFAULT 0 NOT NULL,
24+
25+
CONSTRAINT generic_doc_pk PRIMARY KEY (id),
26+
27+
CONSTRAINT gen_doc_cid_rev UNIQUE (concept_id, revision_id)
28+
USING INDEX (create unique index generic_cri
29+
ON cmr_generic_documents (concept_id, revision_id)))"))
30+
31+
(defn- create-generic-document-indices
32+
[]
33+
;; Supports queries to find generic documents that have been deleted
34+
(h/sql
35+
"CREATE INDEX generic_documents_crdi
36+
ON METADATA_DB.cmr_generic_documents (concept_id, deleted)")
37+
38+
;; Supports queries to find specific generic document matching a native id
39+
;; and revision id within one provider
40+
(h/sql
41+
"CREATE INDEX generic_documents_native_id_rev
42+
ON METADATA_DB.cmr_generic_documents (provider_id, native_id, revision_id)"))
43+
44+
(defn- create-generic-document-sequence
45+
[]
46+
(h/sql "CREATE SEQUENCE cmr_generic_documents_seq"))
47+
48+
(defn up
49+
"Migrate the database up to version 80"
50+
[]
51+
(println "cmr.metadata-db.migration.080_add_generic_document_table up...")
52+
(create-generic-documents-table)
53+
(create-generic-document-indices)
54+
(create-generic-document-sequence))
55+
56+
(defn down "Migrate the database down from version 80"
57+
[]
58+
(println "cmr.metadata-db.migration.080_add_generic_document_table down...")
59+
(h/sql "DROP SEQUENCE METADATA_DB.cmr_generic_documents_seq")
60+
(h/sql "DROP TABLE METADATA_DB.cmr_generic_documents"))

0 commit comments

Comments
 (0)