refactoring van de cmap structuren bijna compleet
This commit is contained in:
+37
-1
@@ -21,7 +21,7 @@
|
||||
;; Supporting functions
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(define current-schema-version 22)
|
||||
(define current-schema-version 23)
|
||||
|
||||
(define schema-1-statements
|
||||
(list
|
||||
@@ -1240,6 +1240,41 @@ SQL
|
||||
)
|
||||
(record-schema-version! db 22))
|
||||
|
||||
(define (migrate-22->23! db)
|
||||
(query-exec db
|
||||
#<<SQL
|
||||
CREATE TABLE IF NOT EXISTS cmap_renders (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
concept_map_id BIGINT NOT NULL REFERENCES concept_maps(id) ON DELETE CASCADE,
|
||||
document_version BIGINT NOT NULL,
|
||||
mime_type TEXT NOT NULL,
|
||||
content TEXT NOT NULL,
|
||||
created_at BIGINT NOT NULL,
|
||||
UNIQUE(concept_map_id, document_version)
|
||||
)
|
||||
SQL
|
||||
)
|
||||
(query-exec db
|
||||
"CREATE INDEX IF NOT EXISTS cmap_renders_map_idx ON cmap_renders(concept_map_id, document_version DESC)")
|
||||
(query-exec db
|
||||
#<<SQL
|
||||
INSERT INTO cmap_renders
|
||||
(concept_map_id, document_version, mime_type, content, created_at)
|
||||
SELECT id, current_version, 'image/svg+xml', document ->> 'renderedSvg', updated_at
|
||||
FROM concept_maps
|
||||
WHERE jsonb_typeof(document -> 'renderedSvg') = 'string'
|
||||
ON CONFLICT (concept_map_id, document_version) DO NOTHING
|
||||
SQL
|
||||
)
|
||||
(query-exec db
|
||||
#<<SQL
|
||||
UPDATE concept_maps
|
||||
SET document = document - 'renderedSvg'
|
||||
WHERE jsonb_typeof(document -> 'renderedSvg') = 'string'
|
||||
SQL
|
||||
)
|
||||
(record-schema-version! db 23))
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
; goal : Bring a racket-wiki PostgreSQL database to the current schema.
|
||||
; pre : db is a writable PostgreSQL connection and config identifies the
|
||||
@@ -1277,6 +1312,7 @@ SQL
|
||||
((= version 19) (migrate-19->20! db) (loop (database-schema-version db)))
|
||||
((= version 20) (migrate-20->21! db) (loop (database-schema-version db)))
|
||||
((= version 21) (migrate-21->22! db) (loop (database-schema-version db)))
|
||||
((= version 22) (migrate-22->23! db) (loop (database-schema-version db)))
|
||||
((> version current-schema-version)
|
||||
(error 'migrate-database!
|
||||
"database schema ~a is newer than this racket-wiki supports (~a)"
|
||||
|
||||
Reference in New Issue
Block a user