зеркало из https://github.com/golang/pkgsite.git
44 строки
1.8 KiB
PL/PgSQL
44 строки
1.8 KiB
PL/PgSQL
-- Copyright 2021 The Go Authors. All rights reserved.
|
|
-- Use of this source code is governed by a BSD-style
|
|
-- license that can be found in the LICENSE file.
|
|
|
|
BEGIN;
|
|
|
|
-- At this point, paths.big_id should be identical to paths.id for every row,
|
|
-- and all newly inserted rows.
|
|
|
|
-- First, point all the foreign-key constraints from id to big_id.
|
|
-- By specifying NOT VALID, the command completes quickly, because it skips validation.
|
|
-- We can do the validation later, outside this migration; see the next one.
|
|
|
|
ALTER TABLE symbol_history DROP CONSTRAINT "symbol_history_module_path_id_fkey";
|
|
ALTER TABLE symbol_history ADD CONSTRAINT "symbol_history_module_path_id_fkey"
|
|
FOREIGN KEY (module_path_id) REFERENCES paths(big_id) ON DELETE CASCADE
|
|
NOT VALID;
|
|
|
|
ALTER TABLE symbol_history DROP CONSTRAINT "symbol_history_package_path_id_fkey";
|
|
ALTER TABLE symbol_history ADD CONSTRAINT "symbol_history_package_path_id_fkey"
|
|
FOREIGN KEY (package_path_id) REFERENCES paths(big_id) ON DELETE CASCADE
|
|
NOT VALID;
|
|
|
|
ALTER TABLE symbol_search_documents DROP CONSTRAINT "symbol_search_documents_package_path_id_fkey";
|
|
ALTER TABLE symbol_search_documents ADD CONSTRAINT "symbol_search_documents_package_path_id_fkey"
|
|
FOREIGN KEY (package_path_id) REFERENCES paths(big_id) ON DELETE CASCADE
|
|
NOT VALID;
|
|
|
|
ALTER TABLE latest_module_versions DROP CONSTRAINT "latest_module_versions_module_path_id_fkey";
|
|
ALTER TABLE latest_module_versions ADD CONSTRAINT "latest_module_versions_module_path_id_fkey"
|
|
FOREIGN KEY (module_path_id) REFERENCES paths(big_id) ON DELETE CASCADE
|
|
NOT VALID;
|
|
|
|
-- Now we can rename big_id to id and give it the necessary properties.
|
|
|
|
ALTER TABLE paths DROP COLUMN id;
|
|
ALTER TABLE paths RENAME COLUMN big_id TO id;
|
|
ALTER TABLE paths ADD PRIMARY KEY (id);
|
|
ALTER TABLE paths ALTER COLUMN id ADD GENERATED ALWAYS AS IDENTITY;
|
|
|
|
DROP TRIGGER set_paths_big_id ON paths;
|
|
|
|
END;
|