From 46596d4b62cb53a7766079b6202ab77f15b15552 Mon Sep 17 00:00:00 2001 From: DJ Mountney Date: Mon, 24 Feb 2020 12:24:22 -0800 Subject: [PATCH 1/5] Add support for the structure.sql schema file --- gitlab-rails/scripts/wait-for-deps | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/gitlab-rails/scripts/wait-for-deps b/gitlab-rails/scripts/wait-for-deps index ea862f47b..c2390e48a 100755 --- a/gitlab-rails/scripts/wait-for-deps +++ b/gitlab-rails/scripts/wait-for-deps @@ -3,17 +3,30 @@ WAIT_FOR_TIMEOUT="${WAIT_FOR_TIMEOUT:-5}" # Configure for which schema to be verifying -SCHEMA_FILE=db/schema.rb +SCHEMA_FILE=db/structure.sql SCHEMA_RAKE_TASK=db:version +SCHEMA_FORMAT=sql + +# Retain support for older schema if needed +if [ ! -f "db/structure.sql" ]; then + SCHEMA_FILE=db/schema.rb + SCHEMA_FORMAT=ruby +fi + if [ "${DB_SCHEMA_TARGET,,}" == "geo" ]; then SCHEMA_FILE=ee/db/geo/schema.rb SCHEMA_RAKE_TASK=geo:db:version + SCHEMA_FORMAT=ruby fi cd /srv/gitlab # fetch the schema desired version directly from the source code -SCHEMA_VERSION=$(grep '(version: ' ${SCHEMA_FILE} | sed -e 's/_//g' -e 's/.* \([[:digit:]]\+\)) do/\1/') +if [ "${SCHEMA_FORMAT,,}" == "ruby" ]; then + SCHEMA_VERSION=$(grep '(version: ' ${SCHEMA_FILE} | sed -e 's/_//g' -e 's/.* \([[:digit:]]\+\)) do/\1/') +else + SCHEMA_VERSION=$(sed -n '/INSERT INTO "schema_migrations" (version) VALUES/,/;/p' ${SCHEMA_FILE} | grep -o "[[:digit:]]*" | awk -v max=0 '{if($1>max){max=$1}}END{print max}') +fi # Stash DB_SCHEMA_VERSION, so we can check it at exit. DB_SCHEMA_VERSION="0" -- GitLab From ddf0e0fd7241b4fc457161852939d85141daf3f3 Mon Sep 17 00:00:00 2001 From: DJ Mountney Date: Mon, 24 Feb 2020 12:24:37 -0800 Subject: [PATCH 2/5] Test against upstream structure branch --- ci_files/variables.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ci_files/variables.yml b/ci_files/variables.yml index 9e21102a1..76615f894 100644 --- a/ci_files/variables.yml +++ b/ci_files/variables.yml @@ -1,8 +1,8 @@ variables: GITLAB_ELASTICSEARCH_INDEXER_VERSION: "master" - GITLAB_VERSION: "master" - GITLAB_REF_SLUG: "master" - GITLAB_ASSETS_TAG: "master" + GITLAB_VERSION: "ab/structuresql" + GITLAB_REF_SLUG: "ab-structuresql" + GITLAB_ASSETS_TAG: "ab-structuresql" GITLAB_EXPORTER_VERSION: "6.1.0" GITLAB_SHELL_VERSION: "master" GITLAB_WORKHORSE_VERSION: "master" -- GitLab From 2458ea086b5b815171e7876803cc1d8ec88d6731 Mon Sep 17 00:00:00 2001 From: DJ Mountney Date: Mon, 24 Feb 2020 14:57:22 -0800 Subject: [PATCH 3/5] Change directory prior to testing for schema files --- gitlab-rails/scripts/wait-for-deps | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gitlab-rails/scripts/wait-for-deps b/gitlab-rails/scripts/wait-for-deps index c2390e48a..2e8ae8edb 100755 --- a/gitlab-rails/scripts/wait-for-deps +++ b/gitlab-rails/scripts/wait-for-deps @@ -7,6 +7,8 @@ SCHEMA_FILE=db/structure.sql SCHEMA_RAKE_TASK=db:version SCHEMA_FORMAT=sql +cd /srv/gitlab + # Retain support for older schema if needed if [ ! -f "db/structure.sql" ]; then SCHEMA_FILE=db/schema.rb @@ -19,8 +21,6 @@ if [ "${DB_SCHEMA_TARGET,,}" == "geo" ]; then SCHEMA_FORMAT=ruby fi -cd /srv/gitlab - # fetch the schema desired version directly from the source code if [ "${SCHEMA_FORMAT,,}" == "ruby" ]; then SCHEMA_VERSION=$(grep '(version: ' ${SCHEMA_FILE} | sed -e 's/_//g' -e 's/.* \([[:digit:]]\+\)) do/\1/') -- GitLab From 4bc8f27d39a3bdc41d71ebd8308f05ffe5adefa8 Mon Sep 17 00:00:00 2001 From: DJ Mountney Date: Tue, 25 Feb 2020 15:55:10 -0800 Subject: [PATCH 4/5] Switch to custom structure file --- ci_files/variables.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ci_files/variables.yml b/ci_files/variables.yml index 76615f894..5ce3d8a2c 100644 --- a/ci_files/variables.yml +++ b/ci_files/variables.yml @@ -1,8 +1,8 @@ variables: GITLAB_ELASTICSEARCH_INDEXER_VERSION: "master" - GITLAB_VERSION: "ab/structuresql" - GITLAB_REF_SLUG: "ab-structuresql" - GITLAB_ASSETS_TAG: "ab-structuresql" + GITLAB_VERSION: "dj/structuresql" + GITLAB_REF_SLUG: "dj-structuresql" + GITLAB_ASSETS_TAG: "dj-structuresql" GITLAB_EXPORTER_VERSION: "6.1.0" GITLAB_SHELL_VERSION: "master" GITLAB_WORKHORSE_VERSION: "master" -- GitLab From 5efef44a6db9f7ed148cd76f7d577ce2b9a07f46 Mon Sep 17 00:00:00 2001 From: DJ Mountney Date: Mon, 2 Mar 2020 17:19:22 -0800 Subject: [PATCH 5/5] Switch back to default variables --- ci_files/variables.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ci_files/variables.yml b/ci_files/variables.yml index 5ce3d8a2c..9e21102a1 100644 --- a/ci_files/variables.yml +++ b/ci_files/variables.yml @@ -1,8 +1,8 @@ variables: GITLAB_ELASTICSEARCH_INDEXER_VERSION: "master" - GITLAB_VERSION: "dj/structuresql" - GITLAB_REF_SLUG: "dj-structuresql" - GITLAB_ASSETS_TAG: "dj-structuresql" + GITLAB_VERSION: "master" + GITLAB_REF_SLUG: "master" + GITLAB_ASSETS_TAG: "master" GITLAB_EXPORTER_VERSION: "6.1.0" GITLAB_SHELL_VERSION: "master" GITLAB_WORKHORSE_VERSION: "master" -- GitLab