Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <psteinhardt@gitlab.com>2022-02-03 11:36:59 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2022-02-03 11:36:59 +0300
commita76fe89ac67beb77493fdb506fc23213ab4cc32a (patch)
tree9a03c9b7a97e0c3fa0d55f24c19145c50b651714
parent2634a6d7077cd68a3f141ed5560162b6e696e9c9 (diff)
parentf7d0bd088a94a0da5c49f5fa64b7f03f4c112c31 (diff)
Merge branch 'sh-optimize-repository-id-migration-14-4' into '14-4-stable'14-4-stable
Optimize link repository ID migration (14.4) See merge request gitlab-org/gitaly!4244
-rw-r--r--internal/praefect/datastore/migrations/20210906145021_link_repository_id.go38
1 files changed, 10 insertions, 28 deletions
diff --git a/internal/praefect/datastore/migrations/20210906145021_link_repository_id.go b/internal/praefect/datastore/migrations/20210906145021_link_repository_id.go
index 8ee84d968..39060d230 100644
--- a/internal/praefect/datastore/migrations/20210906145021_link_repository_id.go
+++ b/internal/praefect/datastore/migrations/20210906145021_link_repository_id.go
@@ -6,40 +6,22 @@ func init() {
m := &migrate.Migration{
Id: "20210906145021_link_repository_id",
Up: []string{
- `-- +migrate StatementBegin
-DO $BODY$
- DECLARE
- count_val integer DEFAULT 0;
- BEGIN
- LOOP
- WITH updated_rows AS (
- UPDATE storage_repositories
- SET repository_id = sub.repository_id
- FROM (
- SELECT storage_repositories.virtual_storage, storage_repositories.storage, storage_repositories.relative_path, repositories.repository_id
- FROM storage_repositories JOIN repositories USING (virtual_storage, relative_path)
- WHERE storage_repositories.repository_id IS NULL
- LIMIT 14
- ) AS sub
- WHERE storage_repositories.virtual_storage = sub.virtual_storage
- AND storage_repositories.storage = sub.storage
- AND storage_repositories.relative_path = sub.relative_path
- RETURNING storage_repositories.repository_id
- )
- SELECT COUNT(*) INTO count_val FROM updated_rows;
- EXIT WHEN count_val = 0;
- END LOOP;
- END
-$BODY$
-LANGUAGE plpgsql
--- +migrate StatementEnd`,
+ "ALTER TABLE storage_repositories DISABLE TRIGGER notify_on_update",
+ `
+UPDATE storage_repositories
+SET repository_id = repositories.repository_id
+FROM repositories
+WHERE storage_repositories.virtual_storage = repositories.virtual_storage
+AND storage_repositories.relative_path = repositories.relative_path
+ `,
`
UPDATE repository_assignments
SET repository_id = repositories.repository_id
FROM repositories
WHERE repository_assignments.virtual_storage = repositories.virtual_storage
AND repository_assignments.relative_path = repositories.relative_path
- `,
+ `,
+ "ALTER TABLE storage_repositories ENABLE TRIGGER notify_on_update",
},
Down: []string{},
}