From 7754029e190eee6eb530c4c8dc45bec57095d92c Mon Sep 17 00:00:00 2001
From: Nick Thomas <nick@gitlab.com>
Date: Tue, 18 Jun 2019 11:25:13 +0100
Subject: [PATCH] Only support postgresql

MySQL support has been removed
---
 .gitlab-ci.yml                                |  1 -
 .gitlab/ci/rails.gitlab-ci.yml                | 69 -------------------
 .../52442-minimal-remove-mysql-support.yml    |  5 ++
 config/initializers/1_postgresql_only.rb      |  4 ++
 4 files changed, 9 insertions(+), 70 deletions(-)
 create mode 100644 changelogs/unreleased/52442-minimal-remove-mysql-support.yml
 create mode 100644 config/initializers/1_postgresql_only.rb

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 059b181bb1c..12aea899fc8 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,7 +1,6 @@
 image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.21-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.29"
 
 variables:
-  MYSQL_ALLOW_EMPTY_PASSWORD: "1"
   RAILS_ENV: "test"
   NODE_ENV: "test"
   SIMPLECOV: "true"
diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml
index 8534b15e16b..529a0de696b 100644
--- a/.gitlab/ci/rails.gitlab-ci.yml
+++ b/.gitlab/ci/rails.gitlab-ci.yml
@@ -10,11 +10,6 @@
       command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
     - name: redis:alpine
 
-.use-mysql: &use-mysql
-  services:
-    - mysql:5.7
-    - redis:alpine
-
 .only-schedules-master: &only-schedules-master
   only:
     - schedules@gitlab-org/gitlab-ce
@@ -94,10 +89,6 @@
   <<: *use-pg-10
   image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.6.3-golang-1.11-git-2.21-chrome-73.0-node-12.x-yarn-1.16-postgresql-10-graphicsmagick-1.3.29"
 
-.rspec-metadata-mysql: &rspec-metadata-mysql
-  <<: *rspec-metadata
-  <<: *use-mysql
-
 # DB migration, rollback, and seed jobs
 .db-migrate-reset: &db-migrate-reset
   extends: .dedicated-no-docs-and-no-qa-pull-cache-job
@@ -173,42 +164,6 @@ rspec system pg-10:
   <<: *only-schedules-master
   parallel: 24
 
-rspec unit mysql:
-  <<: *rspec-metadata-mysql
-  <<: *only-schedules-master
-  parallel: 20
-
-rspec integration mysql:
-  <<: *rspec-metadata-mysql
-  <<: *only-schedules-master
-  parallel: 6
-
-rspec system mysql:
-  <<: *rspec-metadata-mysql
-  <<: *only-schedules-master
-  parallel: 24
-
-.rspec-mysql-on-demand: &rspec-mysql-on-demand
-  only:
-    variables:
-      - $CI_COMMIT_MESSAGE =~ /\[run mysql\]/i
-      - $CI_COMMIT_REF_NAME =~ /mysql/
-
-rspec unit mysql on-demand:
-  <<: *rspec-metadata-mysql
-  <<: *rspec-mysql-on-demand
-  parallel: 20
-
-rspec integration mysql on-demand:
-  <<: *rspec-metadata-mysql
-  <<: *rspec-mysql-on-demand
-  parallel: 6
-
-rspec system mysql on-demand:
-  <<: *rspec-metadata-mysql
-  <<: *rspec-mysql-on-demand
-  parallel: 24
-
 rspec-fast-spec-helper:
   <<: *rspec-metadata-pg
   script:
@@ -226,12 +181,6 @@ rspec quarantine pg:
   <<: *rspec-quarantine
   allow_failure: true
 
-rspec quarantine mysql:
-  <<: *rspec-metadata-mysql
-  <<: *rspec-quarantine
-  <<: *only-schedules-master
-  allow_failure: true
-
 static-analysis:
   extends: .dedicated-no-docs-no-db-pull-cache-job
   dependencies:
@@ -281,10 +230,6 @@ db:migrate:reset-pg:
   <<: *db-migrate-reset
   <<: *use-pg
 
-db:migrate:reset-mysql:
-  <<: *db-migrate-reset
-  <<: *use-mysql
-
 db:check-schema-pg:
   <<: *db-migrate-reset
   <<: *use-pg
@@ -295,10 +240,6 @@ migration:path-pg:
   <<: *migration-paths
   <<: *use-pg
 
-migration:path-mysql:
-  <<: *migration-paths
-  <<: *use-mysql
-
 .db-rollback: &db-rollback
   extends: .dedicated-no-docs-and-no-qa-pull-cache-job
   script:
@@ -311,22 +252,12 @@ db:rollback-pg:
   <<: *db-rollback
   <<: *use-pg
 
-db:rollback-mysql:
-  <<: *db-rollback
-  <<: *use-mysql
-
 gitlab:setup-pg:
   <<: *gitlab-setup
   <<: *use-pg
   dependencies:
     - setup-test-env
 
-gitlab:setup-mysql:
-  <<: *gitlab-setup
-  <<: *use-mysql
-  dependencies:
-    - setup-test-env
-
 coverage:
   # Don't include dedicated-no-docs-no-db-pull-cache-job here since we need to
   # download artifacts from all the rspec jobs instead of from setup-test-env only
diff --git a/changelogs/unreleased/52442-minimal-remove-mysql-support.yml b/changelogs/unreleased/52442-minimal-remove-mysql-support.yml
new file mode 100644
index 00000000000..f1a50657383
--- /dev/null
+++ b/changelogs/unreleased/52442-minimal-remove-mysql-support.yml
@@ -0,0 +1,5 @@
+---
+title: Remove MySQL support
+merge_request: 29790
+author:
+type: removed
diff --git a/config/initializers/1_postgresql_only.rb b/config/initializers/1_postgresql_only.rb
new file mode 100644
index 00000000000..be771bebf47
--- /dev/null
+++ b/config/initializers/1_postgresql_only.rb
@@ -0,0 +1,4 @@
+# frozen_string_literal: true
+
+raise "PostgreSQL is the only supported database from GitLab 12.1" unless
+  Gitlab::Database.postgresql?
-- 
2.30.9