Upgrade from 12.9.2 to 12.10 gives many errors with external PostgreSQL on CentOS 7
Summary
GitLab doesn't keep the internal Postgres executables up-to-date, if you use an external Postgres instance. Newer versions are installed, but the symlinks to most executables are left on the initial version.
Steps to reproduce
Install 2018 version of Omnibus GitLab with 9.6 version of bundled Postgres, and switch to external Postgres v11 via /etc/gitlab/gitlab.rb
like so:
# Disable the built-in Postgres
postgresql['enable'] = false
# Fill in the connection details for database.yml
gitlab_rails['db_adapter'] = 'postgresql'
gitlab_rails['db_encoding'] = 'utf8'
gitlab_rails['db_host'] = '127.0.0.1'
gitlab_rails['db_port'] = 5432
gitlab_rails['db_database'] = "gitlabhq_production"
gitlab_rails['db_username'] = 'gitlab'
gitlab_rails['db_password'] = '***'
Create /etc/gitlab/skip-auto-reconfigure
and run gitlab-ctl reconfigure
manually (or via yum plugin) for upgrades to work.
What is the current bug behavior?
gitlab-ctl reconfigure
worked fine until 12.10, which errors out because the pg_* versions are too old (9.6):
yum update output
[root@git ~]# yum update
Loaded plugins: fastestmirror, post-transaction-actions
Loading mirror speeds from cached hostfile
* base: centos.lonyai.com
* extras: centos.lonyai.com
* updates: centos.lonyai.com
gitlab_gitlab-ce/x86_64/signature | 862 B 00:00:00
Retrieving key from https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
Importing GPG key 0x51312F3F:
Userid : "GitLab B.V. (package repository signing key) <packages@gitlab.com>"
Fingerprint: f640 3f65 44a3 8863 daa0 b6e0 3f01 618a 5131 2f3f
From : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
Is this ok [y/N]: y
Retrieving key from https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
gitlab_gitlab-ce/x86_64/signature | 1.0 kB 00:00:01 !!!
gitlab_gitlab-ce-source/signature | 862 B 00:00:00
Retrieving key from https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
Importing GPG key 0x51312F3F:
Userid : "GitLab B.V. (package repository signing key) <packages@gitlab.com>"
Fingerprint: f640 3f65 44a3 8863 daa0 b6e0 3f01 618a 5131 2f3f
From : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
Is this ok [y/N]: y
Retrieving key from https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
gitlab_gitlab-ce-source/signature | 951 B 00:00:01 !!!
(1/2): gitlab_gitlab-ce-source/primary | 175 B 00:00:01
(2/2): gitlab_gitlab-ce/x86_64/primary | 2.1 MB 00:00:01
gitlab_gitlab-ce 578/578
Resolving Dependencies
--> Running transaction check
---> Package gitlab-ce.x86_64 0:12.9.2-ce.0.el7 will be updated
---> Package gitlab-ce.x86_64 0:12.10.0-ce.0.el7 will be an update
---> Package nginx.x86_64 1:1.16.1-1.el7.ngx will be updated
---> Package nginx.x86_64 1:1.18.0-1.el7.ngx will be an update
--> Finished Dependency Resolution
Dependencies Resolved
============================================================================================================================================
Package Arch Version Repository Size
============================================================================================================================================
Updating:
gitlab-ce x86_64 12.10.0-ce.0.el7 gitlab_gitlab-ce 760 M
nginx x86_64 1:1.18.0-1.el7.ngx nginx 772 k
Transaction Summary
============================================================================================================================================
Upgrade 2 Packages
Total download size: 760 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/2): nginx-1.18.0-1.el7.ngx.x86_64.rpm | 772 kB 00:00:01
(2/2): gitlab-ce-12.10.0-ce.0.el7.x86_64.rpm | 760 MB 00:00:30
--------------------------------------------------------------------------------------------------------------------------------------------
Total 25 MB/s | 760 MB 00:00:30
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
gitlab preinstall:
gitlab preinstall: This node does not appear to be running a database
gitlab preinstall: Skipping version check, if you think this is an error exit now
gitlab preinstall:
Updating : gitlab-ce-12.10.0-ce.0.el7.x86_64 1/4
Updating : 1:nginx-1.18.0-1.el7.ngx.x86_64 2/4
Cleanup : gitlab-ce-12.9.2-ce.0.el7.x86_64 3/4
Cleanup : 1:nginx-1.16.1-1.el7.ngx.x86_64 4/4
Checking PostgreSQL executables:Starting Chef Client, version 14.14.29
resolving cookbooks for run list: ["gitlab::config", "postgresql::bin"]
Synchronizing Cookbooks:
- gitlab (0.0.1)
- postgresql (0.1.0)
- package (0.1.0)
- redis (0.1.0)
- monitoring (0.1.0)
- registry (0.1.0)
- mattermost (0.1.0)
- gitaly (0.1.0)
- consul (0.1.0)
- praefect (0.1.0)
- letsencrypt (0.1.0)
- nginx (0.1.0)
- runit (4.3.0)
- acme (4.1.1)
- crond (0.1.0)
Installing Cookbook Gems:
Compiling Cookbooks...
Converging 2 resources
Recipe: postgresql::bin
* ruby_block[check_postgresql_version] action run (skipped due to not_if)
* ruby_block[Link postgresql bin files to the correct version] action run
- execute the ruby block Link postgresql bin files to the correct version
Running handlers:
Running handlers complete
Chef Client finished, 1/2 resources updated in 30 seconds
Checking PostgreSQL executables: OK
Checking if Grafana needs to be reset:
Status file found. Grafana is not vulnerable. Skipping reset.
Checking if Grafana needs to be reset: OK
Found /etc/gitlab/skip-auto-reconfigure, exiting...
_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __ \
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/
Upgrade complete! If your GitLab server is misbehaving try running
sudo gitlab-ctl restart
before anything else.
If you need to roll back to the previous version you can use the database
backup made during the upgrade (scroll up for the filename).
GitLab now ships with a newer version of PostgreSQL (11.7). To upgrade, please see:
https://docs.gitlab.com/omnibus/settings/database.html#upgrade-packaged-postgresql-server
Running post transaction command: /bin/systemctl restart nginx.service
Running post transaction command: /usr/local/sbin/gitlab-post-update
Starting Chef Client, version 14.14.29
resolving cookbooks for run list: ["gitlab"]
Synchronizing Cookbooks:
- gitlab (0.0.1)
- package (0.1.0)
- redis (0.1.0)
- postgresql (0.1.0)
- registry (0.1.0)
- monitoring (0.1.0)
- mattermost (0.1.0)
- consul (0.1.0)
- gitaly (0.1.0)
- praefect (0.1.0)
- nginx (0.1.0)
- letsencrypt (0.1.0)
- runit (4.3.0)
- acme (4.1.1)
- crond (0.1.0)
Installing Cookbook Gems:
Compiling Cookbooks...
Recipe: gitlab::default
* directory[/etc/gitlab] action create (up to date)
Converging 253 resources
* directory[/etc/gitlab] action create (up to date)
* directory[Create /var/opt/gitlab] action create (up to date)
* directory[Create /var/log/gitlab] action create (up to date)
* directory[/opt/gitlab/embedded/etc] action create (up to date)
* template[/opt/gitlab/embedded/etc/gitconfig] action create
- update content in file /opt/gitlab/embedded/etc/gitconfig from e3db82 to 147a3a
--- /opt/gitlab/embedded/etc/gitconfig 2019-10-24 19:42:40.330826098 +0200
+++ /opt/gitlab/embedded/etc/.chef-gitconfig20200424-225089-19wejrx 2020-04-24 13:44:35.394026344 +0200
@@ -1,5 +1,6 @@
[pack]
threads = 1
+useSparse = true
[receive]
fsckObjects = true
advertisePushOptions = true
@@ -12,4 +13,6 @@
[core]
alternateRefsCommand="exit 0 #"
fsyncObjectFiles = true
+[fetch]
+ writeCommitGraph = true
- restore selinux security context
Recipe: gitlab::web-server
* account[Webserver user and group] action create
* group[Webserver user and group] action create (up to date)
* linux_user[Webserver user and group] action create (up to date)
(up to date)
Recipe: gitlab::users
* directory[/var/opt/gitlab] action create (up to date)
* account[GitLab user and group] action create
* group[GitLab user and group] action create (up to date)
* linux_user[GitLab user and group] action create (up to date)
(up to date)
* template[/var/opt/gitlab/.gitconfig] action create (up to date)
* directory[/var/opt/gitlab/.bundle] action create (up to date)
Recipe: gitlab::gitlab-shell
* storage_directory[/var/opt/gitlab/.ssh] action create
* ruby_block[directory resource: /var/opt/gitlab/.ssh] action run (skipped due to not_if)
(up to date)
* directory[/var/log/gitlab/gitlab-shell/] action create (up to date)
* directory[/var/opt/gitlab/gitlab-shell] action create (up to date)
* templatesymlink[Create a config.yml and create a symlink to Rails root] action create
* template[/var/opt/gitlab/gitlab-shell/config.yml] action create (up to date)
* link[Link /opt/gitlab/embedded/service/gitlab-shell/config.yml to /var/opt/gitlab/gitlab-shell/config.yml] action create (up to date)
(up to date)
* link[/opt/gitlab/embedded/service/gitlab-shell/.gitlab_shell_secret] action create (up to date)
* file[/var/opt/gitlab/.ssh/authorized_keys] action create_if_missing (up to date)
Recipe: gitlab::gitlab-rails
* storage_directory[/var/opt/gitlab/git-data] action create
* ruby_block[directory resource: /var/opt/gitlab/git-data] action run (skipped due to not_if)
(up to date)
* storage_directory[/var/opt/gitlab/git-data/repositories] action create
* ruby_block[directory resource: /var/opt/gitlab/git-data/repositories] action run (skipped due to not_if)
(up to date)
* storage_directory[/var/opt/gitlab/gitlab-rails/shared] action create
* ruby_block[directory resource: /var/opt/gitlab/gitlab-rails/shared] action run (skipped due to not_if)
(up to date)
* storage_directory[/var/opt/gitlab/gitlab-rails/shared/artifacts] action create
* ruby_block[directory resource: /var/opt/gitlab/gitlab-rails/shared/artifacts] action run (skipped due to not_if)
(up to date)
* storage_directory[/var/opt/gitlab/gitlab-rails/shared/external-diffs] action create
* ruby_block[directory resource: /var/opt/gitlab/gitlab-rails/shared/external-diffs] action run (skipped due to not_if)
(up to date)
* storage_directory[/var/opt/gitlab/gitlab-rails/shared/lfs-objects] action create
* ruby_block[directory resource: /var/opt/gitlab/gitlab-rails/shared/lfs-objects] action run (skipped due to not_if)
(up to date)
* storage_directory[/var/opt/gitlab/gitlab-rails/shared/packages] action create
* ruby_block[directory resource: /var/opt/gitlab/gitlab-rails/shared/packages] action run (skipped due to not_if)
(up to date)
* storage_directory[/var/opt/gitlab/gitlab-rails/shared/dependency_proxy] action create
* ruby_block[directory resource: /var/opt/gitlab/gitlab-rails/shared/dependency_proxy] action run (skipped due to not_if)
(up to date)
* storage_directory[/var/opt/gitlab/gitlab-rails/shared/terraform_state] action create
* ruby_block[directory resource: /var/opt/gitlab/gitlab-rails/shared/terraform_state] action run
- execute the ruby block directory resource: /var/opt/gitlab/gitlab-rails/shared/terraform_state
* storage_directory[/var/opt/gitlab/gitlab-rails/uploads] action create
* ruby_block[directory resource: /var/opt/gitlab/gitlab-rails/uploads] action run (skipped due to not_if)
(up to date)
* storage_directory[/var/opt/gitlab/gitlab-ci/builds] action create
* ruby_block[directory resource: /var/opt/gitlab/gitlab-ci/builds] action run (skipped due to not_if)
(up to date)
* storage_directory[/var/opt/gitlab/gitlab-rails/shared/cache] action create
* ruby_block[directory resource: /var/opt/gitlab/gitlab-rails/shared/cache] action run (skipped due to not_if)
(up to date)
* storage_directory[/var/opt/gitlab/gitlab-rails/shared/tmp] action create
* ruby_block[directory resource: /var/opt/gitlab/gitlab-rails/shared/tmp] action run (skipped due to not_if)
(up to date)
* storage_directory[/opt/gitlab/embedded/service/gitlab-rails/public] action create (skipped due to only_if)
* storage_directory[/var/opt/gitlab/gitlab-rails/shared/pages] action create
* ruby_block[directory resource: /var/opt/gitlab/gitlab-rails/shared/pages] action run (skipped due to not_if)
(up to date)
* directory[create /var/opt/gitlab/gitlab-rails/etc] action create (up to date)
* directory[create /opt/gitlab/etc/gitlab-rails] action create (up to date)
* directory[create /var/opt/gitlab/gitlab-rails/working] action create (up to date)
* directory[create /var/opt/gitlab/gitlab-rails/tmp] action create (up to date)
* directory[create /var/opt/gitlab/gitlab-rails/upgrade-status] action create (up to date)
* directory[create /var/log/gitlab/gitlab-rails] action create (up to date)
* storage_directory[/var/opt/gitlab/backups] action create
* ruby_block[directory resource: /var/opt/gitlab/backups] action run (skipped due to not_if)
(up to date)
* directory[/var/opt/gitlab/gitlab-rails] action create (up to date)
* directory[/var/opt/gitlab/gitlab-ci] action create (up to date)
* file[/var/opt/gitlab/gitlab-rails/etc/gitlab-registry.key] action create (skipped due to only_if)
* template[/opt/gitlab/etc/gitlab-rails/gitlab-rails-rc] action create (up to date)
* file[/opt/gitlab/embedded/service/gitlab-rails/.secret] action delete (up to date)
* file[/var/opt/gitlab/gitlab-rails/etc/secret] action delete (up to date)
* templatesymlink[Create a database.yml and create a symlink to Rails root] action create
* template[/var/opt/gitlab/gitlab-rails/etc/database.yml] action create
- update content in file /var/opt/gitlab/gitlab-rails/etc/database.yml from 3979a8 to 8d9eda
--- /var/opt/gitlab/gitlab-rails/etc/database.yml 2020-02-23 15:09:34.654806695 +0100
+++ /var/opt/gitlab/gitlab-rails/etc/.chef-database20200424-225089-fsjp9x.yml 2020-04-24 13:44:36.663020495 +0200
@@ -21,4 +21,6 @@
prepared_statements: false
statement_limit: 1000
fdw:
+ variables:
+ statement_timeout: 60000
- restore selinux security context
* link[Link /opt/gitlab/embedded/service/gitlab-rails/config/database.yml to /var/opt/gitlab/gitlab-rails/etc/database.yml] action create (up to date)
* templatesymlink[Create a secrets.yml and create a symlink to Rails root] action create
* template[/var/opt/gitlab/gitlab-rails/etc/secrets.yml] action create (up to date)
* link[Link /opt/gitlab/embedded/service/gitlab-rails/config/secrets.yml to /var/opt/gitlab/gitlab-rails/etc/secrets.yml] action create (up to date)
(up to date)
* templatesymlink[Create a resque.yml and create a symlink to Rails root] action create
* template[/var/opt/gitlab/gitlab-rails/etc/resque.yml] action create (up to date)
* link[Link /opt/gitlab/embedded/service/gitlab-rails/config/resque.yml to /var/opt/gitlab/gitlab-rails/etc/resque.yml] action create (up to date)
(up to date)
* templatesymlink[Create a cable.yml and create a symlink to Rails root] action create
* template[/var/opt/gitlab/gitlab-rails/etc/cable.yml] action create
- create new file /var/opt/gitlab/gitlab-rails/etc/cable.yml
- update content in file /var/opt/gitlab/gitlab-rails/etc/cable.yml from none to 551667
--- /var/opt/gitlab/gitlab-rails/etc/cable.yml 2020-04-24 13:44:36.744020121 +0200
+++ /var/opt/gitlab/gitlab-rails/etc/.chef-cable20200424-225089-hlamek.yml 2020-04-24 13:44:36.743020126 +0200
@@ -1 +1,4 @@
+production:
+ adapter: redis
+ url: unix:/var/opt/gitlab/redis/redis.socket
- change mode from '' to '0644'
- change owner from '' to 'root'
- change group from '' to 'root'
- restore selinux security context
* link[Link /opt/gitlab/embedded/service/gitlab-rails/config/cable.yml to /var/opt/gitlab/gitlab-rails/etc/cable.yml] action create
- create symlink at /opt/gitlab/embedded/service/gitlab-rails/config/cable.yml to /var/opt/gitlab/gitlab-rails/etc/cable.yml
* templatesymlink[Create a redis.cache.yml and create a symlink to Rails root] action create (skipped due to not_if)
* file[/opt/gitlab/embedded/service/gitlab-rails/config/redis.cache.yml] action delete (up to date)
* file[/var/opt/gitlab/gitlab-rails/etc/redis.cache.yml] action delete (up to date)
* templatesymlink[Create a redis.queues.yml and create a symlink to Rails root] action create (skipped due to not_if)
* file[/opt/gitlab/embedded/service/gitlab-rails/config/redis.queues.yml] action delete (up to date)
* file[/var/opt/gitlab/gitlab-rails/etc/redis.queues.yml] action delete (up to date)
* templatesymlink[Create a redis.shared_state.yml and create a symlink to Rails root] action create (skipped due to not_if)
* file[/opt/gitlab/embedded/service/gitlab-rails/config/redis.shared_state.yml] action delete (up to date)
* file[/var/opt/gitlab/gitlab-rails/etc/redis.shared_state.yml] action delete (up to date)
* templatesymlink[Create a smtp_settings.rb and create a symlink to Rails root] action create
* template[/var/opt/gitlab/gitlab-rails/etc/smtp_settings.rb] action create (up to date)
* link[Link /opt/gitlab/embedded/service/gitlab-rails/config/initializers/smtp_settings.rb to /var/opt/gitlab/gitlab-rails/etc/smtp_settings.rb] action create (up to date)
(up to date)
* templatesymlink[Create a gitlab.yml and create a symlink to Rails root] action create
* template[/var/opt/gitlab/gitlab-rails/etc/gitlab.yml] action create
- update content in file /var/opt/gitlab/gitlab-rails/etc/gitlab.yml from 19b1aa to 9e246a
--- /var/opt/gitlab/gitlab-rails/etc/gitlab.yml 2020-04-05 14:33:28.964183634 +0200
+++ /var/opt/gitlab/gitlab-rails/etc/.chef-gitlab20200424-225089-1d13q28.yml 2020-04-24 13:44:36.810019817 +0200
@@ -221,6 +221,16 @@
remote_directory: "dependency_proxy"
connection: {}
+ ## Terraform state
+ terraform_state:
+ enabled:
+ # The location where terraform state files are stored (default: shared/terraform_state).
+ storage_path: /var/opt/gitlab/gitlab-rails/shared/terraform_state
+ object_store:
+ enabled: false
+ remote_directory: "terraform_state"
+ connection: {}
+
## Container Registry
registry:
enabled: false
- restore selinux security context
* link[Link /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml to /var/opt/gitlab/gitlab-rails/etc/gitlab.yml] action create (up to date)
* templatesymlink[Create a rack_attack.rb and create a symlink to Rails root] action create
* template[/var/opt/gitlab/gitlab-rails/etc/rack_attack.rb] action create (up to date)
* link[Link /opt/gitlab/embedded/service/gitlab-rails/config/initializers/rack_attack.rb to /var/opt/gitlab/gitlab-rails/etc/rack_attack.rb] action create (up to date)
(up to date)
* templatesymlink[Create a gitlab_workhorse_secret and create a symlink to Rails root] action create
* template[/var/opt/gitlab/gitlab-rails/etc/gitlab_workhorse_secret] action create (up to date)
* link[Link /opt/gitlab/embedded/service/gitlab-rails/.gitlab_workhorse_secret to /var/opt/gitlab/gitlab-rails/etc/gitlab_workhorse_secret] action create (up to date)
(up to date)
* templatesymlink[Create a gitlab_shell_secret and create a symlink to Rails root] action create
* template[/var/opt/gitlab/gitlab-rails/etc/gitlab_shell_secret] action create (up to date)
* link[Link /opt/gitlab/embedded/service/gitlab-rails/.gitlab_shell_secret to /var/opt/gitlab/gitlab-rails/etc/gitlab_shell_secret] action create (up to date)
(up to date)
* templatesymlink[Create a gitlab_pages_secret and create a symlink to Rails root] action create
* template[/var/opt/gitlab/gitlab-rails/etc/gitlab_pages_secret] action create (up to date)
* link[Link /opt/gitlab/embedded/service/gitlab-rails/.gitlab_pages_secret to /var/opt/gitlab/gitlab-rails/etc/gitlab_pages_secret] action create (up to date)
(up to date)
* link[/opt/gitlab/embedded/service/gitlab-rails/config/initializers/relative_url.rb] action delete (up to date)
* file[/var/opt/gitlab/gitlab-rails/etc/relative_url.rb] action delete (up to date)
* env_dir[/opt/gitlab/etc/gitlab-rails/env] action create
* directory[/opt/gitlab/etc/gitlab-rails/env] action create (up to date)
* file[/opt/gitlab/etc/gitlab-rails/env/HOME] action create (up to date)
* file[/opt/gitlab/etc/gitlab-rails/env/RAILS_ENV] action create (up to date)
* file[/opt/gitlab/etc/gitlab-rails/env/LD_PRELOAD] action create (up to date)
* file[/opt/gitlab/etc/gitlab-rails/env/SIDEKIQ_MEMORY_KILLER_MAX_RSS] action create (up to date)
* file[/opt/gitlab/etc/gitlab-rails/env/BUNDLE_GEMFILE] action create (up to date)
* file[/opt/gitlab/etc/gitlab-rails/env/PATH] action create (up to date)
* file[/opt/gitlab/etc/gitlab-rails/env/ICU_DATA] action create (up to date)
* file[/opt/gitlab/etc/gitlab-rails/env/PYTHONPATH] action create (up to date)
* file[/opt/gitlab/etc/gitlab-rails/env/EXECJS_RUNTIME] action create (up to date)
* file[/opt/gitlab/etc/gitlab-rails/env/TZ] action create (up to date)
(up to date)
* link[/opt/gitlab/embedded/service/gitlab-rails/tmp] action create (up to date)
* link[/opt/gitlab/embedded/service/gitlab-rails/public/uploads] action create (up to date)
* link[/opt/gitlab/embedded/service/gitlab-rails/log] action create (up to date)
* link[/var/log/gitlab/gitlab-rails/sidekiq.log] action create (skipped due to not_if)
* file[/opt/gitlab/embedded/service/gitlab-rails/db/structure.sql] action create
- change owner from 'root' to 'git'
- restore selinux security context
* remote_file[/var/opt/gitlab/gitlab-rails/VERSION] action create
- update content in file /var/opt/gitlab/gitlab-rails/VERSION from 0d3f7c to 598142
--- /var/opt/gitlab/gitlab-rails/VERSION 2020-04-05 14:33:29.157181707 +0200
+++ /var/opt/gitlab/gitlab-rails/.chef-VERSION20200424-225089-vaej7r 2020-04-24 13:44:36.976019052 +0200
@@ -1,2 +1,2 @@
-12.9.2
+12.10.0
- restore selinux security context
* remote_file[/var/opt/gitlab/gitlab-rails/REVISION] action create
- update content in file /var/opt/gitlab/gitlab-rails/REVISION from 1e4b7a to 34dfeb
--- /var/opt/gitlab/gitlab-rails/REVISION 2020-04-05 14:33:29.180181477 +0200
+++ /var/opt/gitlab/gitlab-rails/.chef-REVISION20200424-225089-4v0r48 2020-04-24 13:44:37.000018941 +0200
@@ -1,2 +1,2 @@
-ac5568eb5d8
+869bc26464b
- restore selinux security context
* file[/var/opt/gitlab/gitlab-rails/RUBY_VERSION] action create (up to date)
* execute[clear the gitlab-rails cache] action nothing (skipped due to action :nothing)
* file[/var/opt/gitlab/gitlab-rails/config.ru] action delete (up to date)
Recipe: gitlab::selinux
* execute[semodule -i /opt/gitlab/embedded/selinux/rhel/7/gitlab-7.2.0-ssh-keygen.pp] action rungitlab-7.2.0-ssh-keygen 1.0
(skipped due to not_if)
* execute[semodule -i /opt/gitlab/embedded/selinux/rhel/7/gitlab-10.5.0-ssh-authorized-keys.pp] action rungitlab-10.5.0-ssh-authorized-keys 1.0
(skipped due to not_if)
* bash[Set proper security context on ssh files for selinux] action run
- execute "bash" "/tmp/chef-script20200424-225089-11lxt31"
Recipe: gitlab::add_trusted_certs
* directory[/etc/gitlab/trusted-certs] action create (up to date)
* directory[/opt/gitlab/embedded/ssl/certs] action create (up to date)
* file[/opt/gitlab/embedded/ssl/certs/README] action create (up to date)
* ruby_block[Move existing certs and link to /opt/gitlab/embedded/ssl/certs] action run
* Moving existing certificates found in /opt/gitlab/embedded/ssl/certs
* Symlinking existing certificates found in /etc/gitlab/trusted-certs
- execute the ruby block Move existing certs and link to /opt/gitlab/embedded/ssl/certs
Recipe: gitlab::default
* service[create a temporary unicorn service] action nothing (skipped due to action :nothing)
* service[create a temporary puma service] action nothing (skipped due to action :nothing)
* service[create a temporary sidekiq service] action nothing (skipped due to action :nothing)
* service[create a temporary mailroom service] action nothing (skipped due to action :nothing)
Recipe: package::runit_systemd
* directory[/usr/lib/systemd/system] action create (up to date)
* template[/usr/lib/systemd/system/gitlab-runsvdir.service] action create (up to date)
* file[/etc/systemd/system/default.target.wants/gitlab-runsvdir.service] action delete (up to date)
* file[/etc/systemd/system/basic.target.wants/gitlab-runsvdir.service] action delete (up to date)
* execute[systemctl daemon-reload] action nothing (skipped due to action :nothing)
* execute[systemctl enable gitlab-runsvdir] action nothing (skipped due to action :nothing)
* execute[systemctl start gitlab-runsvdir] action nothing (skipped due to action :nothing)
Recipe: package::sysctl
* execute[reload all sysctl conf] action nothing (skipped due to action :nothing)
Recipe: postgresql::bin
* ruby_block[check_postgresql_version] action run (skipped due to not_if)
* ruby_block[Link postgresql bin files to the correct version] action run (skipped due to only_if)
Recipe: redis::enable
* account[user and group for redis] action create
* group[user and group for redis] action create (up to date)
* linux_user[user and group for redis] action create (up to date)
(up to date)
* group[Socket group] action create (up to date)
* directory[/var/opt/gitlab/redis] action create (up to date)
* directory[/var/log/gitlab/redis] action create (up to date)
* template[/var/opt/gitlab/redis/redis.conf] action create
- update content in file /var/opt/gitlab/redis/redis.conf from 0e485a to 06cf88
--- /var/opt/gitlab/redis/redis.conf 2019-08-25 15:22:00.308005838 +0200
+++ /var/opt/gitlab/redis/.chef-redis20200424-225089-1vaze05.conf 2020-04-24 13:44:57.315925288 +0200
@@ -579,6 +579,55 @@
# maxmemory-samples 5
maxmemory-samples 5
+############################# LAZY FREEING ####################################
+
+# Redis has two primitives to delete keys. One is called DEL and is a blocking
+# deletion of the object. It means that the server stops processing new commands
+# in order to reclaim all the memory associated with an object in a synchronous
+# way. If the key deleted is associated with a small object, the time needed
+# in order to execute the DEL command is very small and comparable to most other
+# O(1) or O(log_N) commands in Redis. However if the key is associated with an
+# aggregated value containing millions of elements, the server can block for
+# a long time (even seconds) in order to complete the operation.
+#
+# For the above reasons Redis also offers non blocking deletion primitives
+# such as UNLINK (non blocking DEL) and the ASYNC option of FLUSHALL and
+# FLUSHDB commands, in order to reclaim memory in background. Those commands
+# are executed in constant time. Another thread will incrementally free the
+# object in the background as fast as possible.
+#
+# DEL, UNLINK and ASYNC option of FLUSHALL and FLUSHDB are user-controlled.
+# It's up to the design of the application to understand when it is a good
+# idea to use one or the other. However the Redis server sometimes has to
+# delete keys or flush the whole database as a side effect of other operations.
+# Specifically Redis deletes objects independently of a user call in the
+# following scenarios:
+#
+# 1) On eviction, because of the maxmemory and maxmemory policy configurations,
+# in order to make room for new data, without going over the specified
+# memory limit.
+# 2) Because of expire: when a key with an associated time to live (see the
+# EXPIRE command) must be deleted from memory.
+# 3) Because of a side effect of a command that stores data on a key that may
+# already exist. For example the RENAME command may delete the old key
+# content when it is replaced with another one. Similarly SUNIONSTORE
+# or SORT with STORE option may delete existing keys. The SET command
+# itself removes any old content of the specified key in order to replace
+# it with the specified string.
+# 4) During replication, when a replica performs a full resynchronization with
+# its master, the content of the whole database is removed in order to
+# load the RDB file just transferred.
+#
+# In all the above cases the default is to delete objects in a blocking way,
+# like if DEL was called. However you can configure each case specifically
+# in order to instead release memory in a non-blocking way like if UNLINK
+# was called, using the following configuration directives:
+
+lazyfree-lazy-eviction no
+lazyfree-lazy-expire no
+lazyfree-lazy-server-del no
+replica-lazy-flush no
+
############################## APPEND ONLY MODE ###############################
# By default Redis asynchronously dumps the dataset on disk. This mode is
- restore selinux security context
* runit_service[redis] action restart (up to date)
Recipe: <Dynamically Defined Resource>
* service[redis] action nothing (skipped due to action :nothing)
Recipe: redis::enable
* runit_service[redis] action enable
* ruby_block[restart_service] action nothing (skipped due to action :nothing)
* ruby_block[restart_log_service] action nothing (skipped due to action :nothing)
* ruby_block[reload_log_service] action nothing (skipped due to action :nothing)
* directory[/opt/gitlab/sv/redis] action create (up to date)
* template[/opt/gitlab/sv/redis/run] action create (up to date)
* directory[/opt/gitlab/sv/redis/log] action create (up to date)
* directory[/opt/gitlab/sv/redis/log/main] action create (up to date)
* template[/opt/gitlab/sv/redis/log/run] action create (up to date)
* template[/var/log/gitlab/redis/config] action create (up to date)
* ruby_block[verify_chown_persisted_on_redis] action nothing (skipped due to action :nothing)
* directory[/opt/gitlab/sv/redis/env] action create (up to date)
* ruby_block[Delete unmanaged env files for redis service] action run (skipped due to only_if)
* template[/opt/gitlab/sv/redis/check] action create (skipped due to only_if)
* template[/opt/gitlab/sv/redis/finish] action create (skipped due to only_if)
* directory[/opt/gitlab/sv/redis/control] action create (up to date)
* link[/opt/gitlab/init/redis] action create (up to date)
* file[/opt/gitlab/sv/redis/down] action delete (up to date)
* directory[/opt/gitlab/service] action create (up to date)
* link[/opt/gitlab/service/redis] action create (up to date)
* ruby_block[wait for redis service socket] action run (skipped due to not_if)
(up to date)
* ruby_block[warn pending redis restart] action run (skipped due to only_if)
* template[/opt/gitlab/etc/gitlab-redis-cli-rc] action create
- create new file /opt/gitlab/etc/gitlab-redis-cli-rc
- update content in file /opt/gitlab/etc/gitlab-redis-cli-rc from none to 44cac1
--- /opt/gitlab/etc/gitlab-redis-cli-rc 2020-04-24 13:44:57.967922282 +0200
+++ /opt/gitlab/etc/.chef-gitlab-redis-cli-rc20200424-225089-pr0w1p 2020-04-24 13:44:57.966922287 +0200
@@ -1 +1,5 @@
+redis_dir='/var/opt/gitlab/redis'
+redis_host='127.0.0.1'
+redis_port='0'
+redis_socket='/var/opt/gitlab/redis/redis.socket'
- change owner from '' to 'root'
- change group from '' to 'root'
- restore selinux security context
Recipe: gitaly::enable
* directory[/var/opt/gitlab/gitaly] action create (up to date)
* directory[/var/log/gitlab/gitaly] action create (up to date)
* directory[/var/opt/gitlab/gitaly/internal_sockets] action create (up to date)
* env_dir[/opt/gitlab/etc/gitaly/env] action create
* directory[/opt/gitlab/etc/gitaly/env] action create (up to date)
* file[/opt/gitlab/etc/gitaly/env/HOME] action create (up to date)
* file[/opt/gitlab/etc/gitaly/env/PATH] action create (up to date)
* file[/opt/gitlab/etc/gitaly/env/TZ] action create (up to date)
* file[/opt/gitlab/etc/gitaly/env/PYTHONPATH] action create (up to date)
* file[/opt/gitlab/etc/gitaly/env/ICU_DATA] action create (up to date)
* file[/opt/gitlab/etc/gitaly/env/SSL_CERT_DIR] action create (up to date)
* file[/opt/gitlab/etc/gitaly/env/GITALY_PID_FILE] action create (up to date)
* file[/opt/gitlab/etc/gitaly/env/WRAPPER_JSON_LOGGING] action create (up to date)
(up to date)
* template[Create Gitaly config.toml] action create (up to date)
Recipe: <Dynamically Defined Resource>
* service[gitaly] action nothing (skipped due to action :nothing)
Recipe: gitaly::enable
* runit_service[gitaly] action enable
* ruby_block[restart_service] action nothing (skipped due to action :nothing)
* ruby_block[restart_log_service] action nothing (skipped due to action :nothing)
* ruby_block[reload_log_service] action nothing (skipped due to action :nothing)
* directory[/opt/gitlab/sv/gitaly] action create (up to date)
* template[/opt/gitlab/sv/gitaly/run] action create (up to date)
* directory[/opt/gitlab/sv/gitaly/log] action create (up to date)
* directory[/opt/gitlab/sv/gitaly/log/main] action create (up to date)
* template[/opt/gitlab/sv/gitaly/log/run] action create (up to date)
* template[/var/log/gitlab/gitaly/config] action create (up to date)
* ruby_block[verify_chown_persisted_on_gitaly] action nothing (skipped due to action :nothing)
* directory[/opt/gitlab/sv/gitaly/env] action create (up to date)
* ruby_block[Delete unmanaged env files for gitaly service] action run (skipped due to only_if)
* template[/opt/gitlab/sv/gitaly/check] action create (skipped due to only_if)
* template[/opt/gitlab/sv/gitaly/finish] action create (skipped due to only_if)
* directory[/opt/gitlab/sv/gitaly/control] action create (up to date)
* link[/opt/gitlab/init/gitaly] action create (up to date)
* file[/opt/gitlab/sv/gitaly/down] action delete (up to date)
* directory[/opt/gitlab/service] action create (up to date)
* link[/opt/gitlab/service/gitaly] action create (up to date)
* ruby_block[wait for gitaly service socket] action run (skipped due to not_if)
(up to date)
* file[/var/opt/gitlab/gitaly/VERSION] action create
- update content in file /var/opt/gitlab/gitaly/VERSION from e8b565 to 6de68d
--- /var/opt/gitlab/gitaly/VERSION 2020-04-05 14:33:49.798965604 +0200
+++ /var/opt/gitlab/gitaly/.chef-VERSION20200424-225089-xp6esj 2020-04-24 13:44:58.131921526 +0200
@@ -1,2 +1,2 @@
-Gitaly, version 12.9.2
+Gitaly, version 12.10.0-rc1-109-g66fd5d1b
- restore selinux security context
* consul_service[gitaly] action delete
* file[/var/opt/gitlab/consul/config.d/gitaly-service.json] action delete (up to date)
(up to date)
Recipe: <Dynamically Defined Resource>
* service[praefect] action nothing (skipped due to action :nothing)
Recipe: praefect::disable
* runit_service[praefect] action disable
* ruby_block[disable praefect] action run (skipped due to only_if)
(up to date)
* consul_service[praefect] action delete
* file[/var/opt/gitlab/consul/config.d/praefect-service.json] action delete (up to date)
(up to date)
Recipe: <Dynamically Defined Resource>
* service[postgresql] action nothing (skipped due to action :nothing)
Recipe: postgresql::disable
* runit_service[postgresql] action disable
* ruby_block[disable postgresql] action run (skipped due to only_if)
(up to date)
Recipe: gitlab::database_migrations
* bash[migrate gitlab-rails database] action run
[execute] == 20200204113225 ScheduleRecalculateProjectAuthorizationsThirdRun: migrating =
-- Scheduling RecalculateProjectAuthorizationsWithMinMaxUserId jobs
== 20200204113225 ScheduleRecalculateProjectAuthorizationsThirdRun: migrated (0.0948s)
== 20200204131831 CreateDailyReportResults: migrating =========================
-- create_table(:ci_daily_report_results)
-> 0.0887s
== 20200204131831 CreateDailyReportResults: migrated (0.0887s) ================
== 20200213100530 AddVerificationColumnsToPackages: migrating =================
-- add_column(:packages_package_files, :verification_retry_at, :datetime_with_timezone)
-> 0.0025s
-- add_column(:packages_package_files, :verified_at, :datetime_with_timezone)
-> 0.0009s
-- add_column(:packages_package_files, :verification_checksum, :string, {:limit=>255})
-> 0.0018s
-- add_column(:packages_package_files, :verification_failure, :string, {:limit=>255})
-> 0.0012s
-- add_column(:packages_package_files, :verification_retry_count, :integer)
-> 0.0010s
== 20200213100530 AddVerificationColumnsToPackages: migrated (0.0076s) ========
== 20200214025454 AddCanonicalEmails: migrating ===============================
-- create_table(:user_canonical_emails)
-> 0.0306s
-- add_index(:user_canonical_emails, [:user_id, :canonical_email], {:unique=>true})
-> 0.0127s
-- add_index(:user_canonical_emails, :user_id, {:unique=>true})
-> 0.0091s
== 20200214025454 AddCanonicalEmails: migrated (0.0601s) ======================
== 20200219135440 AddLimitMetricTypeToList: migrating =========================
-- add_column(:lists, :limit_metric, :string, {:limit=>20})
-> 0.0021s
== 20200219135440 AddLimitMetricTypeToList: migrated (0.0021s) ================
== 20200220115023 FixProjectsWithoutPrometheusService: migrating ==============
== 20200220115023 FixProjectsWithoutPrometheusService: migrated (0.0894s) =====
== 20200226124757 RemoveHealthStatusFromEpics: migrating ======================
-- remove_column(:epics, :health_status)
-> 0.0051s
== 20200226124757 RemoveHealthStatusFromEpics: migrated (0.0072s) =============
== 20200302152516 AddWikiSlug: migrating ======================================
-- create_table(:wiki_page_meta, {:id=>:serial})
-> 0.0236s
-- create_table(:wiki_page_slugs, {:id=>:serial})
-> 0.0479s
== 20200302152516 AddWikiSlug: migrated (0.0715s) =============================
== 20200303181648 AddHealthyToClustersApplicationsPrometheus: migrating =======
-- add_column(:clusters_applications_prometheus, :healthy, :boolean)
-> 0.0015s
== 20200303181648 AddHealthyToClustersApplicationsPrometheus: migrated (0.0015s)
== 20200304124406 AddUnlockMembershipToLdapOfGroups: migrating ================
-- add_column(:namespaces, :unlock_membership_to_ldap, :boolean)
-> 0.0012s
== 20200304124406 AddUnlockMembershipToLdapOfGroups: migrated (0.0030s) =======
== 20200305200641 CreateTerraformStates: migrating ============================
-- create_table(:terraform_states)
-> 0.0231s
== 20200305200641 CreateTerraformStates: migrated (0.0231s) ===================
== 20200311074438 MigrateBotTypeToUserType: migrating =========================
-- execute("UPDATE users SET user_type = bot_type WHERE bot_type IS NOT NULL AND user_type IS NULL")
-> 0.0140s
== 20200311074438 MigrateBotTypeToUserType: migrated (0.0141s) ================
== 20200311082301 AddUserStateIndex: migrating ================================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:users, [:state, :user_type], {:where=>"ghost IS NOT TRUE", :name=>"index_users_on_state_and_user_type_internal", :algorithm=>:concurrently})
-> 0.0268s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:users, [:state, :user_type], {:where=>"ghost IS NOT TRUE", :name=>"index_users_on_state_and_user_type_internal", :algorithm=>:concurrently})
-> 0.0152s
-- execute("RESET ALL")
-> 0.0005s
-- transaction_open?()
-> 0.0000s
-- indexes(:users)
-> 0.0245s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- remove_index(:users, {:algorithm=>:concurrently, :name=>"index_users_on_state_and_internal_ee"})
-> 0.0063s
-- execute("RESET ALL")
-> 0.0004s
-- transaction_open?()
-> 0.0000s
-- indexes(:users)
-> 0.0225s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- remove_index(:users, {:algorithm=>:concurrently, :name=>"index_users_on_state_and_internal"})
-> 0.0043s
-- execute("RESET ALL")
-> 0.0003s
== 20200311082301 AddUserStateIndex: migrated (0.1026s) =======================
== 20200311130802 SchedulePopulateUserHighestRolesTable: migrating ============
== 20200311130802 SchedulePopulateUserHighestRolesTable: migrated (0.0683s) ===
== 20200311154110 CreateVulnerabilityExports: migrating =======================
-- create_table(:vulnerability_exports)
-> 0.0339s
== 20200311154110 CreateVulnerabilityExports: migrated (0.0339s) ==============
== 20200311214912 AddModsecurityModeToIngressApplication: migrating ===========
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0008s
-- transaction()
-- add_column(:clusters_applications_ingress, :modsecurity_mode, :smallint, {:default=>nil})
-> 0.0023s
-- change_column_default(:clusters_applications_ingress, :modsecurity_mode, 0)
-> 0.0034s
-> 0.0090s
-- columns(:clusters_applications_ingress)
-> 0.0017s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"clusters_applications_ingress\"")
-> 0.0015s
-- change_column_null(:clusters_applications_ingress, :modsecurity_mode, false)
-> 0.0031s
-- execute("RESET ALL")
-> 0.0004s
== 20200311214912 AddModsecurityModeToIngressApplication: migrated (0.0172s) ==
== 20200312053852 PopulateCanonicalEmails: migrating ==========================
== 20200312053852 PopulateCanonicalEmails: migrated (0.0050s) =================
== 20200312125121 AddIndexOnActiveAndTemplateAndTypeAndIdToServices: migrating
-- transaction_open?()
-> 0.0000s
-- index_exists?(:services, [:type, :id, :template], {:where=>"active = TRUE", :name=>"index_services_on_type_and_id_and_template_when_active", :algorithm=>:concurrently})
-> 0.0065s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:services, [:type, :id, :template], {:where=>"active = TRUE", :name=>"index_services_on_type_and_id_and_template_when_active", :algorithm=>:concurrently})
-> 0.0193s
-- execute("RESET ALL")
-> 0.0003s
== 20200312125121 AddIndexOnActiveAndTemplateAndTypeAndIdToServices: migrated (0.0269s)
== 20200312160532 AddIndexOnMirrorAndIdToProjects: migrating ==================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, :id, {:where=>"mirror = TRUE AND mirror_trigger_builds = TRUE", :name=>"index_projects_on_mirror_id_where_mirror_and_trigger_builds", :algorithm=>:concurrently})
-> 0.0275s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:projects, :id, {:where=>"mirror = TRUE AND mirror_trigger_builds = TRUE", :name=>"index_projects_on_mirror_id_where_mirror_and_trigger_builds", :algorithm=>:concurrently})
-> 0.0141s
-- execute("RESET ALL")
-> 0.0003s
-- transaction_open?()
-> 0.0000s
-- indexes(:projects)
-> 0.0278s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- remove_index(:projects, {:algorithm=>:concurrently, :name=>"index_projects_on_mirror_and_mirror_trigger_builds_both_true"})
-> 0.0062s
-- execute("RESET ALL")
-> 0.0005s
== 20200312160532 AddIndexOnMirrorAndIdToProjects: migrated (0.0775s) =========
== 20200313101649 FillGhostUserType: migrating ================================
-- execute("UPDATE users SET user_type = 5 WHERE ghost IS TRUE AND user_type IS NULL")
-> 0.0021s
== 20200313101649 FillGhostUserType: migrated (0.0022s) =======================
== 20200313202430 AddIndexChatNameServiceId: migrating ========================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:chat_names, :service_id, {:algorithm=>:concurrently})
-> 0.0026s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:chat_names, :service_id, {:algorithm=>:concurrently})
-> 0.0134s
-- execute("RESET ALL")
-> 0.0004s
== 20200313202430 AddIndexChatNameServiceId: migrated (0.0181s) ===============
== 20200313203525 AddInvalidForeignKeyFromChatNameToService: migrating ========
-- transaction_open?()
-> 0.0000s
-- foreign_keys(:chat_names)
-> 0.0047s
-- execute("ALTER TABLE chat_names\nADD CONSTRAINT fk_00797a2bf9\nFOREIGN KEY (service_id)\nREFERENCES services (id)\nON DELETE CASCADE\nNOT VALID;\n")
-> 0.0019s
== 20200313203525 AddInvalidForeignKeyFromChatNameToService: migrated (0.0131s)
== 20200313203550 RemoveOrphanedChatNames: migrating ==========================
-- execute("DELETE FROM chat_names WHERE service_id NOT IN(SELECT id FROM services WHERE services.type = 'chat')")
-> 0.0032s
== 20200313203550 RemoveOrphanedChatNames: migrated (0.0034s) =================
== 20200313204021 ValidateForeignKeyFromChatNameToService: migrating ==========
-- foreign_keys(:chat_names)
-> 0.0032s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- execute("ALTER TABLE chat_names VALIDATE CONSTRAINT fk_00797a2bf9;")
-> 0.0010s
-- execute("RESET ALL")
-> 0.0004s
== 20200313204021 ValidateForeignKeyFromChatNameToService: migrated (0.0053s) =
== 20200314060834 AddScannedResourcesCountToSecurityScan: migrating ===========
-- add_column(:security_scans, :scanned_resources_count, :integer)
-> 0.0087s
== 20200314060834 AddScannedResourcesCountToSecurityScan: migrated (0.0087s) ==
== 20200316111759 AddIndexOnIdAndLdapKeyToKeys: migrating =====================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:keys, [:id], {:where=>"type = 'LDAPKey'", :name=>"index_keys_on_id_and_ldap_key_type", :algorithm=>:concurrently})
-> 0.0061s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- add_index(:keys, [:id], {:where=>"type = 'LDAPKey'", :name=>"index_keys_on_id_and_ldap_key_type", :algorithm=>:concurrently})
-> 0.0129s
-- execute("RESET ALL")
-> 0.0003s
== 20200316111759 AddIndexOnIdAndLdapKeyToKeys: migrated (0.0199s) ============
== 20200316162648 AddIndexOnNamespaceIdAndIdToProjects: migrating =============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:namespace_id, :id], {:algorithm=>:concurrently})
-> 0.0378s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- add_index(:projects, [:namespace_id, :id], {:algorithm=>:concurrently})
-> 0.0165s
-- execute("RESET ALL")
-> 0.0005s
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, :namespace_id, {:algorithm=>:concurrently})
-> 0.0307s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- remove_index(:projects, {:algorithm=>:concurrently, :column=>:namespace_id})
-> 0.0305s
-- execute("RESET ALL")
-> 0.0004s
== 20200316162648 AddIndexOnNamespaceIdAndIdToProjects: migrated (0.1178s) ====
== 20200316173312 AddVulnerabilityExportProjectForeignKey: migrating ==========
-- add_foreign_key(:vulnerability_exports, :projects, {:column=>:project_id, :on_delete=>:cascade, :index=>false})
-> 0.0025s
== 20200316173312 AddVulnerabilityExportProjectForeignKey: migrated (0.0046s) =
== 20200317110602 AddMigratingUserHighestRolesTableIndexToUsers: migrating ====
-- transaction_open?()
-> 0.0000s
-- index_exists?(:users, :id, {:where=>"state = 'active' AND user_type IS NULL AND bot_type IS NULL AND ghost IS NOT TRUE", :name=>"index_for_migrating_user_highest_roles_table", :algorithm=>:concurrently})
-> 0.0270s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- add_index(:users, :id, {:where=>"state = 'active' AND user_type IS NULL AND bot_type IS NULL AND ghost IS NOT TRUE", :name=>"index_for_migrating_user_highest_roles_table", :algorithm=>:concurrently})
-> 0.0165s
-- execute("RESET ALL")
-> 0.0005s
== 20200317110602 AddMigratingUserHighestRolesTableIndexToUsers: migrated (0.0448s)
== 20200317142110 AddVulnerabilityExportUserForeignKey: migrating =============
-- add_foreign_key(:vulnerability_exports, :users, {:column=>:author_id, :on_delete=>:cascade, :index=>false})
-> 0.0030s
== 20200317142110 AddVulnerabilityExportUserForeignKey: migrated (0.0057s) ====
== 20200318140400 CreateVulnerabilityUserMentions: migrating ==================
-- create_table(:vulnerability_user_mentions)
-> 0.0311s
-- add_index(:vulnerability_user_mentions, [:vulnerability_id], {:where=>"note_id is null", :unique=>true, :name=>"index_vulns_user_mentions_on_vulnerability_id"})
-> 0.0090s
-- add_index(:vulnerability_user_mentions, [:vulnerability_id, :note_id], {:unique=>true, :name=>"index_vulns_user_mentions_on_vulnerability_id_and_note_id"})
-> 0.0094s
== 20200318140400 CreateVulnerabilityUserMentions: migrated (0.0497s) =========
== 20200318152134 AddsSha256ToPackageFiles: migrating =========================
-- add_column(:packages_package_files, :file_sha256, :binary)
-> 0.0021s
== 20200318152134 AddsSha256ToPackageFiles: migrated (0.0022s) ================
== 20200318162148 AddExternalKeyToIssuesTable: migrating ======================
-- add_column(:issues, :external_key, :string, {:limit=>255})
-> 0.0013s
== 20200318162148 AddExternalKeyToIssuesTable: migrated (0.0049s) =============
== 20200318163148 AddIndexOnExternalKeyToIssuesTable: migrating ===============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:issues, [:project_id, :external_key], {:unique=>true, :where=>"external_key IS NOT NULL", :algorithm=>:concurrently})
-> 0.0179s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:issues, [:project_id, :external_key], {:unique=>true, :where=>"external_key IS NOT NULL", :algorithm=>:concurrently})
-> 0.0155s
-- execute("RESET ALL")
-> 0.0004s
== 20200318163148 AddIndexOnExternalKeyToIssuesTable: migrated (0.0346s) ======
== 20200318164448 AddExternalKeyToEpicsTable: migrating =======================
-- add_column(:epics, :external_key, :string, {:limit=>255})
-> 0.0011s
== 20200318164448 AddExternalKeyToEpicsTable: migrated (0.0037s) ==============
== 20200318165448 AddIndexOnExternalKeyToEpicsTable: migrating ================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:epics, [:group_id, :external_key], {:unique=>true, :where=>"external_key IS NOT NULL", :algorithm=>:concurrently})
-> 0.0120s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:epics, [:group_id, :external_key], {:unique=>true, :where=>"external_key IS NOT NULL", :algorithm=>:concurrently})
-> 0.0166s
-- execute("RESET ALL")
-> 0.0007s
== 20200318165448 AddIndexOnExternalKeyToEpicsTable: migrated (0.0299s) =======
== 20200318175008 AddIndexOnIdAndArchivedAndPendingDeleteToProjects: migrating
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, :id, {:where=>"archived = FALSE AND pending_delete = FALSE", :name=>"index_projects_on_id_and_archived_and_pending_delete", :algorithm=>:concurrently})
-> 0.0340s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:projects, :id, {:where=>"archived = FALSE AND pending_delete = FALSE", :name=>"index_projects_on_id_and_archived_and_pending_delete", :algorithm=>:concurrently})
-> 0.0174s
-- execute("RESET ALL")
-> 0.0004s
== 20200318175008 AddIndexOnIdAndArchivedAndPendingDeleteToProjects: migrated (0.0523s)
== 20200318183553 CreatePypiPackageMetadata: migrating ========================
-- create_table(:packages_pypi_metadata, {:id=>false})
-> 0.0109s
== 20200318183553 CreatePypiPackageMetadata: migrated (0.0109s) ===============
== 20200319071702 ConsumeRemainingLinkLfsObjectsProjectsJobs: migrating =======
== 20200319071702 ConsumeRemainingLinkLfsObjectsProjectsJobs: migrated (0.0023s)
== 20200319123041 UpdatePlanLimitsDefaults: migrating =========================
-- change_column_default(:plan_limits, :project_hooks, 100)
-> 0.0041s
-- change_column_default(:plan_limits, :group_hooks, 50)
-> 0.0027s
-- change_column_default(:plan_limits, :ci_project_subscriptions, 2)
-> 0.0028s
-- change_column_default(:plan_limits, :ci_pipeline_schedules, 10)
-> 0.0024s
== 20200319123041 UpdatePlanLimitsDefaults: migrated (0.0124s) ================
== 20200319124127 CreateMetricsDashboardAnnotations: migrating ================
-- create_table(:metrics_dashboard_annotations)
-> 0.0431s
== 20200319124127 CreateMetricsDashboardAnnotations: migrated (0.0431s) =======
== 20200319203901 AddIndexOnUsersUnlockToken: migrating =======================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:users, :unlock_token, {:unique=>true, :name=>"index_users_on_unlock_token", :algorithm=>:concurrently})
-> 0.0204s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:users, :unlock_token, {:unique=>true, :name=>"index_users_on_unlock_token", :algorithm=>:concurrently})
-> 0.0160s
-- execute("RESET ALL")
-> 0.0006s
== 20200319203901 AddIndexOnUsersUnlockToken: migrated (0.0377s) ==============
== 20200320112455 AddCostFactorFiledsToCiRunners: migrating ===================
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- transaction()
-- add_column(:ci_runners, :public_projects_minutes_cost_factor, :float, {:default=>nil})
-> 0.0022s
-- change_column_default(:ci_runners, :public_projects_minutes_cost_factor, 0.0)
-> 0.0063s
-> 0.0126s
-- columns(:ci_runners)
-> 0.0049s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"ci_runners\"")
-> 0.0044s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1")
-> 0.0009s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" WHERE \"ci_runners\".\"id\" >= 1 ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0010s
-- execute("UPDATE \"ci_runners\" SET \"public_projects_minutes_cost_factor\" = 0.0 WHERE \"ci_runners\".\"id\" >= 1 AND \"ci_runners\".\"id\" < 2")
-> 0.0034s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" WHERE \"ci_runners\".\"id\" >= 2 ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0009s
-- execute("UPDATE \"ci_runners\" SET \"public_projects_minutes_cost_factor\" = 0.0 WHERE \"ci_runners\".\"id\" >= 2 AND \"ci_runners\".\"id\" < 7")
-> 0.0037s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" WHERE \"ci_runners\".\"id\" >= 7 ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0010s
-- execute("UPDATE \"ci_runners\" SET \"public_projects_minutes_cost_factor\" = 0.0 WHERE \"ci_runners\".\"id\" >= 7")
-> 0.0033s
-- change_column_null(:ci_runners, :public_projects_minutes_cost_factor, false)
-> 0.0030s
-- execute("RESET ALL")
-> 0.0004s
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- transaction()
-- add_column(:ci_runners, :private_projects_minutes_cost_factor, :float, {:default=>nil})
-> 0.0020s
-- change_column_default(:ci_runners, :private_projects_minutes_cost_factor, 1.0)
-> 0.0039s
-> 0.0090s
-- columns(:ci_runners)
-> 0.0051s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"ci_runners\"")
-> 0.0007s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1")
-> 0.0008s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" WHERE \"ci_runners\".\"id\" >= 1 ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0007s
-- execute("UPDATE \"ci_runners\" SET \"private_projects_minutes_cost_factor\" = 1.0 WHERE \"ci_runners\".\"id\" >= 1 AND \"ci_runners\".\"id\" < 2")
-> 0.0037s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" WHERE \"ci_runners\".\"id\" >= 2 ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0011s
-- execute("UPDATE \"ci_runners\" SET \"private_projects_minutes_cost_factor\" = 1.0 WHERE \"ci_runners\".\"id\" >= 2 AND \"ci_runners\".\"id\" < 7")
-> 0.0034s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" WHERE \"ci_runners\".\"id\" >= 7 ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0009s
-- execute("UPDATE \"ci_runners\" SET \"private_projects_minutes_cost_factor\" = 1.0 WHERE \"ci_runners\".\"id\" >= 7")
-> 0.0031s
-- change_column_null(:ci_runners, :private_projects_minutes_cost_factor, false)
-> 0.0030s
-- execute("RESET ALL")
-> 0.0004s
== 20200320112455 AddCostFactorFiledsToCiRunners: migrated (0.0762s) ==========
== 20200320123839 AddLetsencryptErrorsToPagesDomains: migrating ===============
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- transaction()
-- add_column(:pages_domains, :auto_ssl_failed, :boolean, {:default=>nil})
-> 0.0022s
-- change_column_default(:pages_domains, :auto_ssl_failed, false)
-> 0.0059s
-> 0.0119s
-- columns(:pages_domains)
-> 0.0033s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"pages_domains\"")
-> 0.0015s
-- change_column_null(:pages_domains, :auto_ssl_failed, false)
-> 0.0033s
-- execute("RESET ALL")
-> 0.0006s
== 20200320123839 AddLetsencryptErrorsToPagesDomains: migrated (0.0216s) ======
== 20200323011225 CompleteMigrateSecurityScans: migrating =====================
== 20200323011225 CompleteMigrateSecurityScans: migrated (0.0018s) ============
== 20200323011955 RemoveIndexUsedForScanMigration: migrating ==================
-- index_exists?(:ci_job_artifacts, [:id, :file_type, :job_id, :created_at, :updated_at], {:name=>"job_artifacts_secure_reports_temp_index"})
-> 0.0059s
-- transaction_open?()
-> 0.0000s
-- index_exists?(:ci_job_artifacts, [:id, :file_type, :job_id, :created_at, :updated_at], {:name=>"job_artifacts_secure_reports_temp_index", :algorithm=>:concurrently})
-> 0.0056s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- remove_index(:ci_job_artifacts, {:name=>"job_artifacts_secure_reports_temp_index", :algorithm=>:concurrently, :column=>[:id, :file_type, :job_id, :created_at, :updated_at]})
-> 0.0115s
-- execute("RESET ALL")
-> 0.0005s
== 20200323011955 RemoveIndexUsedForScanMigration: migrated (0.0243s) =========
== 20200323071918 AddBioToUserDetails: migrating ==============================
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- transaction()
-- add_column(:user_details, :bio, :string, {:default=>nil, :limit=>255})
-> 0.0026s
-- change_column_default(:user_details, :bio, "")
-> 0.0032s
-> 0.0095s
-- columns(:user_details)
-> 0.0027s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"user_details\"")
-> 0.0023s
-- exec_query("SELECT \"user_details\".\"user_id\" FROM \"user_details\" ORDER BY \"user_details\".\"user_id\" ASC LIMIT 1")
-> 0.0008s
-- exec_query("SELECT \"user_details\".\"user_id\" FROM \"user_details\" WHERE \"user_details\".\"user_id\" >= 274 ORDER BY \"user_details\".\"user_id\" ASC LIMIT 1 OFFSET 1")
-> 0.0007s
-- execute("UPDATE \"user_details\" SET \"bio\" = '' WHERE \"user_details\".\"user_id\" >= 274")
-> 0.0031s
-- change_column_null(:user_details, :bio, false)
-> 0.0030s
-- execute("RESET ALL")
-> 0.0004s
== 20200323071918 AddBioToUserDetails: migrated (0.0240s) =====================
== 20200323074147 AddTempIndexOnUsersBio: migrating ===========================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:users, :id, {:where=>"(COALESCE(bio, '') IS DISTINCT FROM '')", :name=>"tmp_idx_on_user_id_where_bio_is_filled", :algorithm=>:concurrently})
-> 0.0247s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:users, :id, {:where=>"(COALESCE(bio, '') IS DISTINCT FROM '')", :name=>"tmp_idx_on_user_id_where_bio_is_filled", :algorithm=>:concurrently})
-> 0.0138s
-- execute("RESET ALL")
-> 0.0004s
== 20200323074147 AddTempIndexOnUsersBio: migrated (0.0395s) ==================
== 20200323075043 AddMaxPersonalAccessTokenLifetimeToNamespaces: migrating ====
-- add_column(:namespaces, :max_personal_access_token_lifetime, :integer)
-> 0.0012s
== 20200323075043 AddMaxPersonalAccessTokenLifetimeToNamespaces: migrated (0.0038s)
== 20200323080714 TriggerBackgroundMigrationForUsersBio: migrating ============
== 20200323080714 TriggerBackgroundMigrationForUsersBio: migrated (0.0762s) ===
== 20200323122201 AddIndexOnUserAndCreatedAtToCiBuilds: migrating =============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:ci_builds, [:user_id, :created_at], {:where=>"type = 'Ci::Build'", :name=>"index_ci_builds_on_user_id_and_created_at_and_type_eq_ci_build", :algorithm=>:concurrently})
-> 0.0146s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- add_index(:ci_builds, [:user_id, :created_at], {:where=>"type = 'Ci::Build'", :name=>"index_ci_builds_on_user_id_and_created_at_and_type_eq_ci_build", :algorithm=>:concurrently})
-> 0.0165s
-- execute("RESET ALL")
-> 0.0006s
== 20200323122201 AddIndexOnUserAndCreatedAtToCiBuilds: migrated (0.0322s) ====
== 20200323134519 AddApiIndexesForArchivedProjects: migrating =================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:created_at, :id], {:where=>"archived = true AND visibility_level = 20 AND pending_delete = false", :name=>"index_projects_api_created_at_id_for_archived_vis20", :algorithm=>:concurrently})
-> 0.0324s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- add_index(:projects, [:created_at, :id], {:where=>"archived = true AND visibility_level = 20 AND pending_delete = false", :name=>"index_projects_api_created_at_id_for_archived_vis20", :algorithm=>:concurrently})
-> 0.0134s
-- execute("RESET ALL")
-> 0.0003s
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:created_at, :id], {:where=>"archived = true AND pending_delete = false", :name=>"index_projects_api_created_at_id_for_archived", :algorithm=>:concurrently})
-> 0.0204s
-- execute("SET statement_timeout TO 0")
-> 0.0002s
-- add_index(:projects, [:created_at, :id], {:where=>"archived = true AND pending_delete = false", :name=>"index_projects_api_created_at_id_for_archived", :algorithm=>:concurrently})
-> 0.0129s
-- execute("RESET ALL")
-> 0.0003s
== 20200323134519 AddApiIndexesForArchivedProjects: migrated (0.0806s) ========
== 20200324093258 AddIndexOnIdCreatorIdAndCreatedAtToProjectsTable: migrating =
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:id, :creator_id, :created_at], {:where=>"\"projects\".\"service_desk_enabled\" = TRUE", :name=>"index_service_desk_enabled_projects_on_id_creator_id_created_at", :algorithm=>:concurrently})
-> 0.0301s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- add_index(:projects, [:id, :creator_id, :created_at], {:where=>"\"projects\".\"service_desk_enabled\" = TRUE", :name=>"index_service_desk_enabled_projects_on_id_creator_id_created_at", :algorithm=>:concurrently})
-> 0.0164s
-- execute("RESET ALL")
-> 0.0004s
== 20200324093258 AddIndexOnIdCreatorIdAndCreatedAtToProjectsTable: migrated (0.0474s)
== 20200324115359 AddNamespaceStorageSizeLimitToApplicationSettings: migrating
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- transaction()
-- add_column(:application_settings, :namespace_storage_size_limit, :bigint, {:default=>nil})
-> 0.0028s
-- change_column_default(:application_settings, :namespace_storage_size_limit, 0)
-> 0.0505s
-> 0.0571s
-- columns(:application_settings)
-> 0.0557s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"application_settings\"")
-> 0.0011s
-- exec_query("SELECT \"application_settings\".\"id\" FROM \"application_settings\" ORDER BY \"application_settings\".\"id\" ASC LIMIT 1")
-> 0.0007s
-- exec_query("SELECT \"application_settings\".\"id\" FROM \"application_settings\" WHERE \"application_settings\".\"id\" >= 1 ORDER BY \"application_settings\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0007s
-- execute("UPDATE \"application_settings\" SET \"namespace_storage_size_limit\" = 0 WHERE \"application_settings\".\"id\" >= 1")
-> 0.0042s
-- change_column_null(:application_settings, :namespace_storage_size_limit, false)
-> 0.0043s
-- execute("RESET ALL")
-> 0.0004s
== 20200324115359 AddNamespaceStorageSizeLimitToApplicationSettings: migrated (0.1262s)
== 20200325104755 AddPushRulesIdToProjectSettings: migrating ==================
-- add_column(:project_settings, :push_rule_id, :bigint)
-> 0.0016s
== 20200325104755 AddPushRulesIdToProjectSettings: migrated (0.0039s) =========
== 20200325104756 AddPushRulesForeignKeyToProjectSettings: migrating ==========
-- transaction_open?()
-> 0.0000s
-- index_exists?(:project_settings, :push_rule_id, {:unique=>true, :algorithm=>:concurrently})
-> 0.0011s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- add_index(:project_settings, :push_rule_id, {:unique=>true, :algorithm=>:concurrently})
-> 0.0136s
-- execute("RESET ALL")
-> 0.0005s
-- transaction_open?()
-> 0.0000s
-- foreign_keys(:project_settings)
-> 0.0053s
-- execute("ALTER TABLE project_settings\nADD CONSTRAINT fk_413a953e20\nFOREIGN KEY (push_rule_id)\nREFERENCES push_rules (id)\nON DELETE CASCADE\nNOT VALID;\n")
-> 0.0018s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- execute("ALTER TABLE project_settings VALIDATE CONSTRAINT fk_413a953e20;")
-> 0.0074s
-- execute("RESET ALL")
-> 0.0005s
== 20200325104756 AddPushRulesForeignKeyToProjectSettings: migrated (0.0365s) =
== 20200325104833 AddPushRulesIdToApplicationSettings: migrating ==============
-- add_column(:application_settings, :push_rule_id, :bigint)
-> 0.0015s
== 20200325104833 AddPushRulesIdToApplicationSettings: migrated (0.0038s) =====
== 20200325104834 AddPushRulesForeignKeyToApplicationSettings: migrating ======
-- transaction_open?()
-> 0.0000s
-- index_exists?(:application_settings, :push_rule_id, {:unique=>true, :algorithm=>:concurrently})
-> 0.0059s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:application_settings, :push_rule_id, {:unique=>true, :algorithm=>:concurrently})
-> 0.0179s
-- execute("RESET ALL")
-> 0.0004s
-- transaction_open?()
-> 0.0000s
-- foreign_keys(:application_settings)
-> 0.0036s
-- execute("ALTER TABLE application_settings\nADD CONSTRAINT fk_693b8795e4\nFOREIGN KEY (push_rule_id)\nREFERENCES push_rules (id)\nON DELETE SET NULL\nNOT VALID;\n")
-> 0.0018s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- execute("ALTER TABLE application_settings VALIDATE CONSTRAINT fk_693b8795e4;")
-> 0.0048s
-- execute("RESET ALL")
-> 0.0005s
== 20200325104834 AddPushRulesForeignKeyToApplicationSettings: migrated (0.0414s)
== 20200325111432 AddIssuesCreateLimitToApplicationSettings: migrating ========
-- add_column(:application_settings, :issues_create_limit, :integer, {:default=>300, :null=>false})
-> 0.0039s
== 20200325111432 AddIssuesCreateLimitToApplicationSettings: migrated (0.0040s)
== 20200325160952 AddIndexOnNameTypeEqCiBuildToCiBuilds: migrating ============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:ci_builds, [:name, :id], {:name=>"index_ci_builds_on_name_and_security_type_eq_ci_build", :where=>"((name)::text = ANY (ARRAY[('container_scanning'::character varying)::text, ('dast'::character varying)::text, ('dependency_scanning'::character varying)::text, ('license_management'::character varying)::text, ('sast'::character varying)::text, ('license_scanning'::character varying)::text])) AND ((type)::text = 'Ci::Build'::text)", :algorithm=>:concurrently})
-> 0.0230s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:ci_builds, [:name, :id], {:name=>"index_ci_builds_on_name_and_security_type_eq_ci_build", :where=>"((name)::text = ANY (ARRAY[('container_scanning'::character varying)::text, ('dast'::character varying)::text, ('dependency_scanning'::character varying)::text, ('license_management'::character varying)::text, ('sast'::character varying)::text, ('license_scanning'::character varying)::text])) AND ((type)::text = 'Ci::Build'::text)", :algorithm=>:concurrently})
-> 0.0133s
-- execute("RESET ALL")
-> 0.0006s
== 20200325160952 AddIndexOnNameTypeEqCiBuildToCiBuilds: migrated (0.0376s) ===
== 20200325162730 ScheduleBackfillPushRulesIdInProjects: migrating ============
== 20200325162730 ScheduleBackfillPushRulesIdInProjects: migrated (0.0177s) ===
== 20200325183636 AddApiIndexForInternalProjects: migrating ===================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:created_at, :id], {:where=>"visibility_level = 10 AND pending_delete = false", :name=>"index_projects_api_created_at_id_for_vis10", :algorithm=>:concurrently})
-> 0.0515s
-- execute("SET statement_timeout TO 0")
-> 0.0007s
-- add_index(:projects, [:created_at, :id], {:where=>"visibility_level = 10 AND pending_delete = false", :name=>"index_projects_api_created_at_id_for_vis10", :algorithm=>:concurrently})
-> 0.0207s
-- execute("RESET ALL")
-> 0.0005s
== 20200325183636 AddApiIndexForInternalProjects: migrated (0.0736s) ==========
== 20200326114443 CreateJiraImportsTable: migrating ===========================
-- create_table(:jira_imports)
-> 0.0245s
-- add_index(:jira_imports, [:project_id, :jira_project_key], {:name=>"index_jira_imports_on_project_id_and_jira_project_key"})
-> 0.0118s
== 20200326114443 CreateJiraImportsTable: migrated (0.0364s) ==================
== 20200326122700 CreateDiffNotePositions: migrating ==========================
-- create_table(:diff_note_positions)
-> 0.0242s
== 20200326122700 CreateDiffNotePositions: migrated (0.0269s) =================
== 20200326124443 AddProjectsFkToJiraImportsTable: migrating ==================
-- add_foreign_key(:jira_imports, :projects, {:on_delete=>:cascade})
-> 0.0031s
== 20200326124443 AddProjectsFkToJiraImportsTable: migrated (0.0059s) =========
== 20200326134443 AddUsersFkToJiraImportsTable: migrating =====================
-- add_foreign_key(:jira_imports, :users, {:on_delete=>:nullify})
-> 0.0024s
== 20200326134443 AddUsersFkToJiraImportsTable: migrated (0.0049s) ============
== 20200326135443 AddUsersFkIndexOnJiraImportsTable: migrating ================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:jira_imports, :user_id, {:algorithm=>:concurrently})
-> 0.0028s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:jira_imports, :user_id, {:algorithm=>:concurrently})
-> 0.0120s
-- execute("RESET ALL")
-> 0.0006s
== 20200326135443 AddUsersFkIndexOnJiraImportsTable: migrated (0.0162s) =======
== 20200326144443 AddLabelsFkToJiraImportsTable: migrating ====================
-- add_foreign_key(:jira_imports, :labels, {:on_delete=>:nullify})
-> 0.0034s
== 20200326144443 AddLabelsFkToJiraImportsTable: migrated (0.0077s) ===========
== 20200326145443 AddLabelsFkIndexOnJiraImportsTable: migrating ===============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:jira_imports, :label_id, {:algorithm=>:concurrently})
-> 0.0047s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:jira_imports, :label_id, {:algorithm=>:concurrently})
-> 0.0130s
-- execute("RESET ALL")
-> 0.0004s
== 20200326145443 AddLabelsFkIndexOnJiraImportsTable: migrated (0.0188s) ======
== 20200330074719 AddIndexForGroupVsmUsagePing: migrating =====================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:analytics_cycle_analytics_group_stages, :id, {:where=>"custom = true", :name=>"index_analytics_cycle_analytics_group_stages_custom_only", :algorithm=>:concurrently})
-> 0.0065s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- add_index(:analytics_cycle_analytics_group_stages, :id, {:where=>"custom = true", :name=>"index_analytics_cycle_analytics_group_stages_custom_only", :algorithm=>:concurrently})
-> 0.0131s
-- execute("RESET ALL")
-> 0.0004s
== 20200330074719 AddIndexForGroupVsmUsagePing: migrated (0.0208s) ============
== 20200330121000 AddConfidentialAttributeToEpics: migrating ==================
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- transaction()
-- add_column(:epics, :confidential, :boolean, {:default=>nil})
-> 0.0022s
-- change_column_default(:epics, :confidential, false)
-> 0.0062s
-> 0.0115s
-- columns(:epics)
-> 0.0052s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"epics\"")
-> 0.0092s
-- change_column_null(:epics, :confidential, false)
-> 0.0030s
-- execute("RESET ALL")
-> 0.0008s
== 20200330121000 AddConfidentialAttributeToEpics: migrated (0.0309s) =========
== 20200330123739 RemoveIndexCiBuildsOnNameForSecurityReportsValues: migrating
-- transaction_open?()
-> 0.0000s
-- indexes(:ci_builds)
-> 0.0321s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- remove_index(:ci_builds, {:algorithm=>:concurrently, :name=>"index_ci_builds_on_name_for_security_reports_values"})
-> 0.0067s
-- execute("RESET ALL")
-> 0.0005s
== 20200330123739 RemoveIndexCiBuildsOnNameForSecurityReportsValues: migrated (0.0401s)
== 20200330132913 AddIndexOnAuthorIdAndCreatedAtAndIdToNotes: migrating =======
-- transaction_open?()
-> 0.0000s
-- index_exists?(:notes, [:author_id, :created_at, :id], {:algorithm=>:concurrently})
-> 0.0108s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:notes, [:author_id, :created_at, :id], {:algorithm=>:concurrently})
-> 0.0244s
-- execute("RESET ALL")
-> 0.0004s
-- transaction_open?()
-> 0.0000s
-- index_exists?(:notes, [:author_id, :created_at], {:algorithm=>:concurrently})
-> 0.0145s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- remove_index(:notes, {:algorithm=>:concurrently, :column=>[:author_id, :created_at]})
-> 0.0214s
-- execute("RESET ALL")
-> 0.0007s
== 20200330132913 AddIndexOnAuthorIdAndCreatedAtAndIdToNotes: migrated (0.0739s)
== 20200331132103 AddProjectComplianceFrameworkSettingsTable: migrating =======
-- create_table(:project_compliance_framework_settings, {:id=>false})
-> 0.0269s
== 20200331132103 AddProjectComplianceFrameworkSettingsTable: migrated (0.0306s)
== 20200331195952 AddContainerExpirationPoliciesEnableHistoricEntriesToApplicationSettings: migrating
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0008s
-- transaction()
-- add_column(:application_settings, :container_expiration_policies_enable_historic_entries, :boolean, {:default=>nil})
-> 0.0028s
-- change_column_default(:application_settings, :container_expiration_policies_enable_historic_entries, false)
-> 0.0387s
-> 0.0448s
-- columns(:application_settings)
-> 0.0564s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"application_settings\"")
-> 0.0013s
-- exec_query("SELECT \"application_settings\".\"id\" FROM \"application_settings\" ORDER BY \"application_settings\".\"id\" ASC LIMIT 1")
-> 0.0012s
-- exec_query("SELECT \"application_settings\".\"id\" FROM \"application_settings\" WHERE \"application_settings\".\"id\" >= 1 ORDER BY \"application_settings\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0013s
-- execute("UPDATE \"application_settings\" SET \"container_expiration_policies_enable_historic_entries\" = FALSE WHERE \"application_settings\".\"id\" >= 1")
-> 0.0039s
-- change_column_null(:application_settings, :container_expiration_policies_enable_historic_entries, false)
-> 0.0037s
-- execute("RESET ALL")
-> 0.0007s
== 20200331195952 AddContainerExpirationPoliciesEnableHistoricEntriesToApplicationSettings: migrated (0.1159s)
== 20200331220930 EnableContainerExpirationPoliciesByDefault: migrating =======
-- change_column_default(:container_expiration_policies, :enabled, true)
-> 0.0047s
== 20200331220930 EnableContainerExpirationPoliciesByDefault: migrated (0.0084s)
== 20200401095430 AddJsonbToGeoNodeStatusTable: migrating =====================
-- change_table(:geo_node_statuses)
-> 0.0053s
== 20200401095430 AddJsonbToGeoNodeStatusTable: migrated (0.0054s) ============
== 20200401211005 CreateOperationsUserLists: migrating ========================
-- create_table(:operations_user_lists)
-> 0.0414s
== 20200401211005 CreateOperationsUserLists: migrated (0.0415s) ===============
== 20200402123926 AddLineMetricsToMrMetrics: migrating ========================
-- add_column(:merge_request_metrics, :added_lines, :integer)
-> 0.0011s
-- add_column(:merge_request_metrics, :removed_lines, :integer)
-> 0.0009s
== 20200402123926 AddLineMetricsToMrMetrics: migrated (0.0052s) ===============
== 20200402124802 AddCorrelationIdToProjectImportState: migrating =============
-- add_column(:project_mirror_data, :correlation_id_value, :string, {:limit=>128})
-> 0.0009s
== 20200402124802 AddCorrelationIdToProjectImportState: migrated (0.0038s) ====
== 20200402135250 AddDeleteStatusToContainerRepository: migrating =============
-- add_column(:container_repositories, :status, :integer, {:limit=>2})
-> 0.0015s
== 20200402135250 AddDeleteStatusToContainerRepository: migrated (0.0015s) ====
== 20200402185044 CreateClustersApplicationsFluentd: migrating ================
-- create_table(:clusters_applications_fluentd)
-> 0.0261s
== 20200402185044 CreateClustersApplicationsFluentd: migrated (0.0262s) =======
== 20200403184110 AddPartialIndexOnIdToCiJobArtifacts: migrating ==============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:ci_job_artifacts, :id, {:where=>"file_store IS NULL", :name=>"index_ci_job_artifacts_file_store_is_null", :algorithm=>:concurrently})
-> 0.0057s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:ci_job_artifacts, :id, {:where=>"file_store IS NULL", :name=>"index_ci_job_artifacts_file_store_is_null", :algorithm=>:concurrently})
-> 0.0148s
-- execute("RESET ALL")
-> 0.0004s
== 20200403184110 AddPartialIndexOnIdToCiJobArtifacts: migrated (0.0216s) =====
== 20200403185127 AddPartialIndexOnIdToLfsObjects: migrating ==================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:lfs_objects, :id, {:where=>"file_store IS NULL", :name=>"index_lfs_objects_file_store_is_null", :algorithm=>:concurrently})
-> 0.0035s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- add_index(:lfs_objects, :id, {:where=>"file_store IS NULL", :name=>"index_lfs_objects_file_store_is_null", :algorithm=>:concurrently})
-> 0.2264s
-- execute("RESET ALL")
-> 0.0007s
== 20200403185127 AddPartialIndexOnIdToLfsObjects: migrated (0.2315s) =========
== 20200403185422 AddPartialIndexOnIdToUploads: migrating =====================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:uploads, :id, {:where=>"store IS NULL", :name=>"index_uploads_store_is_null", :algorithm=>:concurrently})
-> 0.0074s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:uploads, :id, {:where=>"store IS NULL", :name=>"index_uploads_store_is_null", :algorithm=>:concurrently})
-> 0.0149s
-- execute("RESET ALL")
-> 0.0005s
== 20200403185422 AddPartialIndexOnIdToUploads: migrated (0.0237s) ============
== 20200406102111 AddIndexToDeploymentsWhereClusterIdIsNotNull: migrating =====
-- transaction_open?()
-> 0.0000s
-- index_exists?(:deployments, :id, {:where=>"cluster_id IS NOT NULL", :name=>"index_deployments_on_id_where_cluster_id_present", :algorithm=>:concurrently})
-> 0.0163s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:deployments, :id, {:where=>"cluster_id IS NOT NULL", :name=>"index_deployments_on_id_where_cluster_id_present", :algorithm=>:concurrently})
-> 0.0128s
-- execute("RESET ALL")
-> 0.0005s
== 20200406102111 AddIndexToDeploymentsWhereClusterIdIsNotNull: migrated (0.0304s)
== 20200406102120 BackfillDeploymentClustersFromDeployments: migrating ========
-- Scheduling `BackfillDeploymentClustersFromDeployments` jobs
== 20200406102120 BackfillDeploymentClustersFromDeployments: migrated (0.0214s)
== 20200406135648 AddIndexToCreatedAtOnResourceMilestoneEvents: migrating =====
-- transaction_open?()
-> 0.0000s
-- index_exists?(:resource_milestone_events, :created_at, {:name=>"index_resource_milestone_events_created_at", :algorithm=>:concurrently})
-> 0.0060s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- add_index(:resource_milestone_events, :created_at, {:name=>"index_resource_milestone_events_created_at", :algorithm=>:concurrently})
-> 0.0193s
-- execute("RESET ALL")
-> 0.0006s
== 20200406135648 AddIndexToCreatedAtOnResourceMilestoneEvents: migrated (0.0268s)
== 20200406192059 AddWriteRegistryToDeployTokens: migrating ===================
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0008s
-- transaction()
-- add_column(:deploy_tokens, :write_registry, :boolean, {:default=>nil})
-> 0.0021s
-- change_column_default(:deploy_tokens, :write_registry, false)
-> 0.0031s
-> 0.0090s
-- columns(:deploy_tokens)
-> 0.0029s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"deploy_tokens\"")
-> 0.0017s
-- exec_query("SELECT \"deploy_tokens\".\"id\" FROM \"deploy_tokens\" ORDER BY \"deploy_tokens\".\"id\" ASC LIMIT 1")
-> 0.0016s
-- exec_query("SELECT \"deploy_tokens\".\"id\" FROM \"deploy_tokens\" WHERE \"deploy_tokens\".\"id\" >= 1 ORDER BY \"deploy_tokens\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0008s
-- execute("UPDATE \"deploy_tokens\" SET \"write_registry\" = FALSE WHERE \"deploy_tokens\".\"id\" >= 1")
-> 0.0039s
-- change_column_null(:deploy_tokens, :write_registry, false)
-> 0.0038s
-- execute("RESET ALL")
-> 0.0005s
== 20200406192059 AddWriteRegistryToDeployTokens: migrated (0.0259s) ==========
== 20200406193427 AddIndexToIssuesHealthStatus: migrating =====================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:issues, :health_status, {:where=>"health_status IS NOT NULL", :name=>"idx_issues_on_health_status_not_null", :algorithm=>:concurrently})
-> 0.0212s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:issues, :health_status, {:where=>"health_status IS NOT NULL", :name=>"idx_issues_on_health_status_not_null", :algorithm=>:concurrently})
-> 0.0135s
-- execute("RESET ALL")
-> 0.0006s
== 20200406193427 AddIndexToIssuesHealthStatus: migrated (0.0360s) ============
== 20200407094005 DropVulnerabilitySeverityIndex: migrating ===================
-- transaction_open?()
-> 0.0000s
-- indexes(:vulnerability_occurrences)
-> 0.0114s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- remove_index(:vulnerability_occurrences, {:algorithm=>:concurrently, :name=>"undefined_vulnerabilities"})
-> 0.0073s
-- execute("RESET ALL")
-> 0.0005s
== 20200407094005 DropVulnerabilitySeverityIndex: migrated (0.0200s) ==========
== 20200407094923 DropVulnerabilitiesSeverityIndex: migrating =================
-- transaction_open?()
-> 0.0000s
-- indexes(:vulnerabilities)
-> 0.0147s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- remove_index(:vulnerabilities, {:algorithm=>:concurrently, :name=>"undefined_vulnerability"})
-> 0.0048s
-- execute("RESET ALL")
-> 0.0006s
== 20200407094923 DropVulnerabilitiesSeverityIndex: migrated (0.0210s) ========
== 20200407120000 AddPushRuleIdToGroups: migrating ============================
-- add_column(:namespaces, :push_rule_id, :bigint)
-> 0.0013s
== 20200407120000 AddPushRuleIdToGroups: migrated (0.0040s) ===================
== 20200407121321 AddPushRuleForeignKeyToGroups: migrating ====================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:namespaces, :push_rule_id, {:unique=>true, :algorithm=>:concurrently})
-> 0.0140s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:namespaces, :push_rule_id, {:unique=>true, :algorithm=>:concurrently})
-> 0.0180s
-- execute("RESET ALL")
-> 0.0006s
-- transaction_open?()
-> 0.0000s
-- foreign_keys(:namespaces)
-> 0.0052s
-- execute("ALTER TABLE namespaces\nADD CONSTRAINT fk_3448c97865\nFOREIGN KEY (push_rule_id)\nREFERENCES push_rules (id)\nON DELETE SET NULL\nNOT VALID;\n")
-> 0.0021s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- execute("ALTER TABLE namespaces VALIDATE CONSTRAINT fk_3448c97865;")
-> 0.0057s
-- execute("RESET ALL")
-> 0.0005s
== 20200407121321 AddPushRuleForeignKeyToGroups: migrated (0.0581s) ===========
== 20200407171133 AddProtectedTagCreateAccessLevelsUserIdForeignKey: migrating
-- add_foreign_key(:protected_tag_create_access_levels, :users, {:on_delete=>:cascade, :validate=>false, :name=>"fk_protected_tag_create_access_levels_user_id"})
-> 0.0021s
-- foreign_keys(:protected_tag_create_access_levels)
-> 0.0032s
-- remove_foreign_key(:protected_tag_create_access_levels, {:column=>:user_id, :on_delete=>nil})
-> 0.0070s
== 20200407171133 AddProtectedTagCreateAccessLevelsUserIdForeignKey: migrated (0.0184s)
== 20200407171417 ValidateProtectedTagCreateAccessLevelsUserIdForeignKey: migrating
-- foreign_keys(:protected_tag_create_access_levels)
-> 0.0040s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- execute("ALTER TABLE protected_tag_create_access_levels VALIDATE CONSTRAINT fk_protected_tag_create_access_levels_user_id;")
-> 0.0047s
-- execute("RESET ALL")
-> 0.0005s
== 20200407171417 ValidateProtectedTagCreateAccessLevelsUserIdForeignKey: migrated (0.0099s)
== 20200408110856 AddNginxFiveHundredPercentageMetric: migrating ==============
== 20200408110856 AddNginxFiveHundredPercentageMetric: migrated (0.0881s) =====
== 20200408133211 AddIndexOnRoutePathTrigram: migrating =======================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:routes, :path, {:name=>"index_routes_on_path_trigram", :using=>:gin, :opclass=>{:path=>:gin_trgm_ops}, :algorithm=>:concurrently})
-> 0.0052s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:routes, :path, {:name=>"index_routes_on_path_trigram", :using=>:gin, :opclass=>{:path=>:gin_trgm_ops}, :algorithm=>:concurrently})
-> 0.0397s
-- execute("RESET ALL")
-> 0.0004s
== 20200408133211 AddIndexOnRoutePathTrigram: migrated (0.0462s) ==============
== 20200408153842 AddIndexOnCreatorIdAndIdOnProjects: migrating ===============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:creator_id, :id], {:algorithm=>:concurrently})
-> 0.0514s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:projects, [:creator_id, :id], {:algorithm=>:concurrently})
-> 0.0170s
-- execute("RESET ALL")
-> 0.0006s
== 20200408153842 AddIndexOnCreatorIdAndIdOnProjects: migrated (0.0697s) ======
== 20200408154331 AddProtectedBranchMergeAccessLevelsUserIdForeignKey: migrating
-- add_foreign_key(:protected_branch_merge_access_levels, :users, {:on_delete=>:cascade, :validate=>false, :name=>"fk_protected_branch_merge_access_levels_user_id"})
-> 0.0023s
-- foreign_keys(:protected_branch_merge_access_levels)
-> 0.0052s
-- remove_foreign_key(:protected_branch_merge_access_levels, {:column=>:user_id, :on_delete=>nil})
-> 0.0080s
== 20200408154331 AddProtectedBranchMergeAccessLevelsUserIdForeignKey: migrated (0.0215s)
== 20200408154349 ValidateProtectedBranchMergeAccessLevelsUserIdForeignKey: migrating
-- foreign_keys(:protected_branch_merge_access_levels)
-> 0.0053s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- execute("ALTER TABLE protected_branch_merge_access_levels VALIDATE CONSTRAINT fk_protected_branch_merge_access_levels_user_id;")
-> 0.0043s
-- execute("RESET ALL")
-> 0.0005s
== 20200408154349 ValidateProtectedBranchMergeAccessLevelsUserIdForeignKey: migrated (0.0109s)
== 20200408154411 AddPathLocksUserIdForeignKey: migrating =====================
-- add_foreign_key(:path_locks, :users, {:on_delete=>:cascade, :validate=>false, :name=>"fk_path_locks_user_id"})
-> 0.0014s
-- foreign_keys(:path_locks)
-> 0.0028s
-- remove_foreign_key(:path_locks, {:column=>:user_id, :on_delete=>nil})
-> 0.0047s
== 20200408154411 AddPathLocksUserIdForeignKey: migrated (0.0143s) ============
== 20200408154428 ValidatePathLocksUserIdForeignKey: migrating ================
-- foreign_keys(:path_locks)
-> 0.0056s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- execute("ALTER TABLE path_locks VALIDATE CONSTRAINT fk_path_locks_user_id;")
-> 0.0039s
-- execute("RESET ALL")
-> 0.0004s
== 20200408154428 ValidatePathLocksUserIdForeignKey: migrated (0.0109s) =======
== 20200408154455 AddProtectedBranchPushAccessLevelsUserIdForeignKey: migrating
-- add_foreign_key(:protected_branch_push_access_levels, :users, {:on_delete=>:cascade, :validate=>false, :name=>"fk_protected_branch_push_access_levels_user_id"})
-> 0.0021s
-- foreign_keys(:protected_branch_push_access_levels)
-> 0.0047s
-- remove_foreign_key(:protected_branch_push_access_levels, {:column=>:user_id, :on_delete=>nil})
-> 0.0057s
== 20200408154455 AddProtectedBranchPushAccessLevelsUserIdForeignKey: migrated (0.0172s)
== 20200408154533 ValidateProtectedBranchPushAccessLevelsUserIdForeignKey: migrating
-- foreign_keys(:protected_branch_push_access_levels)
-> 0.0039s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- execute("ALTER TABLE protected_branch_push_access_levels VALIDATE CONSTRAINT fk_protected_branch_push_access_levels_user_id;")
-> 0.0024s
-- execute("RESET ALL")
-> 0.0005s
== 20200408154533 ValidateProtectedBranchPushAccessLevelsUserIdForeignKey: migrated (0.0077s)
== 20200408154604 AddU2fRegistrationsUserIdForeignKey: migrating ==============
-- add_foreign_key(:u2f_registrations, :users, {:on_delete=>:cascade, :validate=>false, :name=>"fk_u2f_registrations_user_id"})
-> 0.0023s
-- foreign_keys(:u2f_registrations)
-> 0.0052s
-- remove_foreign_key(:u2f_registrations, {:column=>:user_id, :on_delete=>nil})
-> 0.0052s
== 20200408154604 AddU2fRegistrationsUserIdForeignKey: migrated (0.0192s) =====
== 20200408154624 ValidateU2fRegistrationsUserIdForeignKey: migrating =========
-- foreign_keys(:u2f_registrations)
-> 0.0035s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- execute("ALTER TABLE u2f_registrations VALIDATE CONSTRAINT fk_u2f_registrations_user_id;")
-> 0.0014s
-- execute("RESET ALL")
-> 0.0004s
== 20200408154624 ValidateU2fRegistrationsUserIdForeignKey: migrated (0.0060s)
== 20200408175424 AddIndexOnCreatorIdCreatedAtIdToProjectsTable: migrating ====
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:creator_id, :created_at, :id], {:algorithm=>:concurrently})
-> 0.0434s
-- execute("SET statement_timeout TO 0")
-> 0.0007s
-- add_index(:projects, [:creator_id, :created_at, :id], {:algorithm=>:concurrently})
-> 0.0173s
-- execute("RESET ALL")
-> 0.0007s
== 20200408175424 AddIndexOnCreatorIdCreatedAtIdToProjectsTable: migrated (0.0623s)
== 20200408212219 AddStatusPageUrlToStatusPageSettings: migrating =============
-- add_column(:status_page_settings, :status_page_url, :text)
-> 0.0043s
-- transaction_open?()
-> 0.0000s
-- execute("ALTER TABLE status_page_settings\nADD CONSTRAINT check_75a79cd992\nCHECK ( char_length(status_page_url) <= 1024 )\nNOT VALID;\n")
-> 0.0015s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- execute("ALTER TABLE status_page_settings VALIDATE CONSTRAINT check_75a79cd992;")
-> 0.0033s
-- execute("RESET ALL")
-> 0.0004s
== 20200408212219 AddStatusPageUrlToStatusPageSettings: migrated (0.0181s) ====
== 20200409085956 AddPartialIndexOnImportFailuresRetryCount: migrating ========
-- transaction_open?()
-> 0.0000s
-- index_exists?(:import_failures, [:project_id, :correlation_id_value], {:where=>"retry_count = 0", :algorithm=>:concurrently})
-> 0.0053s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- add_index(:import_failures, [:project_id, :correlation_id_value], {:where=>"retry_count = 0", :algorithm=>:concurrently})
-> 0.0139s
-- execute("RESET ALL")
-> 0.0005s
== 20200409085956 AddPartialIndexOnImportFailuresRetryCount: migrated (0.0206s)
== 20200409211607 MigrateLegacyAttachments: migrating =========================
== 20200409211607 MigrateLegacyAttachments: migrated (0.0121s) ================
== 20200410232012 AddMetricsDashboardAccessLevelToProjectFeature: migrating ===
-- add_column(:project_features, :metrics_dashboard_access_level, :integer)
-> 0.0012s
== 20200410232012 AddMetricsDashboardAccessLevelToProjectFeature: migrated (0.0037s)
== 20200413072059 AddGroupOwnersCanManageDefaultBranchProtectionToApplicationSettings: migrating
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- transaction()
-- add_column(:application_settings, :group_owners_can_manage_default_branch_protection, :boolean, {:default=>nil})
-> 0.0027s
-- change_column_default(:application_settings, :group_owners_can_manage_default_branch_protection, true)
-> 0.0424s
-> 0.0484s
-- columns(:application_settings)
-> 0.0410s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"application_settings\"")
-> 0.0010s
-- exec_query("SELECT \"application_settings\".\"id\" FROM \"application_settings\" ORDER BY \"application_settings\".\"id\" ASC LIMIT 1")
-> 0.0009s
-- exec_query("SELECT \"application_settings\".\"id\" FROM \"application_settings\" WHERE \"application_settings\".\"id\" >= 1 ORDER BY \"application_settings\".\"id\" ASC LIMIT 1 OFFSET 1")NOTICE: constraint "lfs_objects_file_store_not_null" of relation "lfs_objects" does not exist, skipping
NOTICE: constraint "ci_job_artifacts_file_store_not_null" of relation "ci_job_artifacts" does not exist, skipping
NOTICE: constraint "uploads_store_not_null" of relation "uploads" does not exist, skipping
-> 0.0008s
-- execute("UPDATE \"application_settings\" SET \"group_owners_can_manage_default_branch_protection\" = TRUE WHERE \"application_settings\".\"id\" >= 1")
-> 0.0032s
-- change_column_null(:application_settings, :group_owners_can_manage_default_branch_protection, false)
-> 0.0039s
-- execute("RESET ALL")
-> 0.0006s
== 20200413072059 AddGroupOwnersCanManageDefaultBranchProtectionToApplicationSettings: migrated (0.1016s)
== 20200414144547 RemoveIndexProjectsOnCreatorIdAndCreatedAtFromProjects: migrating
-- transaction_open?()
-> 0.0000s
-- indexes(:projects)
-> 0.0513s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- remove_index(:projects, {:algorithm=>:concurrently, :name=>"index_projects_on_creator_id_and_created_at"})
-> 0.0047s
-- execute("RESET ALL")
-> 0.0005s
== 20200414144547 RemoveIndexProjectsOnCreatorIdAndCreatedAtFromProjects: migrated (0.0572s)
== 20200415160722 RemoveNotNullLfsObjectsConstraint: migrating ================
-- execute("ALTER TABLE lfs_objects DROP CONSTRAINT IF EXISTS lfs_objects_file_store_not_null;\n")
-> 0.0009s
== 20200415160722 RemoveNotNullLfsObjectsConstraint: migrated (0.0036s) =======
== 20200415161021 RemoveNotNullCiJobArtifactsConstraint: migrating ============
-- execute("ALTER TABLE ci_job_artifacts DROP CONSTRAINT IF EXISTS ci_job_artifacts_file_store_not_null;\n")
-> 0.0006s
== 20200415161021 RemoveNotNullCiJobArtifactsConstraint: migrated (0.0033s) ===
== 20200415161206 RemoveNotNullUploadsConstraint: migrating ===================
-- execute("ALTER TABLE uploads DROP CONSTRAINT IF EXISTS uploads_store_not_null;\n")
-> 0.0010s
== 20200415161206 RemoveNotNullUploadsConstraint: migrated (0.0050s) ==========
== 20200415192656 AddNameRegexKeepToContainerExpirationPolicies: migrating ====
-- add_column(:container_expiration_policies, :name_regex_keep, :text)
-> 0.0110s
-- transaction_open?()
-> 0.0000s
-- execute("ALTER TABLE container_expiration_policies\nADD CONSTRAINT container_expiration_policies_name_regex_keep\nCHECK ( char_length(name_regex_keep) <= 255 )\nNOT VALID;\n")
-> 0.0009s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- execute("ALTER TABLE container_expiration_policies VALIDATE CONSTRAINT container_expiration_policies_name_regex_keep;")
-> 0.0036s
-- execute("RESET ALL")
-> 0.0006s
== 20200415192656 AddNameRegexKeepToContainerExpirationPolicies: migrated (0.0234s)
== 20200416120128 AddColumnsToTerraformState: migrating =======================
-- add_column(:terraform_states, :lock_xid, :string, {:limit=>255})
-> 0.0090s
-- add_column(:terraform_states, :locked_at, :datetime_with_timezone)
-> 0.0008s
-- add_column(:terraform_states, :locked_by_user_id, :bigint)
-> 0.1099s
-- add_column(:terraform_states, :uuid, :string, {:limit=>32, :null=>false})
-> 0.0008s
-- add_column(:terraform_states, :name, :string, {:limit=>255})
-> 0.0006s
-- add_index(:terraform_states, :locked_by_user_id)
-> 0.0101s
-- add_index(:terraform_states, :uuid, {:unique=>true})
-> 0.0095s
-- add_index(:terraform_states, [:project_id, :name], {:unique=>true})
-> 0.0089s
-- remove_index(:terraform_states, :project_id)
-> 0.0084s
== 20200416120128 AddColumnsToTerraformState: migrated (0.1586s) ==============
== 20200416120354 AddLockedByUserIdForeignKeyToTerraformState: migrating ======
-- add_foreign_key(:terraform_states, :users, {:column=>:locked_by_user_id})
-> 0.0026s
== 20200416120354 AddLockedByUserIdForeignKeyToTerraformState: migrated (0.0061s)
pg_dump: server version: 11.7; pg_dump version: 9.6.17
pg_dump: aborting because of server version mismatch
rake aborted!
failed to execute:
pg_dump -s -x -O -f /opt/gitlab/embedded/service/gitlab-rails/db/structure.sql -T untracked_files_for_uploads gitlabhq_production
Please check the output above for any errors and make sure that `pg_dump` is installed in your PATH and has proper permissions.
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:49:in `block (3 levels) in <top (required)>'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
Tasks: TOP => db:structure:dump
(See full trace by running task with --trace)
================================================================================
Error executing action `run` on resource 'bash[migrate gitlab-rails database]'
================================================================================
Mixlib::ShellOut::ShellCommandFailed
------------------------------------
Expected process to exit with [0], but received '1'
---- Begin output of "bash" "/tmp/chef-script20200424-225089-165iq0i" ----
STDOUT: == 20200204113225 ScheduleRecalculateProjectAuthorizationsThirdRun: migrating =
-- Scheduling RecalculateProjectAuthorizationsWithMinMaxUserId jobs
== 20200204113225 ScheduleRecalculateProjectAuthorizationsThirdRun: migrated (0.0948s)
== 20200204131831 CreateDailyReportResults: migrating =========================
-- create_table(:ci_daily_report_results)
-> 0.0887s
== 20200204131831 CreateDailyReportResults: migrated (0.0887s) ================
== 20200213100530 AddVerificationColumnsToPackages: migrating =================
-- add_column(:packages_package_files, :verification_retry_at, :datetime_with_timezone)
-> 0.0025s
-- add_column(:packages_package_files, :verified_at, :datetime_with_timezone)
-> 0.0009s
-- add_column(:packages_package_files, :verification_checksum, :string, {:limit=>255})
-> 0.0018s
-- add_column(:packages_package_files, :verification_failure, :string, {:limit=>255})
-> 0.0012s
-- add_column(:packages_package_files, :verification_retry_count, :integer)
-> 0.0010s
== 20200213100530 AddVerificationColumnsToPackages: migrated (0.0076s) ========
== 20200214025454 AddCanonicalEmails: migrating ===============================
-- create_table(:user_canonical_emails)
-> 0.0306s
-- add_index(:user_canonical_emails, [:user_id, :canonical_email], {:unique=>true})
-> 0.0127s
-- add_index(:user_canonical_emails, :user_id, {:unique=>true})
-> 0.0091s
== 20200214025454 AddCanonicalEmails: migrated (0.0601s) ======================
== 20200219135440 AddLimitMetricTypeToList: migrating =========================
-- add_column(:lists, :limit_metric, :string, {:limit=>20})
-> 0.0021s
== 20200219135440 AddLimitMetricTypeToList: migrated (0.0021s) ================
== 20200220115023 FixProjectsWithoutPrometheusService: migrating ==============
== 20200220115023 FixProjectsWithoutPrometheusService: migrated (0.0894s) =====
== 20200226124757 RemoveHealthStatusFromEpics: migrating ======================
-- remove_column(:epics, :health_status)
-> 0.0051s
== 20200226124757 RemoveHealthStatusFromEpics: migrated (0.0072s) =============
== 20200302152516 AddWikiSlug: migrating ======================================
-- create_table(:wiki_page_meta, {:id=>:serial})
-> 0.0236s
-- create_table(:wiki_page_slugs, {:id=>:serial})
-> 0.0479s
== 20200302152516 AddWikiSlug: migrated (0.0715s) =============================
== 20200303181648 AddHealthyToClustersApplicationsPrometheus: migrating =======
-- add_column(:clusters_applications_prometheus, :healthy, :boolean)
-> 0.0015s
== 20200303181648 AddHealthyToClustersApplicationsPrometheus: migrated (0.0015s)
== 20200304124406 AddUnlockMembershipToLdapOfGroups: migrating ================
-- add_column(:namespaces, :unlock_membership_to_ldap, :boolean)
-> 0.0012s
== 20200304124406 AddUnlockMembershipToLdapOfGroups: migrated (0.0030s) =======
== 20200305200641 CreateTerraformStates: migrating ============================
-- create_table(:terraform_states)
-> 0.0231s
== 20200305200641 CreateTerraformStates: migrated (0.0231s) ===================
== 20200311074438 MigrateBotTypeToUserType: migrating =========================
-- execute("UPDATE users SET user_type = bot_type WHERE bot_type IS NOT NULL AND user_type IS NULL")
-> 0.0140s
== 20200311074438 MigrateBotTypeToUserType: migrated (0.0141s) ================
== 20200311082301 AddUserStateIndex: migrating ================================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:users, [:state, :user_type], {:where=>"ghost IS NOT TRUE", :name=>"index_users_on_state_and_user_type_internal", :algorithm=>:concurrently})
-> 0.0268s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:users, [:state, :user_type], {:where=>"ghost IS NOT TRUE", :name=>"index_users_on_state_and_user_type_internal", :algorithm=>:concurrently})
-> 0.0152s
-- execute("RESET ALL")
-> 0.0005s
-- transaction_open?()
-> 0.0000s
-- indexes(:users)
-> 0.0245s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- remove_index(:users, {:algorithm=>:concurrently, :name=>"index_users_on_state_and_internal_ee"})
-> 0.0063s
-- execute("RESET ALL")
-> 0.0004s
-- transaction_open?()
-> 0.0000s
-- indexes(:users)
-> 0.0225s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- remove_index(:users, {:algorithm=>:concurrently, :name=>"index_users_on_state_and_internal"})
-> 0.0043s
-- execute("RESET ALL")
-> 0.0003s
== 20200311082301 AddUserStateIndex: migrated (0.1026s) =======================
== 20200311130802 SchedulePopulateUserHighestRolesTable: migrating ============
== 20200311130802 SchedulePopulateUserHighestRolesTable: migrated (0.0683s) ===
== 20200311154110 CreateVulnerabilityExports: migrating =======================
-- create_table(:vulnerability_exports)
-> 0.0339s
== 20200311154110 CreateVulnerabilityExports: migrated (0.0339s) ==============
== 20200311214912 AddModsecurityModeToIngressApplication: migrating ===========
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0008s
-- transaction()
-- add_column(:clusters_applications_ingress, :modsecurity_mode, :smallint, {:default=>nil})
-> 0.0023s
-- change_column_default(:clusters_applications_ingress, :modsecurity_mode, 0)
-> 0.0034s
-> 0.0090s
-- columns(:clusters_applications_ingress)
-> 0.0017s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"clusters_applications_ingress\"")
-> 0.0015s
-- change_column_null(:clusters_applications_ingress, :modsecurity_mode, false)
-> 0.0031s
-- execute("RESET ALL")
-> 0.0004s
== 20200311214912 AddModsecurityModeToIngressApplication: migrated (0.0172s) ==
== 20200312053852 PopulateCanonicalEmails: migrating ==========================
== 20200312053852 PopulateCanonicalEmails: migrated (0.0050s) =================
== 20200312125121 AddIndexOnActiveAndTemplateAndTypeAndIdToServices: migrating
-- transaction_open?()
-> 0.0000s
-- index_exists?(:services, [:type, :id, :template], {:where=>"active = TRUE", :name=>"index_services_on_type_and_id_and_template_when_active", :algorithm=>:concurrently})
-> 0.0065s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:services, [:type, :id, :template], {:where=>"active = TRUE", :name=>"index_services_on_type_and_id_and_template_when_active", :algorithm=>:concurrently})
-> 0.0193s
-- execute("RESET ALL")
-> 0.0003s
== 20200312125121 AddIndexOnActiveAndTemplateAndTypeAndIdToServices: migrated (0.0269s)
== 20200312160532 AddIndexOnMirrorAndIdToProjects: migrating ==================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, :id, {:where=>"mirror = TRUE AND mirror_trigger_builds = TRUE", :name=>"index_projects_on_mirror_id_where_mirror_and_trigger_builds", :algorithm=>:concurrently})
-> 0.0275s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:projects, :id, {:where=>"mirror = TRUE AND mirror_trigger_builds = TRUE", :name=>"index_projects_on_mirror_id_where_mirror_and_trigger_builds", :algorithm=>:concurrently})
-> 0.0141s
-- execute("RESET ALL")
-> 0.0003s
-- transaction_open?()
-> 0.0000s
-- indexes(:projects)
-> 0.0278s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- remove_index(:projects, {:algorithm=>:concurrently, :name=>"index_projects_on_mirror_and_mirror_trigger_builds_both_true"})
-> 0.0062s
-- execute("RESET ALL")
-> 0.0005s
== 20200312160532 AddIndexOnMirrorAndIdToProjects: migrated (0.0775s) =========
== 20200313101649 FillGhostUserType: migrating ================================
-- execute("UPDATE users SET user_type = 5 WHERE ghost IS TRUE AND user_type IS NULL")
-> 0.0021s
== 20200313101649 FillGhostUserType: migrated (0.0022s) =======================
== 20200313202430 AddIndexChatNameServiceId: migrating ========================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:chat_names, :service_id, {:algorithm=>:concurrently})
-> 0.0026s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:chat_names, :service_id, {:algorithm=>:concurrently})
-> 0.0134s
-- execute("RESET ALL")
-> 0.0004s
== 20200313202430 AddIndexChatNameServiceId: migrated (0.0181s) ===============
== 20200313203525 AddInvalidForeignKeyFromChatNameToService: migrating ========
-- transaction_open?()
-> 0.0000s
-- foreign_keys(:chat_names)
-> 0.0047s
-- execute("ALTER TABLE chat_names\nADD CONSTRAINT fk_00797a2bf9\nFOREIGN KEY (service_id)\nREFERENCES services (id)\nON DELETE CASCADE\nNOT VALID;\n")
-> 0.0019s
== 20200313203525 AddInvalidForeignKeyFromChatNameToService: migrated (0.0131s)
== 20200313203550 RemoveOrphanedChatNames: migrating ==========================
-- execute("DELETE FROM chat_names WHERE service_id NOT IN(SELECT id FROM services WHERE services.type = 'chat')")
-> 0.0032s
== 20200313203550 RemoveOrphanedChatNames: migrated (0.0034s) =================
== 20200313204021 ValidateForeignKeyFromChatNameToService: migrating ==========
-- foreign_keys(:chat_names)
-> 0.0032s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- execute("ALTER TABLE chat_names VALIDATE CONSTRAINT fk_00797a2bf9;")
-> 0.0010s
-- execute("RESET ALL")
-> 0.0004s
== 20200313204021 ValidateForeignKeyFromChatNameToService: migrated (0.0053s) =
== 20200314060834 AddScannedResourcesCountToSecurityScan: migrating ===========
-- add_column(:security_scans, :scanned_resources_count, :integer)
-> 0.0087s
== 20200314060834 AddScannedResourcesCountToSecurityScan: migrated (0.0087s) ==
== 20200316111759 AddIndexOnIdAndLdapKeyToKeys: migrating =====================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:keys, [:id], {:where=>"type = 'LDAPKey'", :name=>"index_keys_on_id_and_ldap_key_type", :algorithm=>:concurrently})
-> 0.0061s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- add_index(:keys, [:id], {:where=>"type = 'LDAPKey'", :name=>"index_keys_on_id_and_ldap_key_type", :algorithm=>:concurrently})
-> 0.0129s
-- execute("RESET ALL")
-> 0.0003s
== 20200316111759 AddIndexOnIdAndLdapKeyToKeys: migrated (0.0199s) ============
== 20200316162648 AddIndexOnNamespaceIdAndIdToProjects: migrating =============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:namespace_id, :id], {:algorithm=>:concurrently})
-> 0.0378s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- add_index(:projects, [:namespace_id, :id], {:algorithm=>:concurrently})
-> 0.0165s
-- execute("RESET ALL")
-> 0.0005s
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, :namespace_id, {:algorithm=>:concurrently})
-> 0.0307s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- remove_index(:projects, {:algorithm=>:concurrently, :column=>:namespace_id})
-> 0.0305s
-- execute("RESET ALL")
-> 0.0004s
== 20200316162648 AddIndexOnNamespaceIdAndIdToProjects: migrated (0.1178s) ====
== 20200316173312 AddVulnerabilityExportProjectForeignKey: migrating ==========
-- add_foreign_key(:vulnerability_exports, :projects, {:column=>:project_id, :on_delete=>:cascade, :index=>false})
-> 0.0025s
== 20200316173312 AddVulnerabilityExportProjectForeignKey: migrated (0.0046s) =
== 20200317110602 AddMigratingUserHighestRolesTableIndexToUsers: migrating ====
-- transaction_open?()
-> 0.0000s
-- index_exists?(:users, :id, {:where=>"state = 'active' AND user_type IS NULL AND bot_type IS NULL AND ghost IS NOT TRUE", :name=>"index_for_migrating_user_highest_roles_table", :algorithm=>:concurrently})
-> 0.0270s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- add_index(:users, :id, {:where=>"state = 'active' AND user_type IS NULL AND bot_type IS NULL AND ghost IS NOT TRUE", :name=>"index_for_migrating_user_highest_roles_table", :algorithm=>:concurrently})
-> 0.0165s
-- execute("RESET ALL")
-> 0.0005s
== 20200317110602 AddMigratingUserHighestRolesTableIndexToUsers: migrated (0.0448s)
== 20200317142110 AddVulnerabilityExportUserForeignKey: migrating =============
-- add_foreign_key(:vulnerability_exports, :users, {:column=>:author_id, :on_delete=>:cascade, :index=>false})
-> 0.0030s
== 20200317142110 AddVulnerabilityExportUserForeignKey: migrated (0.0057s) ====
== 20200318140400 CreateVulnerabilityUserMentions: migrating ==================
-- create_table(:vulnerability_user_mentions)
-> 0.0311s
-- add_index(:vulnerability_user_mentions, [:vulnerability_id], {:where=>"note_id is null", :unique=>true, :name=>"index_vulns_user_mentions_on_vulnerability_id"})
-> 0.0090s
-- add_index(:vulnerability_user_mentions, [:vulnerability_id, :note_id], {:unique=>true, :name=>"index_vulns_user_mentions_on_vulnerability_id_and_note_id"})
-> 0.0094s
== 20200318140400 CreateVulnerabilityUserMentions: migrated (0.0497s) =========
== 20200318152134 AddsSha256ToPackageFiles: migrating =========================
-- add_column(:packages_package_files, :file_sha256, :binary)
-> 0.0021s
== 20200318152134 AddsSha256ToPackageFiles: migrated (0.0022s) ================
== 20200318162148 AddExternalKeyToIssuesTable: migrating ======================
-- add_column(:issues, :external_key, :string, {:limit=>255})
-> 0.0013s
== 20200318162148 AddExternalKeyToIssuesTable: migrated (0.0049s) =============
== 20200318163148 AddIndexOnExternalKeyToIssuesTable: migrating ===============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:issues, [:project_id, :external_key], {:unique=>true, :where=>"external_key IS NOT NULL", :algorithm=>:concurrently})
-> 0.0179s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:issues, [:project_id, :external_key], {:unique=>true, :where=>"external_key IS NOT NULL", :algorithm=>:concurrently})
-> 0.0155s
-- execute("RESET ALL")
-> 0.0004s
== 20200318163148 AddIndexOnExternalKeyToIssuesTable: migrated (0.0346s) ======
== 20200318164448 AddExternalKeyToEpicsTable: migrating =======================
-- add_column(:epics, :external_key, :string, {:limit=>255})
-> 0.0011s
== 20200318164448 AddExternalKeyToEpicsTable: migrated (0.0037s) ==============
== 20200318165448 AddIndexOnExternalKeyToEpicsTable: migrating ================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:epics, [:group_id, :external_key], {:unique=>true, :where=>"external_key IS NOT NULL", :algorithm=>:concurrently})
-> 0.0120s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:epics, [:group_id, :external_key], {:unique=>true, :where=>"external_key IS NOT NULL", :algorithm=>:concurrently})
-> 0.0166s
-- execute("RESET ALL")
-> 0.0007s
== 20200318165448 AddIndexOnExternalKeyToEpicsTable: migrated (0.0299s) =======
== 20200318175008 AddIndexOnIdAndArchivedAndPendingDeleteToProjects: migrating
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, :id, {:where=>"archived = FALSE AND pending_delete = FALSE", :name=>"index_projects_on_id_and_archived_and_pending_delete", :algorithm=>:concurrently})
-> 0.0340s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:projects, :id, {:where=>"archived = FALSE AND pending_delete = FALSE", :name=>"index_projects_on_id_and_archived_and_pending_delete", :algorithm=>:concurrently})
-> 0.0174s
-- execute("RESET ALL")
-> 0.0004s
== 20200318175008 AddIndexOnIdAndArchivedAndPendingDeleteToProjects: migrated (0.0523s)
== 20200318183553 CreatePypiPackageMetadata: migrating ========================
-- create_table(:packages_pypi_metadata, {:id=>false})
-> 0.0109s
== 20200318183553 CreatePypiPackageMetadata: migrated (0.0109s) ===============
== 20200319071702 ConsumeRemainingLinkLfsObjectsProjectsJobs: migrating =======
== 20200319071702 ConsumeRemainingLinkLfsObjectsProjectsJobs: migrated (0.0023s)
== 20200319123041 UpdatePlanLimitsDefaults: migrating =========================
-- change_column_default(:plan_limits, :project_hooks, 100)
-> 0.0041s
-- change_column_default(:plan_limits, :group_hooks, 50)
-> 0.0027s
-- change_column_default(:plan_limits, :ci_project_subscriptions, 2)
-> 0.0028s
-- change_column_default(:plan_limits, :ci_pipeline_schedules, 10)
-> 0.0024s
== 20200319123041 UpdatePlanLimitsDefaults: migrated (0.0124s) ================
== 20200319124127 CreateMetricsDashboardAnnotations: migrating ================
-- create_table(:metrics_dashboard_annotations)
-> 0.0431s
== 20200319124127 CreateMetricsDashboardAnnotations: migrated (0.0431s) =======
== 20200319203901 AddIndexOnUsersUnlockToken: migrating =======================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:users, :unlock_token, {:unique=>true, :name=>"index_users_on_unlock_token", :algorithm=>:concurrently})
-> 0.0204s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:users, :unlock_token, {:unique=>true, :name=>"index_users_on_unlock_token", :algorithm=>:concurrently})
-> 0.0160s
-- execute("RESET ALL")
-> 0.0006s
== 20200319203901 AddIndexOnUsersUnlockToken: migrated (0.0377s) ==============
== 20200320112455 AddCostFactorFiledsToCiRunners: migrating ===================
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- transaction()
-- add_column(:ci_runners, :public_projects_minutes_cost_factor, :float, {:default=>nil})
-> 0.0022s
-- change_column_default(:ci_runners, :public_projects_minutes_cost_factor, 0.0)
-> 0.0063s
-> 0.0126s
-- columns(:ci_runners)
-> 0.0049s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"ci_runners\"")
-> 0.0044s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1")
-> 0.0009s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" WHERE \"ci_runners\".\"id\" >= 1 ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0010s
-- execute("UPDATE \"ci_runners\" SET \"public_projects_minutes_cost_factor\" = 0.0 WHERE \"ci_runners\".\"id\" >= 1 AND \"ci_runners\".\"id\" < 2")
-> 0.0034s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" WHERE \"ci_runners\".\"id\" >= 2 ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0009s
-- execute("UPDATE \"ci_runners\" SET \"public_projects_minutes_cost_factor\" = 0.0 WHERE \"ci_runners\".\"id\" >= 2 AND \"ci_runners\".\"id\" < 7")
-> 0.0037s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" WHERE \"ci_runners\".\"id\" >= 7 ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0010s
-- execute("UPDATE \"ci_runners\" SET \"public_projects_minutes_cost_factor\" = 0.0 WHERE \"ci_runners\".\"id\" >= 7")
-> 0.0033s
-- change_column_null(:ci_runners, :public_projects_minutes_cost_factor, false)
-> 0.0030s
-- execute("RESET ALL")
-> 0.0004s
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- transaction()
-- add_column(:ci_runners, :private_projects_minutes_cost_factor, :float, {:default=>nil})
-> 0.0020s
-- change_column_default(:ci_runners, :private_projects_minutes_cost_factor, 1.0)
-> 0.0039s
-> 0.0090s
-- columns(:ci_runners)
-> 0.0051s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"ci_runners\"")
-> 0.0007s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1")
-> 0.0008s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" WHERE \"ci_runners\".\"id\" >= 1 ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0007s
-- execute("UPDATE \"ci_runners\" SET \"private_projects_minutes_cost_factor\" = 1.0 WHERE \"ci_runners\".\"id\" >= 1 AND \"ci_runners\".\"id\" < 2")
-> 0.0037s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" WHERE \"ci_runners\".\"id\" >= 2 ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0011s
-- execute("UPDATE \"ci_runners\" SET \"private_projects_minutes_cost_factor\" = 1.0 WHERE \"ci_runners\".\"id\" >= 2 AND \"ci_runners\".\"id\" < 7")
-> 0.0034s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" WHERE \"ci_runners\".\"id\" >= 7 ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0009s
-- execute("UPDATE \"ci_runners\" SET \"private_projects_minutes_cost_factor\" = 1.0 WHERE \"ci_runners\".\"id\" >= 7")
-> 0.0031s
-- change_column_null(:ci_runners, :private_projects_minutes_cost_factor, false)
-> 0.0030s
-- execute("RESET ALL")
-> 0.0004s
== 20200320112455 AddCostFactorFiledsToCiRunners: migrated (0.0762s) ==========
== 20200320123839 AddLetsencryptErrorsToPagesDomains: migrating ===============
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- transaction()
-- add_column(:pages_domains, :auto_ssl_failed, :boolean, {:default=>nil})
-> 0.0022s
-- change_column_default(:pages_domains, :auto_ssl_failed, false)
-> 0.0059s
-> 0.0119s
-- columns(:pages_domains)
-> 0.0033s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"pages_domains\"")
-> 0.0015s
-- change_column_null(:pages_domains, :auto_ssl_failed, false)
-> 0.0033s
-- execute("RESET ALL")
-> 0.0006s
== 20200320123839 AddLetsencryptErrorsToPagesDomains: migrated (0.0216s) ======
== 20200323011225 CompleteMigrateSecurityScans: migrating =====================
== 20200323011225 CompleteMigrateSecurityScans: migrated (0.0018s) ============
== 20200323011955 RemoveIndexUsedForScanMigration: migrating ==================
-- index_exists?(:ci_job_artifacts, [:id, :file_type, :job_id, :created_at, :updated_at], {:name=>"job_artifacts_secure_reports_temp_index"})
-> 0.0059s
-- transaction_open?()
-> 0.0000s
-- index_exists?(:ci_job_artifacts, [:id, :file_type, :job_id, :created_at, :updated_at], {:name=>"job_artifacts_secure_reports_temp_index", :algorithm=>:concurrently})
-> 0.0056s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- remove_index(:ci_job_artifacts, {:name=>"job_artifacts_secure_reports_temp_index", :algorithm=>:concurrently, :column=>[:id, :file_type, :job_id, :created_at, :updated_at]})
-> 0.0115s
-- execute("RESET ALL")
-> 0.0005s
== 20200323011955 RemoveIndexUsedForScanMigration: migrated (0.0243s) =========
== 20200323071918 AddBioToUserDetails: migrating ==============================
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- transaction()
-- add_column(:user_details, :bio, :string, {:default=>nil, :limit=>255})
-> 0.0026s
-- change_column_default(:user_details, :bio, "")
-> 0.0032s
-> 0.0095s
-- columns(:user_details)
-> 0.0027s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"user_details\"")
-> 0.0023s
-- exec_query("SELECT \"user_details\".\"user_id\" FROM \"user_details\" ORDER BY \"user_details\".\"user_id\" ASC LIMIT 1")
-> 0.0008s
-- exec_query("SELECT \"user_details\".\"user_id\" FROM \"user_details\" WHERE \"user_details\".\"user_id\" >= 274 ORDER BY \"user_details\".\"user_id\" ASC LIMIT 1 OFFSET 1")
-> 0.0007s
-- execute("UPDATE \"user_details\" SET \"bio\" = '' WHERE \"user_details\".\"user_id\" >= 274")
-> 0.0031s
-- change_column_null(:user_details, :bio, false)
-> 0.0030s
-- execute("RESET ALL")
-> 0.0004s
== 20200323071918 AddBioToUserDetails: migrated (0.0240s) =====================
== 20200323074147 AddTempIndexOnUsersBio: migrating ===========================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:users, :id, {:where=>"(COALESCE(bio, '') IS DISTINCT FROM '')", :name=>"tmp_idx_on_user_id_where_bio_is_filled", :algorithm=>:concurrently})
-> 0.0247s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:users, :id, {:where=>"(COALESCE(bio, '') IS DISTINCT FROM '')", :name=>"tmp_idx_on_user_id_where_bio_is_filled", :algorithm=>:concurrently})
-> 0.0138s
-- execute("RESET ALL")
-> 0.0004s
== 20200323074147 AddTempIndexOnUsersBio: migrated (0.0395s) ==================
== 20200323075043 AddMaxPersonalAccessTokenLifetimeToNamespaces: migrating ====
-- add_column(:namespaces, :max_personal_access_token_lifetime, :integer)
-> 0.0012s
== 20200323075043 AddMaxPersonalAccessTokenLifetimeToNamespaces: migrated (0.0038s)
== 20200323080714 TriggerBackgroundMigrationForUsersBio: migrating ============
== 20200323080714 TriggerBackgroundMigrationForUsersBio: migrated (0.0762s) ===
== 20200323122201 AddIndexOnUserAndCreatedAtToCiBuilds: migrating =============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:ci_builds, [:user_id, :created_at], {:where=>"type = 'Ci::Build'", :name=>"index_ci_builds_on_user_id_and_created_at_and_type_eq_ci_build", :algorithm=>:concurrently})
-> 0.0146s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- add_index(:ci_builds, [:user_id, :created_at], {:where=>"type = 'Ci::Build'", :name=>"index_ci_builds_on_user_id_and_created_at_and_type_eq_ci_build", :algorithm=>:concurrently})
-> 0.0165s
-- execute("RESET ALL")
-> 0.0006s
== 20200323122201 AddIndexOnUserAndCreatedAtToCiBuilds: migrated (0.0322s) ====
== 20200323134519 AddApiIndexesForArchivedProjects: migrating =================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:created_at, :id], {:where=>"archived = true AND visibility_level = 20 AND pending_delete = false", :name=>"index_projects_api_created_at_id_for_archived_vis20", :algorithm=>:concurrently})
-> 0.0324s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- add_index(:projects, [:created_at, :id], {:where=>"archived = true AND visibility_level = 20 AND pending_delete = false", :name=>"index_projects_api_created_at_id_for_archived_vis20", :algorithm=>:concurrently})
-> 0.0134s
-- execute("RESET ALL")
-> 0.0003s
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:created_at, :id], {:where=>"archived = true AND pending_delete = false", :name=>"index_projects_api_created_at_id_for_archived", :algorithm=>:concurrently})
-> 0.0204s
-- execute("SET statement_timeout TO 0")
-> 0.0002s
-- add_index(:projects, [:created_at, :id], {:where=>"archived = true AND pending_delete = false", :name=>"index_projects_api_created_at_id_for_archived", :algorithm=>:concurrently})
-> 0.0129s
-- execute("RESET ALL")
-> 0.0003s
== 20200323134519 AddApiIndexesForArchivedProjects: migrated (0.0806s) ========
== 20200324093258 AddIndexOnIdCreatorIdAndCreatedAtToProjectsTable: migrating =
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:id, :creator_id, :created_at], {:where=>"\"projects\".\"service_desk_enabled\" = TRUE", :name=>"index_service_desk_enabled_projects_on_id_creator_id_created_at", :algorithm=>:concurrently})
-> 0.0301s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- add_index(:projects, [:id, :creator_id, :created_at], {:where=>"\"projects\".\"service_desk_enabled\" = TRUE", :name=>"index_service_desk_enabled_projects_on_id_creator_id_created_at", :algorithm=>:concurrently})
-> 0.0164s
-- execute("RESET ALL")
-> 0.0004s
== 20200324093258 AddIndexOnIdCreatorIdAndCreatedAtToProjectsTable: migrated (0.0474s)
== 20200324115359 AddNamespaceStorageSizeLimitToApplicationSettings: migrating
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- transaction()
-- add_column(:application_settings, :namespace_storage_size_limit, :bigint, {:default=>nil})
-> 0.0028s
-- change_column_default(:application_settings, :namespace_storage_size_limit, 0)
-> 0.0505s
-> 0.0571s
-- columns(:application_settings)
-> 0.0557s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"application_settings\"")
-> 0.0011s
-- exec_query("SELECT \"application_settings\".\"id\" FROM \"application_settings\" ORDER BY \"application_settings\".\"id\" ASC LIMIT 1")
-> 0.0007s
-- exec_query("SELECT \"application_settings\".\"id\" FROM \"application_settings\" WHERE \"application_settings\".\"id\" >= 1 ORDER BY \"application_settings\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0007s
-- execute("UPDATE \"application_settings\" SET \"namespace_storage_size_limit\" = 0 WHERE \"application_settings\".\"id\" >= 1")
-> 0.0042s
-- change_column_null(:application_settings, :namespace_storage_size_limit, false)
-> 0.0043s
-- execute("RESET ALL")
-> 0.0004s
== 20200324115359 AddNamespaceStorageSizeLimitToApplicationSettings: migrated (0.1262s)
== 20200325104755 AddPushRulesIdToProjectSettings: migrating ==================
-- add_column(:project_settings, :push_rule_id, :bigint)
-> 0.0016s
== 20200325104755 AddPushRulesIdToProjectSettings: migrated (0.0039s) =========
== 20200325104756 AddPushRulesForeignKeyToProjectSettings: migrating ==========
-- transaction_open?()
-> 0.0000s
-- index_exists?(:project_settings, :push_rule_id, {:unique=>true, :algorithm=>:concurrently})
-> 0.0011s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- add_index(:project_settings, :push_rule_id, {:unique=>true, :algorithm=>:concurrently})
-> 0.0136s
-- execute("RESET ALL")
-> 0.0005s
-- transaction_open?()
-> 0.0000s
-- foreign_keys(:project_settings)
-> 0.0053s
-- execute("ALTER TABLE project_settings\nADD CONSTRAINT fk_413a953e20\nFOREIGN KEY (push_rule_id)\nREFERENCES push_rules (id)\nON DELETE CASCADE\nNOT VALID;\n")
-> 0.0018s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- execute("ALTER TABLE project_settings VALIDATE CONSTRAINT fk_413a953e20;")
-> 0.0074s
-- execute("RESET ALL")
-> 0.0005s
== 20200325104756 AddPushRulesForeignKeyToProjectSettings: migrated (0.0365s) =
== 20200325104833 AddPushRulesIdToApplicationSettings: migrating ==============
-- add_column(:application_settings, :push_rule_id, :bigint)
-> 0.0015s
== 20200325104833 AddPushRulesIdToApplicationSettings: migrated (0.0038s) =====
== 20200325104834 AddPushRulesForeignKeyToApplicationSettings: migrating ======
-- transaction_open?()
-> 0.0000s
-- index_exists?(:application_settings, :push_rule_id, {:unique=>true, :algorithm=>:concurrently})
-> 0.0059s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:application_settings, :push_rule_id, {:unique=>true, :algorithm=>:concurrently})
-> 0.0179s
-- execute("RESET ALL")
-> 0.0004s
-- transaction_open?()
-> 0.0000s
-- foreign_keys(:application_settings)
-> 0.0036s
-- execute("ALTER TABLE application_settings\nADD CONSTRAINT fk_693b8795e4\nFOREIGN KEY (push_rule_id)\nREFERENCES push_rules (id)\nON DELETE SET NULL\nNOT VALID;\n")
-> 0.0018s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- execute("ALTER TABLE application_settings VALIDATE CONSTRAINT fk_693b8795e4;")
-> 0.0048s
-- execute("RESET ALL")
-> 0.0005s
== 20200325104834 AddPushRulesForeignKeyToApplicationSettings: migrated (0.0414s)
== 20200325111432 AddIssuesCreateLimitToApplicationSettings: migrating ========
-- add_column(:application_settings, :issues_create_limit, :integer, {:default=>300, :null=>false})
-> 0.0039s
== 20200325111432 AddIssuesCreateLimitToApplicationSettings: migrated (0.0040s)
== 20200325160952 AddIndexOnNameTypeEqCiBuildToCiBuilds: migrating ============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:ci_builds, [:name, :id], {:name=>"index_ci_builds_on_name_and_security_type_eq_ci_build", :where=>"((name)::text = ANY (ARRAY[('container_scanning'::character varying)::text, ('dast'::character varying)::text, ('dependency_scanning'::character varying)::text, ('license_management'::character varying)::text, ('sast'::character varying)::text, ('license_scanning'::character varying)::text])) AND ((type)::text = 'Ci::Build'::text)", :algorithm=>:concurrently})
-> 0.0230s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:ci_builds, [:name, :id], {:name=>"index_ci_builds_on_name_and_security_type_eq_ci_build", :where=>"((name)::text = ANY (ARRAY[('container_scanning'::character varying)::text, ('dast'::character varying)::text, ('dependency_scanning'::character varying)::text, ('license_management'::character varying)::text, ('sast'::character varying)::text, ('license_scanning'::character varying)::text])) AND ((type)::text = 'Ci::Build'::text)", :algorithm=>:concurrently})
-> 0.0133s
-- execute("RESET ALL")
-> 0.0006s
== 20200325160952 AddIndexOnNameTypeEqCiBuildToCiBuilds: migrated (0.0376s) ===
== 20200325162730 ScheduleBackfillPushRulesIdInProjects: migrating ============
== 20200325162730 ScheduleBackfillPushRulesIdInProjects: migrated (0.0177s) ===
== 20200325183636 AddApiIndexForInternalProjects: migrating ===================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:created_at, :id], {:where=>"visibility_level = 10 AND pending_delete = false", :name=>"index_projects_api_created_at_id_for_vis10", :algorithm=>:concurrently})
-> 0.0515s
-- execute("SET statement_timeout TO 0")
-> 0.0007s
-- add_index(:projects, [:created_at, :id], {:where=>"visibility_level = 10 AND pending_delete = false", :name=>"index_projects_api_created_at_id_for_vis10", :algorithm=>:concurrently})
-> 0.0207s
-- execute("RESET ALL")
-> 0.0005s
== 20200325183636 AddApiIndexForInternalProjects: migrated (0.0736s) ==========
== 20200326114443 CreateJiraImportsTable: migrating ===========================
-- create_table(:jira_imports)
-> 0.0245s
-- add_index(:jira_imports, [:project_id, :jira_project_key], {:name=>"index_jira_imports_on_project_id_and_jira_project_key"})
-> 0.0118s
== 20200326114443 CreateJiraImportsTable: migrated (0.0364s) ==================
== 20200326122700 CreateDiffNotePositions: migrating ==========================
-- create_table(:diff_note_positions)
-> 0.0242s
== 20200326122700 CreateDiffNotePositions: migrated (0.0269s) =================
== 20200326124443 AddProjectsFkToJiraImportsTable: migrating ==================
-- add_foreign_key(:jira_imports, :projects, {:on_delete=>:cascade})
-> 0.0031s
== 20200326124443 AddProjectsFkToJiraImportsTable: migrated (0.0059s) =========
== 20200326134443 AddUsersFkToJiraImportsTable: migrating =====================
-- add_foreign_key(:jira_imports, :users, {:on_delete=>:nullify})
-> 0.0024s
== 20200326134443 AddUsersFkToJiraImportsTable: migrated (0.0049s) ============
== 20200326135443 AddUsersFkIndexOnJiraImportsTable: migrating ================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:jira_imports, :user_id, {:algorithm=>:concurrently})
-> 0.0028s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:jira_imports, :user_id, {:algorithm=>:concurrently})
-> 0.0120s
-- execute("RESET ALL")
-> 0.0006s
== 20200326135443 AddUsersFkIndexOnJiraImportsTable: migrated (0.0162s) =======
== 20200326144443 AddLabelsFkToJiraImportsTable: migrating ====================
-- add_foreign_key(:jira_imports, :labels, {:on_delete=>:nullify})
-> 0.0034s
== 20200326144443 AddLabelsFkToJiraImportsTable: migrated (0.0077s) ===========
== 20200326145443 AddLabelsFkIndexOnJiraImportsTable: migrating ===============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:jira_imports, :label_id, {:algorithm=>:concurrently})
-> 0.0047s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:jira_imports, :label_id, {:algorithm=>:concurrently})
-> 0.0130s
-- execute("RESET ALL")
-> 0.0004s
== 20200326145443 AddLabelsFkIndexOnJiraImportsTable: migrated (0.0188s) ======
== 20200330074719 AddIndexForGroupVsmUsagePing: migrating =====================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:analytics_cycle_analytics_group_stages, :id, {:where=>"custom = true", :name=>"index_analytics_cycle_analytics_group_stages_custom_only", :algorithm=>:concurrently})
-> 0.0065s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- add_index(:analytics_cycle_analytics_group_stages, :id, {:where=>"custom = true", :name=>"index_analytics_cycle_analytics_group_stages_custom_only", :algorithm=>:concurrently})
-> 0.0131s
-- execute("RESET ALL")
-> 0.0004s
== 20200330074719 AddIndexForGroupVsmUsagePing: migrated (0.0208s) ============
== 20200330121000 AddConfidentialAttributeToEpics: migrating ==================
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- transaction()
-- add_column(:epics, :confidential, :boolean, {:default=>nil})
-> 0.0022s
-- change_column_default(:epics, :confidential, false)
-> 0.0062s
-> 0.0115s
-- columns(:epics)
-> 0.0052s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"epics\"")
-> 0.0092s
-- change_column_null(:epics, :confidential, false)
-> 0.0030s
-- execute("RESET ALL")
-> 0.0008s
== 20200330121000 AddConfidentialAttributeToEpics: migrated (0.0309s) =========
== 20200330123739 RemoveIndexCiBuildsOnNameForSecurityReportsValues: migrating
-- transaction_open?()
-> 0.0000s
-- indexes(:ci_builds)
-> 0.0321s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- remove_index(:ci_builds, {:algorithm=>:concurrently, :name=>"index_ci_builds_on_name_for_security_reports_values"})
-> 0.0067s
-- execute("RESET ALL")
-> 0.0005s
== 20200330123739 RemoveIndexCiBuildsOnNameForSecurityReportsValues: migrated (0.0401s)
== 20200330132913 AddIndexOnAuthorIdAndCreatedAtAndIdToNotes: migrating =======
-- transaction_open?()
-> 0.0000s
-- index_exists?(:notes, [:author_id, :created_at, :id], {:algorithm=>:concurrently})
-> 0.0108s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:notes, [:author_id, :created_at, :id], {:algorithm=>:concurrently})
-> 0.0244s
-- execute("RESET ALL")
-> 0.0004s
-- transaction_open?()
-> 0.0000s
-- index_exists?(:notes, [:author_id, :created_at], {:algorithm=>:concurrently})
-> 0.0145s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- remove_index(:notes, {:algorithm=>:concurrently, :column=>[:author_id, :created_at]})
-> 0.0214s
-- execute("RESET ALL")
-> 0.0007s
== 20200330132913 AddIndexOnAuthorIdAndCreatedAtAndIdToNotes: migrated (0.0739s)
== 20200331132103 AddProjectComplianceFrameworkSettingsTable: migrating =======
-- create_table(:project_compliance_framework_settings, {:id=>false})
-> 0.0269s
== 20200331132103 AddProjectComplianceFrameworkSettingsTable: migrated (0.0306s)
== 20200331195952 AddContainerExpirationPoliciesEnableHistoricEntriesToApplicationSettings: migrating
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0008s
-- transaction()
-- add_column(:application_settings, :container_expiration_policies_enable_historic_entries, :boolean, {:default=>nil})
-> 0.0028s
-- change_column_default(:application_settings, :container_expiration_policies_enable_historic_entries, false)
-> 0.0387s
-> 0.0448s
-- columns(:application_settings)
-> 0.0564s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"application_settings\"")
-> 0.0013s
-- exec_query("SELECT \"application_settings\".\"id\" FROM \"application_settings\" ORDER BY \"application_settings\".\"id\" ASC LIMIT 1")
-> 0.0012s
-- exec_query("SELECT \"application_settings\".\"id\" FROM \"application_settings\" WHERE \"application_settings\".\"id\" >= 1 ORDER BY \"application_settings\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0013s
-- execute("UPDATE \"application_settings\" SET \"container_expiration_policies_enable_historic_entries\" = FALSE WHERE \"application_settings\".\"id\" >= 1")
-> 0.0039s
-- change_column_null(:application_settings, :container_expiration_policies_enable_historic_entries, false)
-> 0.0037s
-- execute("RESET ALL")
-> 0.0007s
== 20200331195952 AddContainerExpirationPoliciesEnableHistoricEntriesToApplicationSettings: migrated (0.1159s)
== 20200331220930 EnableContainerExpirationPoliciesByDefault: migrating =======
-- change_column_default(:container_expiration_policies, :enabled, true)
-> 0.0047s
== 20200331220930 EnableContainerExpirationPoliciesByDefault: migrated (0.0084s)
== 20200401095430 AddJsonbToGeoNodeStatusTable: migrating =====================
-- change_table(:geo_node_statuses)
-> 0.0053s
== 20200401095430 AddJsonbToGeoNodeStatusTable: migrated (0.0054s) ============
== 20200401211005 CreateOperationsUserLists: migrating ========================
-- create_table(:operations_user_lists)
-> 0.0414s
== 20200401211005 CreateOperationsUserLists: migrated (0.0415s) ===============
== 20200402123926 AddLineMetricsToMrMetrics: migrating ========================
-- add_column(:merge_request_metrics, :added_lines, :integer)
-> 0.0011s
-- add_column(:merge_request_metrics, :removed_lines, :integer)
-> 0.0009s
== 20200402123926 AddLineMetricsToMrMetrics: migrated (0.0052s) ===============
== 20200402124802 AddCorrelationIdToProjectImportState: migrating =============
-- add_column(:project_mirror_data, :correlation_id_value, :string, {:limit=>128})
-> 0.0009s
== 20200402124802 AddCorrelationIdToProjectImportState: migrated (0.0038s) ====
== 20200402135250 AddDeleteStatusToContainerRepository: migrating =============
-- add_column(:container_repositories, :status, :integer, {:limit=>2})
-> 0.0015s
== 20200402135250 AddDeleteStatusToContainerRepository: migrated (0.0015s) ====
== 20200402185044 CreateClustersApplicationsFluentd: migrating ================
-- create_table(:clusters_applications_fluentd)
-> 0.0261s
== 20200402185044 CreateClustersApplicationsFluentd: migrated (0.0262s) =======
== 20200403184110 AddPartialIndexOnIdToCiJobArtifacts: migrating ==============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:ci_job_artifacts, :id, {:where=>"file_store IS NULL", :name=>"index_ci_job_artifacts_file_store_is_null", :algorithm=>:concurrently})
-> 0.0057s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:ci_job_artifacts, :id, {:where=>"file_store IS NULL", :name=>"index_ci_job_artifacts_file_store_is_null", :algorithm=>:concurrently})
-> 0.0148s
-- execute("RESET ALL")
-> 0.0004s
== 20200403184110 AddPartialIndexOnIdToCiJobArtifacts: migrated (0.0216s) =====
== 20200403185127 AddPartialIndexOnIdToLfsObjects: migrating ==================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:lfs_objects, :id, {:where=>"file_store IS NULL", :name=>"index_lfs_objects_file_store_is_null", :algorithm=>:concurrently})
-> 0.0035s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- add_index(:lfs_objects, :id, {:where=>"file_store IS NULL", :name=>"index_lfs_objects_file_store_is_null", :algorithm=>:concurrently})
-> 0.2264s
-- execute("RESET ALL")
-> 0.0007s
== 20200403185127 AddPartialIndexOnIdToLfsObjects: migrated (0.2315s) =========
== 20200403185422 AddPartialIndexOnIdToUploads: migrating =====================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:uploads, :id, {:where=>"store IS NULL", :name=>"index_uploads_store_is_null", :algorithm=>:concurrently})
-> 0.0074s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:uploads, :id, {:where=>"store IS NULL", :name=>"index_uploads_store_is_null", :algorithm=>:concurrently})
-> 0.0149s
-- execute("RESET ALL")
-> 0.0005s
== 20200403185422 AddPartialIndexOnIdToUploads: migrated (0.0237s) ============
== 20200406102111 AddIndexToDeploymentsWhereClusterIdIsNotNull: migrating =====
-- transaction_open?()
-> 0.0000s
-- index_exists?(:deployments, :id, {:where=>"cluster_id IS NOT NULL", :name=>"index_deployments_on_id_where_cluster_id_present", :algorithm=>:concurrently})
-> 0.0163s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:deployments, :id, {:where=>"cluster_id IS NOT NULL", :name=>"index_deployments_on_id_where_cluster_id_present", :algorithm=>:concurrently})
-> 0.0128s
-- execute("RESET ALL")
-> 0.0005s
== 20200406102111 AddIndexToDeploymentsWhereClusterIdIsNotNull: migrated (0.0304s)
== 20200406102120 BackfillDeploymentClustersFromDeployments: migrating ========
-- Scheduling `BackfillDeploymentClustersFromDeployments` jobs
== 20200406102120 BackfillDeploymentClustersFromDeployments: migrated (0.0214s)
== 20200406135648 AddIndexToCreatedAtOnResourceMilestoneEvents: migrating =====
-- transaction_open?()
-> 0.0000s
-- index_exists?(:resource_milestone_events, :created_at, {:name=>"index_resource_milestone_events_created_at", :algorithm=>:concurrently})
-> 0.0060s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- add_index(:resource_milestone_events, :created_at, {:name=>"index_resource_milestone_events_created_at", :algorithm=>:concurrently})
-> 0.0193s
-- execute("RESET ALL")
-> 0.0006s
== 20200406135648 AddIndexToCreatedAtOnResourceMilestoneEvents: migrated (0.0268s)
== 20200406192059 AddWriteRegistryToDeployTokens: migrating ===================
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0008s
-- transaction()
-- add_column(:deploy_tokens, :write_registry, :boolean, {:default=>nil})
-> 0.0021s
-- change_column_default(:deploy_tokens, :write_registry, false)
-> 0.0031s
-> 0.0090s
-- columns(:deploy_tokens)
-> 0.0029s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"deploy_tokens\"")
-> 0.0017s
-- exec_query("SELECT \"deploy_tokens\".\"id\" FROM \"deploy_tokens\" ORDER BY \"deploy_tokens\".\"id\" ASC LIMIT 1")
-> 0.0016s
-- exec_query("SELECT \"deploy_tokens\".\"id\" FROM \"deploy_tokens\" WHERE \"deploy_tokens\".\"id\" >= 1 ORDER BY \"deploy_tokens\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0008s
-- execute("UPDATE \"deploy_tokens\" SET \"write_registry\" = FALSE WHERE \"deploy_tokens\".\"id\" >= 1")
-> 0.0039s
-- change_column_null(:deploy_tokens, :write_registry, false)
-> 0.0038s
-- execute("RESET ALL")
-> 0.0005s
== 20200406192059 AddWriteRegistryToDeployTokens: migrated (0.0259s) ==========
== 20200406193427 AddIndexToIssuesHealthStatus: migrating =====================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:issues, :health_status, {:where=>"health_status IS NOT NULL", :name=>"idx_issues_on_health_status_not_null", :algorithm=>:concurrently})
-> 0.0212s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:issues, :health_status, {:where=>"health_status IS NOT NULL", :name=>"idx_issues_on_health_status_not_null", :algorithm=>:concurrently})
-> 0.0135s
-- execute("RESET ALL")
-> 0.0006s
== 20200406193427 AddIndexToIssuesHealthStatus: migrated (0.0360s) ============
== 20200407094005 DropVulnerabilitySeverityIndex: migrating ===================
-- transaction_open?()
-> 0.0000s
-- indexes(:vulnerability_occurrences)
-> 0.0114s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- remove_index(:vulnerability_occurrences, {:algorithm=>:concurrently, :name=>"undefined_vulnerabilities"})
-> 0.0073s
-- execute("RESET ALL")
-> 0.0005s
== 20200407094005 DropVulnerabilitySeverityIndex: migrated (0.0200s) ==========
== 20200407094923 DropVulnerabilitiesSeverityIndex: migrating =================
-- transaction_open?()
-> 0.0000s
-- indexes(:vulnerabilities)
-> 0.0147s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- remove_index(:vulnerabilities, {:algorithm=>:concurrently, :name=>"undefined_vulnerability"})
-> 0.0048s
-- execute("RESET ALL")
-> 0.0006s
== 20200407094923 DropVulnerabilitiesSeverityIndex: migrated (0.0210s) ========
== 20200407120000 AddPushRuleIdToGroups: migrating ============================
-- add_column(:namespaces, :push_rule_id, :bigint)
-> 0.0013s
== 20200407120000 AddPushRuleIdToGroups: migrated (0.0040s) ===================
== 20200407121321 AddPushRuleForeignKeyToGroups: migrating ====================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:namespaces, :push_rule_id, {:unique=>true, :algorithm=>:concurrently})
-> 0.0140s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:namespaces, :push_rule_id, {:unique=>true, :algorithm=>:concurrently})
-> 0.0180s
-- execute("RESET ALL")
-> 0.0006s
-- transaction_open?()
-> 0.0000s
-- foreign_keys(:namespaces)
-> 0.0052s
-- execute("ALTER TABLE namespaces\nADD CONSTRAINT fk_3448c97865\nFOREIGN KEY (push_rule_id)\nREFERENCES push_rules (id)\nON DELETE SET NULL\nNOT VALID;\n")
-> 0.0021s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- execute("ALTER TABLE namespaces VALIDATE CONSTRAINT fk_3448c97865;")
-> 0.0057s
-- execute("RESET ALL")
-> 0.0005s
== 20200407121321 AddPushRuleForeignKeyToGroups: migrated (0.0581s) ===========
== 20200407171133 AddProtectedTagCreateAccessLevelsUserIdForeignKey: migrating
-- add_foreign_key(:protected_tag_create_access_levels, :users, {:on_delete=>:cascade, :validate=>false, :name=>"fk_protected_tag_create_access_levels_user_id"})
-> 0.0021s
-- foreign_keys(:protected_tag_create_access_levels)
-> 0.0032s
-- remove_foreign_key(:protected_tag_create_access_levels, {:column=>:user_id, :on_delete=>nil})
-> 0.0070s
== 20200407171133 AddProtectedTagCreateAccessLevelsUserIdForeignKey: migrated (0.0184s)
== 20200407171417 ValidateProtectedTagCreateAccessLevelsUserIdForeignKey: migrating
-- foreign_keys(:protected_tag_create_access_levels)
-> 0.0040s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- execute("ALTER TABLE protected_tag_create_access_levels VALIDATE CONSTRAINT fk_protected_tag_create_access_levels_user_id;")
-> 0.0047s
-- execute("RESET ALL")
-> 0.0005s
== 20200407171417 ValidateProtectedTagCreateAccessLevelsUserIdForeignKey: migrated (0.0099s)
== 20200408110856 AddNginxFiveHundredPercentageMetric: migrating ==============
== 20200408110856 AddNginxFiveHundredPercentageMetric: migrated (0.0881s) =====
== 20200408133211 AddIndexOnRoutePathTrigram: migrating =======================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:routes, :path, {:name=>"index_routes_on_path_trigram", :using=>:gin, :opclass=>{:path=>:gin_trgm_ops}, :algorithm=>:concurrently})
-> 0.0052s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:routes, :path, {:name=>"index_routes_on_path_trigram", :using=>:gin, :opclass=>{:path=>:gin_trgm_ops}, :algorithm=>:concurrently})
-> 0.0397s
-- execute("RESET ALL")
-> 0.0004s
== 20200408133211 AddIndexOnRoutePathTrigram: migrated (0.0462s) ==============
== 20200408153842 AddIndexOnCreatorIdAndIdOnProjects: migrating ===============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:creator_id, :id], {:algorithm=>:concurrently})
-> 0.0514s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:projects, [:creator_id, :id], {:algorithm=>:concurrently})
-> 0.0170s
-- execute("RESET ALL")
-> 0.0006s
== 20200408153842 AddIndexOnCreatorIdAndIdOnProjects: migrated (0.0697s) ======
== 20200408154331 AddProtectedBranchMergeAccessLevelsUserIdForeignKey: migrating
-- add_foreign_key(:protected_branch_merge_access_levels, :users, {:on_delete=>:cascade, :validate=>false, :name=>"fk_protected_branch_merge_access_levels_user_id"})
-> 0.0023s
-- foreign_keys(:protected_branch_merge_access_levels)
-> 0.0052s
-- remove_foreign_key(:protected_branch_merge_access_levels, {:column=>:user_id, :on_delete=>nil})
-> 0.0080s
== 20200408154331 AddProtectedBranchMergeAccessLevelsUserIdForeignKey: migrated (0.0215s)
== 20200408154349 ValidateProtectedBranchMergeAccessLevelsUserIdForeignKey: migrating
-- foreign_keys(:protected_branch_merge_access_levels)
-> 0.0053s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- execute("ALTER TABLE protected_branch_merge_access_levels VALIDATE CONSTRAINT fk_protected_branch_merge_access_levels_user_id;")
-> 0.0043s
-- execute("RESET ALL")
-> 0.0005s
== 20200408154349 ValidateProtectedBranchMergeAccessLevelsUserIdForeignKey: migrated (0.0109s)
== 20200408154411 AddPathLocksUserIdForeignKey: migrating =====================
-- add_foreign_key(:path_locks, :users, {:on_delete=>:cascade, :validate=>false, :name=>"fk_path_locks_user_id"})
-> 0.0014s
-- foreign_keys(:path_locks)
-> 0.0028s
-- remove_foreign_key(:path_locks, {:column=>:user_id, :on_delete=>nil})
-> 0.0047s
== 20200408154411 AddPathLocksUserIdForeignKey: migrated (0.0143s) ============
== 20200408154428 ValidatePathLocksUserIdForeignKey: migrating ================
-- foreign_keys(:path_locks)
-> 0.0056s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- execute("ALTER TABLE path_locks VALIDATE CONSTRAINT fk_path_locks_user_id;")
-> 0.0039s
-- execute("RESET ALL")
-> 0.0004s
== 20200408154428 ValidatePathLocksUserIdForeignKey: migrated (0.0109s) =======
== 20200408154455 AddProtectedBranchPushAccessLevelsUserIdForeignKey: migrating
-- add_foreign_key(:protected_branch_push_access_levels, :users, {:on_delete=>:cascade, :validate=>false, :name=>"fk_protected_branch_push_access_levels_user_id"})
-> 0.0021s
-- foreign_keys(:protected_branch_push_access_levels)
-> 0.0047s
-- remove_foreign_key(:protected_branch_push_access_levels, {:column=>:user_id, :on_delete=>nil})
-> 0.0057s
== 20200408154455 AddProtectedBranchPushAccessLevelsUserIdForeignKey: migrated (0.0172s)
== 20200408154533 ValidateProtectedBranchPushAccessLevelsUserIdForeignKey: migrating
-- foreign_keys(:protected_branch_push_access_levels)
-> 0.0039s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- execute("ALTER TABLE protected_branch_push_access_levels VALIDATE CONSTRAINT fk_protected_branch_push_access_levels_user_id;")
-> 0.0024s
-- execute("RESET ALL")
-> 0.0005s
== 20200408154533 ValidateProtectedBranchPushAccessLevelsUserIdForeignKey: migrated (0.0077s)
== 20200408154604 AddU2fRegistrationsUserIdForeignKey: migrating ==============
-- add_foreign_key(:u2f_registrations, :users, {:on_delete=>:cascade, :validate=>false, :name=>"fk_u2f_registrations_user_id"})
-> 0.0023s
-- foreign_keys(:u2f_registrations)
-> 0.0052s
-- remove_foreign_key(:u2f_registrations, {:column=>:user_id, :on_delete=>nil})
-> 0.0052s
== 20200408154604 AddU2fRegistrationsUserIdForeignKey: migrated (0.0192s) =====
== 20200408154624 ValidateU2fRegistrationsUserIdForeignKey: migrating =========
-- foreign_keys(:u2f_registrations)
-> 0.0035s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- execute("ALTER TABLE u2f_registrations VALIDATE CONSTRAINT fk_u2f_registrations_user_id;")
-> 0.0014s
-- execute("RESET ALL")
-> 0.0004s
== 20200408154624 ValidateU2fRegistrationsUserIdForeignKey: migrated (0.0060s)
== 20200408175424 AddIndexOnCreatorIdCreatedAtIdToProjectsTable: migrating ====
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:creator_id, :created_at, :id], {:algorithm=>:concurrently})
-> 0.0434s
-- execute("SET statement_timeout TO 0")
-> 0.0007s
-- add_index(:projects, [:creator_id, :created_at, :id], {:algorithm=>:concurrently})
-> 0.0173s
-- execute("RESET ALL")
-> 0.0007s
== 20200408175424 AddIndexOnCreatorIdCreatedAtIdToProjectsTable: migrated (0.0623s)
== 20200408212219 AddStatusPageUrlToStatusPageSettings: migrating =============
-- add_column(:status_page_settings, :status_page_url, :text)
-> 0.0043s
-- transaction_open?()
-> 0.0000s
-- execute("ALTER TABLE status_page_settings\nADD CONSTRAINT check_75a79cd992\nCHECK ( char_length(status_page_url) <= 1024 )\nNOT VALID;\n")
-> 0.0015s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- execute("ALTER TABLE status_page_settings VALIDATE CONSTRAINT check_75a79cd992;")
-> 0.0033s
-- execute("RESET ALL")
-> 0.0004s
== 20200408212219 AddStatusPageUrlToStatusPageSettings: migrated (0.0181s) ====
== 20200409085956 AddPartialIndexOnImportFailuresRetryCount: migrating ========
-- transaction_open?()
-> 0.0000s
-- index_exists?(:import_failures, [:project_id, :correlation_id_value], {:where=>"retry_count = 0", :algorithm=>:concurrently})
-> 0.0053s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- add_index(:import_failures, [:project_id, :correlation_id_value], {:where=>"retry_count = 0", :algorithm=>:concurrently})
-> 0.0139s
-- execute("RESET ALL")
-> 0.0005s
== 20200409085956 AddPartialIndexOnImportFailuresRetryCount: migrated (0.0206s)
== 20200409211607 MigrateLegacyAttachments: migrating =========================
== 20200409211607 MigrateLegacyAttachments: migrated (0.0121s) ================
== 20200410232012 AddMetricsDashboardAccessLevelToProjectFeature: migrating ===
-- add_column(:project_features, :metrics_dashboard_access_level, :integer)
-> 0.0012s
== 20200410232012 AddMetricsDashboardAccessLevelToProjectFeature: migrated (0.0037s)
== 20200413072059 AddGroupOwnersCanManageDefaultBranchProtectionToApplicationSettings: migrating
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- transaction()
-- add_column(:application_settings, :group_owners_can_manage_default_branch_protection, :boolean, {:default=>nil})
-> 0.0027s
-- change_column_default(:application_settings, :group_owners_can_manage_default_branch_protection, true)
-> 0.0424s
-> 0.0484s
-- columns(:application_settings)
-> 0.0410s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"application_settings\"")
-> 0.0010s
-- exec_query("SELECT \"application_settings\".\"id\" FROM \"application_settings\" ORDER BY \"application_settings\".\"id\" ASC LIMIT 1")
-> 0.0009s
-- exec_query("SELECT \"application_settings\".\"id\" FROM \"application_settings\" WHERE \"application_settings\".\"id\" >= 1 ORDER BY \"application_settings\".\"id\" ASC LIMIT 1 OFFSET 1")NOTICE: constraint "lfs_objects_file_store_not_null" of relation "lfs_objects" does not exist, skipping
NOTICE: constraint "ci_job_artifacts_file_store_not_null" of relation "ci_job_artifacts" does not exist, skipping
NOTICE: constraint "uploads_store_not_null" of relation "uploads" does not exist, skipping
-> 0.0008s
-- execute("UPDATE \"application_settings\" SET \"group_owners_can_manage_default_branch_protection\" = TRUE WHERE \"application_settings\".\"id\" >= 1")
-> 0.0032s
-- change_column_null(:application_settings, :group_owners_can_manage_default_branch_protection, false)
-> 0.0039s
-- execute("RESET ALL")
-> 0.0006s
== 20200413072059 AddGroupOwnersCanManageDefaultBranchProtectionToApplicationSettings: migrated (0.1016s)
== 20200414144547 RemoveIndexProjectsOnCreatorIdAndCreatedAtFromProjects: migrating
-- transaction_open?()
-> 0.0000s
-- indexes(:projects)
-> 0.0513s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- remove_index(:projects, {:algorithm=>:concurrently, :name=>"index_projects_on_creator_id_and_created_at"})
-> 0.0047s
-- execute("RESET ALL")
-> 0.0005s
== 20200414144547 RemoveIndexProjectsOnCreatorIdAndCreatedAtFromProjects: migrated (0.0572s)
== 20200415160722 RemoveNotNullLfsObjectsConstraint: migrating ================
-- execute("ALTER TABLE lfs_objects DROP CONSTRAINT IF EXISTS lfs_objects_file_store_not_null;\n")
-> 0.0009s
== 20200415160722 RemoveNotNullLfsObjectsConstraint: migrated (0.0036s) =======
== 20200415161021 RemoveNotNullCiJobArtifactsConstraint: migrating ============
-- execute("ALTER TABLE ci_job_artifacts DROP CONSTRAINT IF EXISTS ci_job_artifacts_file_store_not_null;\n")
-> 0.0006s
== 20200415161021 RemoveNotNullCiJobArtifactsConstraint: migrated (0.0033s) ===
== 20200415161206 RemoveNotNullUploadsConstraint: migrating ===================
-- execute("ALTER TABLE uploads DROP CONSTRAINT IF EXISTS uploads_store_not_null;\n")
-> 0.0010s
== 20200415161206 RemoveNotNullUploadsConstraint: migrated (0.0050s) ==========
== 20200415192656 AddNameRegexKeepToContainerExpirationPolicies: migrating ====
-- add_column(:container_expiration_policies, :name_regex_keep, :text)
-> 0.0110s
-- transaction_open?()
-> 0.0000s
-- execute("ALTER TABLE container_expiration_policies\nADD CONSTRAINT container_expiration_policies_name_regex_keep\nCHECK ( char_length(name_regex_keep) <= 255 )\nNOT VALID;\n")
-> 0.0009s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- execute("ALTER TABLE container_expiration_policies VALIDATE CONSTRAINT container_expiration_policies_name_regex_keep;")
-> 0.0036s
-- execute("RESET ALL")
-> 0.0006s
== 20200415192656 AddNameRegexKeepToContainerExpirationPolicies: migrated (0.0234s)
== 20200416120128 AddColumnsToTerraformState: migrating =======================
-- add_column(:terraform_states, :lock_xid, :string, {:limit=>255})
-> 0.0090s
-- add_column(:terraform_states, :locked_at, :datetime_with_timezone)
-> 0.0008s
-- add_column(:terraform_states, :locked_by_user_id, :bigint)
-> 0.1099s
-- add_column(:terraform_states, :uuid, :string, {:limit=>32, :null=>false})
-> 0.0008s
-- add_column(:terraform_states, :name, :string, {:limit=>255})
-> 0.0006s
-- add_index(:terraform_states, :locked_by_user_id)
-> 0.0101s
-- add_index(:terraform_states, :uuid, {:unique=>true})
-> 0.0095s
-- add_index(:terraform_states, [:project_id, :name], {:unique=>true})
-> 0.0089s
-- remove_index(:terraform_states, :project_id)
-> 0.0084s
== 20200416120128 AddColumnsToTerraformState: migrated (0.1586s) ==============
== 20200416120354 AddLockedByUserIdForeignKeyToTerraformState: migrating ======
-- add_foreign_key(:terraform_states, :users, {:column=>:locked_by_user_id})
-> 0.0026s
== 20200416120354 AddLockedByUserIdForeignKeyToTerraformState: migrated (0.0061s)
pg_dump: server version: 11.7; pg_dump version: 9.6.17
pg_dump: aborting because of server version mismatch
rake aborted!
failed to execute:
pg_dump -s -x -O -f /opt/gitlab/embedded/service/gitlab-rails/db/structure.sql -T untracked_files_for_uploads gitlabhq_production
Please check the output above for any errors and make sure that `pg_dump` is installed in your PATH and has proper permissions.
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:49:in `block (3 levels) in <top (required)>'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
Tasks: TOP => db:structure:dump
(See full trace by running task with --trace)
STDERR:
---- End output of "bash" "/tmp/chef-script20200424-225089-165iq0i" ----
Ran "bash" "/tmp/chef-script20200424-225089-165iq0i" returned 1
Resource Declaration:
---------------------
# In /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/database_migrations.rb
54: bash "migrate gitlab-rails database" do
55: code <<-EOH
56: set -e
57: log_file="#{node['gitlab']['gitlab-rails']['log_directory']}/gitlab-rails-db-migrate-$(date +%Y-%m-%d-%H-%M-%S).log"
58: umask 077
59: /opt/gitlab/bin/gitlab-rake gitlab:db:configure 2>& 1 | tee ${log_file}
60: STATUS=${PIPESTATUS[0]}
61: chown #{account_helper.gitlab_user}:#{account_helper.gitlab_group} ${log_file}
62: echo $STATUS > #{db_migrate_status_file}
63: exit $STATUS
64: EOH
65: environment env_variables unless env_variables.empty?
66: notifies :run, "execute[clear the gitlab-rails cache]", :immediately
67: dependent_services.each do |svc|
68: notifies :restart, svc, :immediately
69: end
70: not_if "(test -f #{db_migrate_status_file}) && (cat #{db_migrate_status_file} | grep -Fx 0)"
71: only_if { node['gitlab']['gitlab-rails']['auto_migrate'] }
72: end
73:
Compiled Resource:
------------------
# Declared in /opt/gitlab/embedded/cookbooks/cache/cookbooks/gitlab/recipes/database_migrations.rb:54:in `from_file'
bash("migrate gitlab-rails database") do
action [:run]
default_guard_interpreter :default
command nil
backup 5
interpreter "bash"
declared_type :bash
cookbook_name "gitlab"
recipe_name "database_migrations"
code " set -e\n log_file=\"/var/log/gitlab/gitlab-rails/gitlab-rails-db-migrate-$(date +%Y-%m-%d-%H-%M-%S).log\"\n umask 077\n /opt/gitlab/bin/gitlab-rake gitlab:db:configure 2>& 1 | tee ${log_file}\n STATUS=${PIPESTATUS[0]}\n chown git:git ${log_file}\n echo $STATUS > /var/opt/gitlab/gitlab-rails/upgrade-status/db-migrate-0565d0b4bbfa8f05cd7759b2e1af4e96-869bc26464b\n exit $STATUS\n"
domain nil
user nil
not_if "(test -f /var/opt/gitlab/gitlab-rails/upgrade-status/db-migrate-0565d0b4bbfa8f05cd7759b2e1af4e96-869bc26464b) && (cat /var/opt/gitlab/gitlab-rails/upgrade-status/db-migrate-0565d0b4bbfa8f05cd7759b2e1af4e96-869bc26464b | grep -Fx 0)"
only_if { #code block }
end
System Info:
------------
chef_version=14.14.29
platform=centos
platform_version=7.7.1908
ruby=ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux]
program_name=/opt/gitlab/embedded/bin/chef-client
executable=/opt/gitlab/embedded/bin/chef-client
Recipe: gitlab::unicorn
* runit_service[unicorn] action restart (up to date)
* runit_service[unicorn] action restart (up to date)
Recipe: gitlab::sidekiq
* runit_service[sidekiq] action restart (up to date)
Recipe: gitlab::gitlab-rails
* execute[clear the gitlab-rails cache] action run
- execute /opt/gitlab/bin/gitlab-rake cache:clear
Recipe: gitaly::enable
* runit_service[gitaly] action hup
- send hup to runit_service[gitaly]
Running handlers:
There was an error running gitlab-ctl reconfigure:
bash[migrate gitlab-rails database] (gitlab::database_migrations line 54) had an error: Mixlib::ShellOut::ShellCommandFailed: Expected process to exit with [0], but received '1'
---- Begin output of "bash" "/tmp/chef-script20200424-225089-165iq0i" ----
STDOUT: == 20200204113225 ScheduleRecalculateProjectAuthorizationsThirdRun: migrating =
-- Scheduling RecalculateProjectAuthorizationsWithMinMaxUserId jobs
== 20200204113225 ScheduleRecalculateProjectAuthorizationsThirdRun: migrated (0.0948s)
== 20200204131831 CreateDailyReportResults: migrating =========================
-- create_table(:ci_daily_report_results)
-> 0.0887s
== 20200204131831 CreateDailyReportResults: migrated (0.0887s) ================
== 20200213100530 AddVerificationColumnsToPackages: migrating =================
-- add_column(:packages_package_files, :verification_retry_at, :datetime_with_timezone)
-> 0.0025s
-- add_column(:packages_package_files, :verified_at, :datetime_with_timezone)
-> 0.0009s
-- add_column(:packages_package_files, :verification_checksum, :string, {:limit=>255})
-> 0.0018s
-- add_column(:packages_package_files, :verification_failure, :string, {:limit=>255})
-> 0.0012s
-- add_column(:packages_package_files, :verification_retry_count, :integer)
-> 0.0010s
== 20200213100530 AddVerificationColumnsToPackages: migrated (0.0076s) ========
== 20200214025454 AddCanonicalEmails: migrating ===============================
-- create_table(:user_canonical_emails)
-> 0.0306s
-- add_index(:user_canonical_emails, [:user_id, :canonical_email], {:unique=>true})
-> 0.0127s
-- add_index(:user_canonical_emails, :user_id, {:unique=>true})
-> 0.0091s
== 20200214025454 AddCanonicalEmails: migrated (0.0601s) ======================
== 20200219135440 AddLimitMetricTypeToList: migrating =========================
-- add_column(:lists, :limit_metric, :string, {:limit=>20})
-> 0.0021s
== 20200219135440 AddLimitMetricTypeToList: migrated (0.0021s) ================
== 20200220115023 FixProjectsWithoutPrometheusService: migrating ==============
== 20200220115023 FixProjectsWithoutPrometheusService: migrated (0.0894s) =====
== 20200226124757 RemoveHealthStatusFromEpics: migrating ======================
-- remove_column(:epics, :health_status)
-> 0.0051s
== 20200226124757 RemoveHealthStatusFromEpics: migrated (0.0072s) =============
== 20200302152516 AddWikiSlug: migrating ======================================
-- create_table(:wiki_page_meta, {:id=>:serial})
-> 0.0236s
-- create_table(:wiki_page_slugs, {:id=>:serial})
-> 0.0479s
== 20200302152516 AddWikiSlug: migrated (0.0715s) =============================
== 20200303181648 AddHealthyToClustersApplicationsPrometheus: migrating =======
-- add_column(:clusters_applications_prometheus, :healthy, :boolean)
-> 0.0015s
== 20200303181648 AddHealthyToClustersApplicationsPrometheus: migrated (0.0015s)
== 20200304124406 AddUnlockMembershipToLdapOfGroups: migrating ================
-- add_column(:namespaces, :unlock_membership_to_ldap, :boolean)
-> 0.0012s
== 20200304124406 AddUnlockMembershipToLdapOfGroups: migrated (0.0030s) =======
== 20200305200641 CreateTerraformStates: migrating ============================
-- create_table(:terraform_states)
-> 0.0231s
== 20200305200641 CreateTerraformStates: migrated (0.0231s) ===================
== 20200311074438 MigrateBotTypeToUserType: migrating =========================
-- execute("UPDATE users SET user_type = bot_type WHERE bot_type IS NOT NULL AND user_type IS NULL")
-> 0.0140s
== 20200311074438 MigrateBotTypeToUserType: migrated (0.0141s) ================
== 20200311082301 AddUserStateIndex: migrating ================================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:users, [:state, :user_type], {:where=>"ghost IS NOT TRUE", :name=>"index_users_on_state_and_user_type_internal", :algorithm=>:concurrently})
-> 0.0268s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:users, [:state, :user_type], {:where=>"ghost IS NOT TRUE", :name=>"index_users_on_state_and_user_type_internal", :algorithm=>:concurrently})
-> 0.0152s
-- execute("RESET ALL")
-> 0.0005s
-- transaction_open?()
-> 0.0000s
-- indexes(:users)
-> 0.0245s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- remove_index(:users, {:algorithm=>:concurrently, :name=>"index_users_on_state_and_internal_ee"})
-> 0.0063s
-- execute("RESET ALL")
-> 0.0004s
-- transaction_open?()
-> 0.0000s
-- indexes(:users)
-> 0.0225s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- remove_index(:users, {:algorithm=>:concurrently, :name=>"index_users_on_state_and_internal"})
-> 0.0043s
-- execute("RESET ALL")
-> 0.0003s
== 20200311082301 AddUserStateIndex: migrated (0.1026s) =======================
== 20200311130802 SchedulePopulateUserHighestRolesTable: migrating ============
== 20200311130802 SchedulePopulateUserHighestRolesTable: migrated (0.0683s) ===
== 20200311154110 CreateVulnerabilityExports: migrating =======================
-- create_table(:vulnerability_exports)
-> 0.0339s
== 20200311154110 CreateVulnerabilityExports: migrated (0.0339s) ==============
== 20200311214912 AddModsecurityModeToIngressApplication: migrating ===========
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0008s
-- transaction()
-- add_column(:clusters_applications_ingress, :modsecurity_mode, :smallint, {:default=>nil})
-> 0.0023s
-- change_column_default(:clusters_applications_ingress, :modsecurity_mode, 0)
-> 0.0034s
-> 0.0090s
-- columns(:clusters_applications_ingress)
-> 0.0017s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"clusters_applications_ingress\"")
-> 0.0015s
-- change_column_null(:clusters_applications_ingress, :modsecurity_mode, false)
-> 0.0031s
-- execute("RESET ALL")
-> 0.0004s
== 20200311214912 AddModsecurityModeToIngressApplication: migrated (0.0172s) ==
== 20200312053852 PopulateCanonicalEmails: migrating ==========================
== 20200312053852 PopulateCanonicalEmails: migrated (0.0050s) =================
== 20200312125121 AddIndexOnActiveAndTemplateAndTypeAndIdToServices: migrating
-- transaction_open?()
-> 0.0000s
-- index_exists?(:services, [:type, :id, :template], {:where=>"active = TRUE", :name=>"index_services_on_type_and_id_and_template_when_active", :algorithm=>:concurrently})
-> 0.0065s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:services, [:type, :id, :template], {:where=>"active = TRUE", :name=>"index_services_on_type_and_id_and_template_when_active", :algorithm=>:concurrently})
-> 0.0193s
-- execute("RESET ALL")
-> 0.0003s
== 20200312125121 AddIndexOnActiveAndTemplateAndTypeAndIdToServices: migrated (0.0269s)
== 20200312160532 AddIndexOnMirrorAndIdToProjects: migrating ==================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, :id, {:where=>"mirror = TRUE AND mirror_trigger_builds = TRUE", :name=>"index_projects_on_mirror_id_where_mirror_and_trigger_builds", :algorithm=>:concurrently})
-> 0.0275s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:projects, :id, {:where=>"mirror = TRUE AND mirror_trigger_builds = TRUE", :name=>"index_projects_on_mirror_id_where_mirror_and_trigger_builds", :algorithm=>:concurrently})
-> 0.0141s
-- execute("RESET ALL")
-> 0.0003s
-- transaction_open?()
-> 0.0000s
-- indexes(:projects)
-> 0.0278s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- remove_index(:projects, {:algorithm=>:concurrently, :name=>"index_projects_on_mirror_and_mirror_trigger_builds_both_true"})
-> 0.0062s
-- execute("RESET ALL")
-> 0.0005s
== 20200312160532 AddIndexOnMirrorAndIdToProjects: migrated (0.0775s) =========
== 20200313101649 FillGhostUserType: migrating ================================
-- execute("UPDATE users SET user_type = 5 WHERE ghost IS TRUE AND user_type IS NULL")
-> 0.0021s
== 20200313101649 FillGhostUserType: migrated (0.0022s) =======================
== 20200313202430 AddIndexChatNameServiceId: migrating ========================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:chat_names, :service_id, {:algorithm=>:concurrently})
-> 0.0026s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:chat_names, :service_id, {:algorithm=>:concurrently})
-> 0.0134s
-- execute("RESET ALL")
-> 0.0004s
== 20200313202430 AddIndexChatNameServiceId: migrated (0.0181s) ===============
== 20200313203525 AddInvalidForeignKeyFromChatNameToService: migrating ========
-- transaction_open?()
-> 0.0000s
-- foreign_keys(:chat_names)
-> 0.0047s
-- execute("ALTER TABLE chat_names\nADD CONSTRAINT fk_00797a2bf9\nFOREIGN KEY (service_id)\nREFERENCES services (id)\nON DELETE CASCADE\nNOT VALID;\n")
-> 0.0019s
== 20200313203525 AddInvalidForeignKeyFromChatNameToService: migrated (0.0131s)
== 20200313203550 RemoveOrphanedChatNames: migrating ==========================
-- execute("DELETE FROM chat_names WHERE service_id NOT IN(SELECT id FROM services WHERE services.type = 'chat')")
-> 0.0032s
== 20200313203550 RemoveOrphanedChatNames: migrated (0.0034s) =================
== 20200313204021 ValidateForeignKeyFromChatNameToService: migrating ==========
-- foreign_keys(:chat_names)
-> 0.0032s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- execute("ALTER TABLE chat_names VALIDATE CONSTRAINT fk_00797a2bf9;")
-> 0.0010s
-- execute("RESET ALL")
-> 0.0004s
== 20200313204021 ValidateForeignKeyFromChatNameToService: migrated (0.0053s) =
== 20200314060834 AddScannedResourcesCountToSecurityScan: migrating ===========
-- add_column(:security_scans, :scanned_resources_count, :integer)
-> 0.0087s
== 20200314060834 AddScannedResourcesCountToSecurityScan: migrated (0.0087s) ==
== 20200316111759 AddIndexOnIdAndLdapKeyToKeys: migrating =====================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:keys, [:id], {:where=>"type = 'LDAPKey'", :name=>"index_keys_on_id_and_ldap_key_type", :algorithm=>:concurrently})
-> 0.0061s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- add_index(:keys, [:id], {:where=>"type = 'LDAPKey'", :name=>"index_keys_on_id_and_ldap_key_type", :algorithm=>:concurrently})
-> 0.0129s
-- execute("RESET ALL")
-> 0.0003s
== 20200316111759 AddIndexOnIdAndLdapKeyToKeys: migrated (0.0199s) ============
== 20200316162648 AddIndexOnNamespaceIdAndIdToProjects: migrating =============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:namespace_id, :id], {:algorithm=>:concurrently})
-> 0.0378s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- add_index(:projects, [:namespace_id, :id], {:algorithm=>:concurrently})
-> 0.0165s
-- execute("RESET ALL")
-> 0.0005s
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, :namespace_id, {:algorithm=>:concurrently})
-> 0.0307s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- remove_index(:projects, {:algorithm=>:concurrently, :column=>:namespace_id})
-> 0.0305s
-- execute("RESET ALL")
-> 0.0004s
== 20200316162648 AddIndexOnNamespaceIdAndIdToProjects: migrated (0.1178s) ====
== 20200316173312 AddVulnerabilityExportProjectForeignKey: migrating ==========
-- add_foreign_key(:vulnerability_exports, :projects, {:column=>:project_id, :on_delete=>:cascade, :index=>false})
-> 0.0025s
== 20200316173312 AddVulnerabilityExportProjectForeignKey: migrated (0.0046s) =
== 20200317110602 AddMigratingUserHighestRolesTableIndexToUsers: migrating ====
-- transaction_open?()
-> 0.0000s
-- index_exists?(:users, :id, {:where=>"state = 'active' AND user_type IS NULL AND bot_type IS NULL AND ghost IS NOT TRUE", :name=>"index_for_migrating_user_highest_roles_table", :algorithm=>:concurrently})
-> 0.0270s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- add_index(:users, :id, {:where=>"state = 'active' AND user_type IS NULL AND bot_type IS NULL AND ghost IS NOT TRUE", :name=>"index_for_migrating_user_highest_roles_table", :algorithm=>:concurrently})
-> 0.0165s
-- execute("RESET ALL")
-> 0.0005s
== 20200317110602 AddMigratingUserHighestRolesTableIndexToUsers: migrated (0.0448s)
== 20200317142110 AddVulnerabilityExportUserForeignKey: migrating =============
-- add_foreign_key(:vulnerability_exports, :users, {:column=>:author_id, :on_delete=>:cascade, :index=>false})
-> 0.0030s
== 20200317142110 AddVulnerabilityExportUserForeignKey: migrated (0.0057s) ====
== 20200318140400 CreateVulnerabilityUserMentions: migrating ==================
-- create_table(:vulnerability_user_mentions)
-> 0.0311s
-- add_index(:vulnerability_user_mentions, [:vulnerability_id], {:where=>"note_id is null", :unique=>true, :name=>"index_vulns_user_mentions_on_vulnerability_id"})
-> 0.0090s
-- add_index(:vulnerability_user_mentions, [:vulnerability_id, :note_id], {:unique=>true, :name=>"index_vulns_user_mentions_on_vulnerability_id_and_note_id"})
-> 0.0094s
== 20200318140400 CreateVulnerabilityUserMentions: migrated (0.0497s) =========
== 20200318152134 AddsSha256ToPackageFiles: migrating =========================
-- add_column(:packages_package_files, :file_sha256, :binary)
-> 0.0021s
== 20200318152134 AddsSha256ToPackageFiles: migrated (0.0022s) ================
== 20200318162148 AddExternalKeyToIssuesTable: migrating ======================
-- add_column(:issues, :external_key, :string, {:limit=>255})
-> 0.0013s
== 20200318162148 AddExternalKeyToIssuesTable: migrated (0.0049s) =============
== 20200318163148 AddIndexOnExternalKeyToIssuesTable: migrating ===============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:issues, [:project_id, :external_key], {:unique=>true, :where=>"external_key IS NOT NULL", :algorithm=>:concurrently})
-> 0.0179s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:issues, [:project_id, :external_key], {:unique=>true, :where=>"external_key IS NOT NULL", :algorithm=>:concurrently})
-> 0.0155s
-- execute("RESET ALL")
-> 0.0004s
== 20200318163148 AddIndexOnExternalKeyToIssuesTable: migrated (0.0346s) ======
== 20200318164448 AddExternalKeyToEpicsTable: migrating =======================
-- add_column(:epics, :external_key, :string, {:limit=>255})
-> 0.0011s
== 20200318164448 AddExternalKeyToEpicsTable: migrated (0.0037s) ==============
== 20200318165448 AddIndexOnExternalKeyToEpicsTable: migrating ================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:epics, [:group_id, :external_key], {:unique=>true, :where=>"external_key IS NOT NULL", :algorithm=>:concurrently})
-> 0.0120s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:epics, [:group_id, :external_key], {:unique=>true, :where=>"external_key IS NOT NULL", :algorithm=>:concurrently})
-> 0.0166s
-- execute("RESET ALL")
-> 0.0007s
== 20200318165448 AddIndexOnExternalKeyToEpicsTable: migrated (0.0299s) =======
== 20200318175008 AddIndexOnIdAndArchivedAndPendingDeleteToProjects: migrating
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, :id, {:where=>"archived = FALSE AND pending_delete = FALSE", :name=>"index_projects_on_id_and_archived_and_pending_delete", :algorithm=>:concurrently})
-> 0.0340s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:projects, :id, {:where=>"archived = FALSE AND pending_delete = FALSE", :name=>"index_projects_on_id_and_archived_and_pending_delete", :algorithm=>:concurrently})
-> 0.0174s
-- execute("RESET ALL")
-> 0.0004s
== 20200318175008 AddIndexOnIdAndArchivedAndPendingDeleteToProjects: migrated (0.0523s)
== 20200318183553 CreatePypiPackageMetadata: migrating ========================
-- create_table(:packages_pypi_metadata, {:id=>false})
-> 0.0109s
== 20200318183553 CreatePypiPackageMetadata: migrated (0.0109s) ===============
== 20200319071702 ConsumeRemainingLinkLfsObjectsProjectsJobs: migrating =======
== 20200319071702 ConsumeRemainingLinkLfsObjectsProjectsJobs: migrated (0.0023s)
== 20200319123041 UpdatePlanLimitsDefaults: migrating =========================
-- change_column_default(:plan_limits, :project_hooks, 100)
-> 0.0041s
-- change_column_default(:plan_limits, :group_hooks, 50)
-> 0.0027s
-- change_column_default(:plan_limits, :ci_project_subscriptions, 2)
-> 0.0028s
-- change_column_default(:plan_limits, :ci_pipeline_schedules, 10)
-> 0.0024s
== 20200319123041 UpdatePlanLimitsDefaults: migrated (0.0124s) ================
== 20200319124127 CreateMetricsDashboardAnnotations: migrating ================
-- create_table(:metrics_dashboard_annotations)
-> 0.0431s
== 20200319124127 CreateMetricsDashboardAnnotations: migrated (0.0431s) =======
== 20200319203901 AddIndexOnUsersUnlockToken: migrating =======================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:users, :unlock_token, {:unique=>true, :name=>"index_users_on_unlock_token", :algorithm=>:concurrently})
-> 0.0204s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:users, :unlock_token, {:unique=>true, :name=>"index_users_on_unlock_token", :algorithm=>:concurrently})
-> 0.0160s
-- execute("RESET ALL")
-> 0.0006s
== 20200319203901 AddIndexOnUsersUnlockToken: migrated (0.0377s) ==============
== 20200320112455 AddCostFactorFiledsToCiRunners: migrating ===================
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- transaction()
-- add_column(:ci_runners, :public_projects_minutes_cost_factor, :float, {:default=>nil})
-> 0.0022s
-- change_column_default(:ci_runners, :public_projects_minutes_cost_factor, 0.0)
-> 0.0063s
-> 0.0126s
-- columns(:ci_runners)
-> 0.0049s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"ci_runners\"")
-> 0.0044s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1")
-> 0.0009s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" WHERE \"ci_runners\".\"id\" >= 1 ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0010s
-- execute("UPDATE \"ci_runners\" SET \"public_projects_minutes_cost_factor\" = 0.0 WHERE \"ci_runners\".\"id\" >= 1 AND \"ci_runners\".\"id\" < 2")
-> 0.0034s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" WHERE \"ci_runners\".\"id\" >= 2 ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0009s
-- execute("UPDATE \"ci_runners\" SET \"public_projects_minutes_cost_factor\" = 0.0 WHERE \"ci_runners\".\"id\" >= 2 AND \"ci_runners\".\"id\" < 7")
-> 0.0037s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" WHERE \"ci_runners\".\"id\" >= 7 ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0010s
-- execute("UPDATE \"ci_runners\" SET \"public_projects_minutes_cost_factor\" = 0.0 WHERE \"ci_runners\".\"id\" >= 7")
-> 0.0033s
-- change_column_null(:ci_runners, :public_projects_minutes_cost_factor, false)
-> 0.0030s
-- execute("RESET ALL")
-> 0.0004s
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- transaction()
-- add_column(:ci_runners, :private_projects_minutes_cost_factor, :float, {:default=>nil})
-> 0.0020s
-- change_column_default(:ci_runners, :private_projects_minutes_cost_factor, 1.0)
-> 0.0039s
-> 0.0090s
-- columns(:ci_runners)
-> 0.0051s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"ci_runners\"")
-> 0.0007s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1")
-> 0.0008s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" WHERE \"ci_runners\".\"id\" >= 1 ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0007s
-- execute("UPDATE \"ci_runners\" SET \"private_projects_minutes_cost_factor\" = 1.0 WHERE \"ci_runners\".\"id\" >= 1 AND \"ci_runners\".\"id\" < 2")
-> 0.0037s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" WHERE \"ci_runners\".\"id\" >= 2 ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0011s
-- execute("UPDATE \"ci_runners\" SET \"private_projects_minutes_cost_factor\" = 1.0 WHERE \"ci_runners\".\"id\" >= 2 AND \"ci_runners\".\"id\" < 7")
-> 0.0034s
-- exec_query("SELECT \"ci_runners\".\"id\" FROM \"ci_runners\" WHERE \"ci_runners\".\"id\" >= 7 ORDER BY \"ci_runners\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0009s
-- execute("UPDATE \"ci_runners\" SET \"private_projects_minutes_cost_factor\" = 1.0 WHERE \"ci_runners\".\"id\" >= 7")
-> 0.0031s
-- change_column_null(:ci_runners, :private_projects_minutes_cost_factor, false)
-> 0.0030s
-- execute("RESET ALL")
-> 0.0004s
== 20200320112455 AddCostFactorFiledsToCiRunners: migrated (0.0762s) ==========
== 20200320123839 AddLetsencryptErrorsToPagesDomains: migrating ===============
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- transaction()
-- add_column(:pages_domains, :auto_ssl_failed, :boolean, {:default=>nil})
-> 0.0022s
-- change_column_default(:pages_domains, :auto_ssl_failed, false)
-> 0.0059s
-> 0.0119s
-- columns(:pages_domains)
-> 0.0033s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"pages_domains\"")
-> 0.0015s
-- change_column_null(:pages_domains, :auto_ssl_failed, false)
-> 0.0033s
-- execute("RESET ALL")
-> 0.0006s
== 20200320123839 AddLetsencryptErrorsToPagesDomains: migrated (0.0216s) ======
== 20200323011225 CompleteMigrateSecurityScans: migrating =====================
== 20200323011225 CompleteMigrateSecurityScans: migrated (0.0018s) ============
== 20200323011955 RemoveIndexUsedForScanMigration: migrating ==================
-- index_exists?(:ci_job_artifacts, [:id, :file_type, :job_id, :created_at, :updated_at], {:name=>"job_artifacts_secure_reports_temp_index"})
-> 0.0059s
-- transaction_open?()
-> 0.0000s
-- index_exists?(:ci_job_artifacts, [:id, :file_type, :job_id, :created_at, :updated_at], {:name=>"job_artifacts_secure_reports_temp_index", :algorithm=>:concurrently})
-> 0.0056s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- remove_index(:ci_job_artifacts, {:name=>"job_artifacts_secure_reports_temp_index", :algorithm=>:concurrently, :column=>[:id, :file_type, :job_id, :created_at, :updated_at]})
-> 0.0115s
-- execute("RESET ALL")
-> 0.0005s
== 20200323011955 RemoveIndexUsedForScanMigration: migrated (0.0243s) =========
== 20200323071918 AddBioToUserDetails: migrating ==============================
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- transaction()
-- add_column(:user_details, :bio, :string, {:default=>nil, :limit=>255})
-> 0.0026s
-- change_column_default(:user_details, :bio, "")
-> 0.0032s
-> 0.0095s
-- columns(:user_details)
-> 0.0027s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"user_details\"")
-> 0.0023s
-- exec_query("SELECT \"user_details\".\"user_id\" FROM \"user_details\" ORDER BY \"user_details\".\"user_id\" ASC LIMIT 1")
-> 0.0008s
-- exec_query("SELECT \"user_details\".\"user_id\" FROM \"user_details\" WHERE \"user_details\".\"user_id\" >= 274 ORDER BY \"user_details\".\"user_id\" ASC LIMIT 1 OFFSET 1")
-> 0.0007s
-- execute("UPDATE \"user_details\" SET \"bio\" = '' WHERE \"user_details\".\"user_id\" >= 274")
-> 0.0031s
-- change_column_null(:user_details, :bio, false)
-> 0.0030s
-- execute("RESET ALL")
-> 0.0004s
== 20200323071918 AddBioToUserDetails: migrated (0.0240s) =====================
== 20200323074147 AddTempIndexOnUsersBio: migrating ===========================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:users, :id, {:where=>"(COALESCE(bio, '') IS DISTINCT FROM '')", :name=>"tmp_idx_on_user_id_where_bio_is_filled", :algorithm=>:concurrently})
-> 0.0247s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:users, :id, {:where=>"(COALESCE(bio, '') IS DISTINCT FROM '')", :name=>"tmp_idx_on_user_id_where_bio_is_filled", :algorithm=>:concurrently})
-> 0.0138s
-- execute("RESET ALL")
-> 0.0004s
== 20200323074147 AddTempIndexOnUsersBio: migrated (0.0395s) ==================
== 20200323075043 AddMaxPersonalAccessTokenLifetimeToNamespaces: migrating ====
-- add_column(:namespaces, :max_personal_access_token_lifetime, :integer)
-> 0.0012s
== 20200323075043 AddMaxPersonalAccessTokenLifetimeToNamespaces: migrated (0.0038s)
== 20200323080714 TriggerBackgroundMigrationForUsersBio: migrating ============
== 20200323080714 TriggerBackgroundMigrationForUsersBio: migrated (0.0762s) ===
== 20200323122201 AddIndexOnUserAndCreatedAtToCiBuilds: migrating =============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:ci_builds, [:user_id, :created_at], {:where=>"type = 'Ci::Build'", :name=>"index_ci_builds_on_user_id_and_created_at_and_type_eq_ci_build", :algorithm=>:concurrently})
-> 0.0146s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- add_index(:ci_builds, [:user_id, :created_at], {:where=>"type = 'Ci::Build'", :name=>"index_ci_builds_on_user_id_and_created_at_and_type_eq_ci_build", :algorithm=>:concurrently})
-> 0.0165s
-- execute("RESET ALL")
-> 0.0006s
== 20200323122201 AddIndexOnUserAndCreatedAtToCiBuilds: migrated (0.0322s) ====
== 20200323134519 AddApiIndexesForArchivedProjects: migrating =================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:created_at, :id], {:where=>"archived = true AND visibility_level = 20 AND pending_delete = false", :name=>"index_projects_api_created_at_id_for_archived_vis20", :algorithm=>:concurrently})
-> 0.0324s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- add_index(:projects, [:created_at, :id], {:where=>"archived = true AND visibility_level = 20 AND pending_delete = false", :name=>"index_projects_api_created_at_id_for_archived_vis20", :algorithm=>:concurrently})
-> 0.0134s
-- execute("RESET ALL")
-> 0.0003s
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:created_at, :id], {:where=>"archived = true AND pending_delete = false", :name=>"index_projects_api_created_at_id_for_archived", :algorithm=>:concurrently})
-> 0.0204s
-- execute("SET statement_timeout TO 0")
-> 0.0002s
-- add_index(:projects, [:created_at, :id], {:where=>"archived = true AND pending_delete = false", :name=>"index_projects_api_created_at_id_for_archived", :algorithm=>:concurrently})
-> 0.0129s
-- execute("RESET ALL")
-> 0.0003s
== 20200323134519 AddApiIndexesForArchivedProjects: migrated (0.0806s) ========
== 20200324093258 AddIndexOnIdCreatorIdAndCreatedAtToProjectsTable: migrating =
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:id, :creator_id, :created_at], {:where=>"\"projects\".\"service_desk_enabled\" = TRUE", :name=>"index_service_desk_enabled_projects_on_id_creator_id_created_at", :algorithm=>:concurrently})
-> 0.0301s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- add_index(:projects, [:id, :creator_id, :created_at], {:where=>"\"projects\".\"service_desk_enabled\" = TRUE", :name=>"index_service_desk_enabled_projects_on_id_creator_id_created_at", :algorithm=>:concurrently})
-> 0.0164s
-- execute("RESET ALL")
-> 0.0004s
== 20200324093258 AddIndexOnIdCreatorIdAndCreatedAtToProjectsTable: migrated (0.0474s)
== 20200324115359 AddNamespaceStorageSizeLimitToApplicationSettings: migrating
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- transaction()
-- add_column(:application_settings, :namespace_storage_size_limit, :bigint, {:default=>nil})
-> 0.0028s
-- change_column_default(:application_settings, :namespace_storage_size_limit, 0)
-> 0.0505s
-> 0.0571s
-- columns(:application_settings)
-> 0.0557s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"application_settings\"")
-> 0.0011s
-- exec_query("SELECT \"application_settings\".\"id\" FROM \"application_settings\" ORDER BY \"application_settings\".\"id\" ASC LIMIT 1")
-> 0.0007s
-- exec_query("SELECT \"application_settings\".\"id\" FROM \"application_settings\" WHERE \"application_settings\".\"id\" >= 1 ORDER BY \"application_settings\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0007s
-- execute("UPDATE \"application_settings\" SET \"namespace_storage_size_limit\" = 0 WHERE \"application_settings\".\"id\" >= 1")
-> 0.0042s
-- change_column_null(:application_settings, :namespace_storage_size_limit, false)
-> 0.0043s
-- execute("RESET ALL")
-> 0.0004s
== 20200324115359 AddNamespaceStorageSizeLimitToApplicationSettings: migrated (0.1262s)
== 20200325104755 AddPushRulesIdToProjectSettings: migrating ==================
-- add_column(:project_settings, :push_rule_id, :bigint)
-> 0.0016s
== 20200325104755 AddPushRulesIdToProjectSettings: migrated (0.0039s) =========
== 20200325104756 AddPushRulesForeignKeyToProjectSettings: migrating ==========
-- transaction_open?()
-> 0.0000s
-- index_exists?(:project_settings, :push_rule_id, {:unique=>true, :algorithm=>:concurrently})
-> 0.0011s
-- execute("SET statement_timeout TO 0")
-> 0.0003s
-- add_index(:project_settings, :push_rule_id, {:unique=>true, :algorithm=>:concurrently})
-> 0.0136s
-- execute("RESET ALL")
-> 0.0005s
-- transaction_open?()
-> 0.0000s
-- foreign_keys(:project_settings)
-> 0.0053s
-- execute("ALTER TABLE project_settings\nADD CONSTRAINT fk_413a953e20\nFOREIGN KEY (push_rule_id)\nREFERENCES push_rules (id)\nON DELETE CASCADE\nNOT VALID;\n")
-> 0.0018s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- execute("ALTER TABLE project_settings VALIDATE CONSTRAINT fk_413a953e20;")
-> 0.0074s
-- execute("RESET ALL")
-> 0.0005s
== 20200325104756 AddPushRulesForeignKeyToProjectSettings: migrated (0.0365s) =
== 20200325104833 AddPushRulesIdToApplicationSettings: migrating ==============
-- add_column(:application_settings, :push_rule_id, :bigint)
-> 0.0015s
== 20200325104833 AddPushRulesIdToApplicationSettings: migrated (0.0038s) =====
== 20200325104834 AddPushRulesForeignKeyToApplicationSettings: migrating ======
-- transaction_open?()
-> 0.0000s
-- index_exists?(:application_settings, :push_rule_id, {:unique=>true, :algorithm=>:concurrently})
-> 0.0059s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:application_settings, :push_rule_id, {:unique=>true, :algorithm=>:concurrently})
-> 0.0179s
-- execute("RESET ALL")
-> 0.0004s
-- transaction_open?()
-> 0.0000s
-- foreign_keys(:application_settings)
-> 0.0036s
-- execute("ALTER TABLE application_settings\nADD CONSTRAINT fk_693b8795e4\nFOREIGN KEY (push_rule_id)\nREFERENCES push_rules (id)\nON DELETE SET NULL\nNOT VALID;\n")
-> 0.0018s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- execute("ALTER TABLE application_settings VALIDATE CONSTRAINT fk_693b8795e4;")
-> 0.0048s
-- execute("RESET ALL")
-> 0.0005s
== 20200325104834 AddPushRulesForeignKeyToApplicationSettings: migrated (0.0414s)
== 20200325111432 AddIssuesCreateLimitToApplicationSettings: migrating ========
-- add_column(:application_settings, :issues_create_limit, :integer, {:default=>300, :null=>false})
-> 0.0039s
== 20200325111432 AddIssuesCreateLimitToApplicationSettings: migrated (0.0040s)
== 20200325160952 AddIndexOnNameTypeEqCiBuildToCiBuilds: migrating ============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:ci_builds, [:name, :id], {:name=>"index_ci_builds_on_name_and_security_type_eq_ci_build", :where=>"((name)::text = ANY (ARRAY[('container_scanning'::character varying)::text, ('dast'::character varying)::text, ('dependency_scanning'::character varying)::text, ('license_management'::character varying)::text, ('sast'::character varying)::text, ('license_scanning'::character varying)::text])) AND ((type)::text = 'Ci::Build'::text)", :algorithm=>:concurrently})
-> 0.0230s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:ci_builds, [:name, :id], {:name=>"index_ci_builds_on_name_and_security_type_eq_ci_build", :where=>"((name)::text = ANY (ARRAY[('container_scanning'::character varying)::text, ('dast'::character varying)::text, ('dependency_scanning'::character varying)::text, ('license_management'::character varying)::text, ('sast'::character varying)::text, ('license_scanning'::character varying)::text])) AND ((type)::text = 'Ci::Build'::text)", :algorithm=>:concurrently})
-> 0.0133s
-- execute("RESET ALL")
-> 0.0006s
== 20200325160952 AddIndexOnNameTypeEqCiBuildToCiBuilds: migrated (0.0376s) ===
== 20200325162730 ScheduleBackfillPushRulesIdInProjects: migrating ============
== 20200325162730 ScheduleBackfillPushRulesIdInProjects: migrated (0.0177s) ===
== 20200325183636 AddApiIndexForInternalProjects: migrating ===================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:created_at, :id], {:where=>"visibility_level = 10 AND pending_delete = false", :name=>"index_projects_api_created_at_id_for_vis10", :algorithm=>:concurrently})
-> 0.0515s
-- execute("SET statement_timeout TO 0")
-> 0.0007s
-- add_index(:projects, [:created_at, :id], {:where=>"visibility_level = 10 AND pending_delete = false", :name=>"index_projects_api_created_at_id_for_vis10", :algorithm=>:concurrently})
-> 0.0207s
-- execute("RESET ALL")
-> 0.0005s
== 20200325183636 AddApiIndexForInternalProjects: migrated (0.0736s) ==========
== 20200326114443 CreateJiraImportsTable: migrating ===========================
-- create_table(:jira_imports)
-> 0.0245s
-- add_index(:jira_imports, [:project_id, :jira_project_key], {:name=>"index_jira_imports_on_project_id_and_jira_project_key"})
-> 0.0118s
== 20200326114443 CreateJiraImportsTable: migrated (0.0364s) ==================
== 20200326122700 CreateDiffNotePositions: migrating ==========================
-- create_table(:diff_note_positions)
-> 0.0242s
== 20200326122700 CreateDiffNotePositions: migrated (0.0269s) =================
== 20200326124443 AddProjectsFkToJiraImportsTable: migrating ==================
-- add_foreign_key(:jira_imports, :projects, {:on_delete=>:cascade})
-> 0.0031s
== 20200326124443 AddProjectsFkToJiraImportsTable: migrated (0.0059s) =========
== 20200326134443 AddUsersFkToJiraImportsTable: migrating =====================
-- add_foreign_key(:jira_imports, :users, {:on_delete=>:nullify})
-> 0.0024s
== 20200326134443 AddUsersFkToJiraImportsTable: migrated (0.0049s) ============
== 20200326135443 AddUsersFkIndexOnJiraImportsTable: migrating ================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:jira_imports, :user_id, {:algorithm=>:concurrently})
-> 0.0028s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:jira_imports, :user_id, {:algorithm=>:concurrently})
-> 0.0120s
-- execute("RESET ALL")
-> 0.0006s
== 20200326135443 AddUsersFkIndexOnJiraImportsTable: migrated (0.0162s) =======
== 20200326144443 AddLabelsFkToJiraImportsTable: migrating ====================
-- add_foreign_key(:jira_imports, :labels, {:on_delete=>:nullify})
-> 0.0034s
== 20200326144443 AddLabelsFkToJiraImportsTable: migrated (0.0077s) ===========
== 20200326145443 AddLabelsFkIndexOnJiraImportsTable: migrating ===============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:jira_imports, :label_id, {:algorithm=>:concurrently})
-> 0.0047s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:jira_imports, :label_id, {:algorithm=>:concurrently})
-> 0.0130s
-- execute("RESET ALL")
-> 0.0004s
== 20200326145443 AddLabelsFkIndexOnJiraImportsTable: migrated (0.0188s) ======
== 20200330074719 AddIndexForGroupVsmUsagePing: migrating =====================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:analytics_cycle_analytics_group_stages, :id, {:where=>"custom = true", :name=>"index_analytics_cycle_analytics_group_stages_custom_only", :algorithm=>:concurrently})
-> 0.0065s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- add_index(:analytics_cycle_analytics_group_stages, :id, {:where=>"custom = true", :name=>"index_analytics_cycle_analytics_group_stages_custom_only", :algorithm=>:concurrently})
-> 0.0131s
-- execute("RESET ALL")
-> 0.0004s
== 20200330074719 AddIndexForGroupVsmUsagePing: migrated (0.0208s) ============
== 20200330121000 AddConfidentialAttributeToEpics: migrating ==================
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- transaction()
-- add_column(:epics, :confidential, :boolean, {:default=>nil})
-> 0.0022s
-- change_column_default(:epics, :confidential, false)
-> 0.0062s
-> 0.0115s
-- columns(:epics)
-> 0.0052s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"epics\"")
-> 0.0092s
-- change_column_null(:epics, :confidential, false)
-> 0.0030s
-- execute("RESET ALL")
-> 0.0008s
== 20200330121000 AddConfidentialAttributeToEpics: migrated (0.0309s) =========
== 20200330123739 RemoveIndexCiBuildsOnNameForSecurityReportsValues: migrating
-- transaction_open?()
-> 0.0000s
-- indexes(:ci_builds)
-> 0.0321s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- remove_index(:ci_builds, {:algorithm=>:concurrently, :name=>"index_ci_builds_on_name_for_security_reports_values"})
-> 0.0067s
-- execute("RESET ALL")
-> 0.0005s
== 20200330123739 RemoveIndexCiBuildsOnNameForSecurityReportsValues: migrated (0.0401s)
== 20200330132913 AddIndexOnAuthorIdAndCreatedAtAndIdToNotes: migrating =======
-- transaction_open?()
-> 0.0000s
-- index_exists?(:notes, [:author_id, :created_at, :id], {:algorithm=>:concurrently})
-> 0.0108s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:notes, [:author_id, :created_at, :id], {:algorithm=>:concurrently})
-> 0.0244s
-- execute("RESET ALL")
-> 0.0004s
-- transaction_open?()
-> 0.0000s
-- index_exists?(:notes, [:author_id, :created_at], {:algorithm=>:concurrently})
-> 0.0145s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- remove_index(:notes, {:algorithm=>:concurrently, :column=>[:author_id, :created_at]})
-> 0.0214s
-- execute("RESET ALL")
-> 0.0007s
== 20200330132913 AddIndexOnAuthorIdAndCreatedAtAndIdToNotes: migrated (0.0739s)
== 20200331132103 AddProjectComplianceFrameworkSettingsTable: migrating =======
-- create_table(:project_compliance_framework_settings, {:id=>false})
-> 0.0269s
== 20200331132103 AddProjectComplianceFrameworkSettingsTable: migrated (0.0306s)
== 20200331195952 AddContainerExpirationPoliciesEnableHistoricEntriesToApplicationSettings: migrating
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0008s
-- transaction()
-- add_column(:application_settings, :container_expiration_policies_enable_historic_entries, :boolean, {:default=>nil})
-> 0.0028s
-- change_column_default(:application_settings, :container_expiration_policies_enable_historic_entries, false)
-> 0.0387s
-> 0.0448s
-- columns(:application_settings)
-> 0.0564s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"application_settings\"")
-> 0.0013s
-- exec_query("SELECT \"application_settings\".\"id\" FROM \"application_settings\" ORDER BY \"application_settings\".\"id\" ASC LIMIT 1")
-> 0.0012s
-- exec_query("SELECT \"application_settings\".\"id\" FROM \"application_settings\" WHERE \"application_settings\".\"id\" >= 1 ORDER BY \"application_settings\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0013s
-- execute("UPDATE \"application_settings\" SET \"container_expiration_policies_enable_historic_entries\" = FALSE WHERE \"application_settings\".\"id\" >= 1")
-> 0.0039s
-- change_column_null(:application_settings, :container_expiration_policies_enable_historic_entries, false)
-> 0.0037s
-- execute("RESET ALL")
-> 0.0007s
== 20200331195952 AddContainerExpirationPoliciesEnableHistoricEntriesToApplicationSettings: migrated (0.1159s)
== 20200331220930 EnableContainerExpirationPoliciesByDefault: migrating =======
-- change_column_default(:container_expiration_policies, :enabled, true)
-> 0.0047s
== 20200331220930 EnableContainerExpirationPoliciesByDefault: migrated (0.0084s)
== 20200401095430 AddJsonbToGeoNodeStatusTable: migrating =====================
-- change_table(:geo_node_statuses)
-> 0.0053s
== 20200401095430 AddJsonbToGeoNodeStatusTable: migrated (0.0054s) ============
== 20200401211005 CreateOperationsUserLists: migrating ========================
-- create_table(:operations_user_lists)
-> 0.0414s
== 20200401211005 CreateOperationsUserLists: migrated (0.0415s) ===============
== 20200402123926 AddLineMetricsToMrMetrics: migrating ========================
-- add_column(:merge_request_metrics, :added_lines, :integer)
-> 0.0011s
-- add_column(:merge_request_metrics, :removed_lines, :integer)
-> 0.0009s
== 20200402123926 AddLineMetricsToMrMetrics: migrated (0.0052s) ===============
== 20200402124802 AddCorrelationIdToProjectImportState: migrating =============
-- add_column(:project_mirror_data, :correlation_id_value, :string, {:limit=>128})
-> 0.0009s
== 20200402124802 AddCorrelationIdToProjectImportState: migrated (0.0038s) ====
== 20200402135250 AddDeleteStatusToContainerRepository: migrating =============
-- add_column(:container_repositories, :status, :integer, {:limit=>2})
-> 0.0015s
== 20200402135250 AddDeleteStatusToContainerRepository: migrated (0.0015s) ====
== 20200402185044 CreateClustersApplicationsFluentd: migrating ================
-- create_table(:clusters_applications_fluentd)
-> 0.0261s
== 20200402185044 CreateClustersApplicationsFluentd: migrated (0.0262s) =======
== 20200403184110 AddPartialIndexOnIdToCiJobArtifacts: migrating ==============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:ci_job_artifacts, :id, {:where=>"file_store IS NULL", :name=>"index_ci_job_artifacts_file_store_is_null", :algorithm=>:concurrently})
-> 0.0057s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:ci_job_artifacts, :id, {:where=>"file_store IS NULL", :name=>"index_ci_job_artifacts_file_store_is_null", :algorithm=>:concurrently})
-> 0.0148s
-- execute("RESET ALL")
-> 0.0004s
== 20200403184110 AddPartialIndexOnIdToCiJobArtifacts: migrated (0.0216s) =====
== 20200403185127 AddPartialIndexOnIdToLfsObjects: migrating ==================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:lfs_objects, :id, {:where=>"file_store IS NULL", :name=>"index_lfs_objects_file_store_is_null", :algorithm=>:concurrently})
-> 0.0035s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- add_index(:lfs_objects, :id, {:where=>"file_store IS NULL", :name=>"index_lfs_objects_file_store_is_null", :algorithm=>:concurrently})
-> 0.2264s
-- execute("RESET ALL")
-> 0.0007s
== 20200403185127 AddPartialIndexOnIdToLfsObjects: migrated (0.2315s) =========
== 20200403185422 AddPartialIndexOnIdToUploads: migrating =====================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:uploads, :id, {:where=>"store IS NULL", :name=>"index_uploads_store_is_null", :algorithm=>:concurrently})
-> 0.0074s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:uploads, :id, {:where=>"store IS NULL", :name=>"index_uploads_store_is_null", :algorithm=>:concurrently})
-> 0.0149s
-- execute("RESET ALL")
-> 0.0005s
== 20200403185422 AddPartialIndexOnIdToUploads: migrated (0.0237s) ============
== 20200406102111 AddIndexToDeploymentsWhereClusterIdIsNotNull: migrating =====
-- transaction_open?()
-> 0.0000s
-- index_exists?(:deployments, :id, {:where=>"cluster_id IS NOT NULL", :name=>"index_deployments_on_id_where_cluster_id_present", :algorithm=>:concurrently})
-> 0.0163s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:deployments, :id, {:where=>"cluster_id IS NOT NULL", :name=>"index_deployments_on_id_where_cluster_id_present", :algorithm=>:concurrently})
-> 0.0128s
-- execute("RESET ALL")
-> 0.0005s
== 20200406102111 AddIndexToDeploymentsWhereClusterIdIsNotNull: migrated (0.0304s)
== 20200406102120 BackfillDeploymentClustersFromDeployments: migrating ========
-- Scheduling `BackfillDeploymentClustersFromDeployments` jobs
== 20200406102120 BackfillDeploymentClustersFromDeployments: migrated (0.0214s)
== 20200406135648 AddIndexToCreatedAtOnResourceMilestoneEvents: migrating =====
-- transaction_open?()
-> 0.0000s
-- index_exists?(:resource_milestone_events, :created_at, {:name=>"index_resource_milestone_events_created_at", :algorithm=>:concurrently})
-> 0.0060s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- add_index(:resource_milestone_events, :created_at, {:name=>"index_resource_milestone_events_created_at", :algorithm=>:concurrently})
-> 0.0193s
-- execute("RESET ALL")
-> 0.0006s
== 20200406135648 AddIndexToCreatedAtOnResourceMilestoneEvents: migrated (0.0268s)
== 20200406192059 AddWriteRegistryToDeployTokens: migrating ===================
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0008s
-- transaction()
-- add_column(:deploy_tokens, :write_registry, :boolean, {:default=>nil})
-> 0.0021s
-- change_column_default(:deploy_tokens, :write_registry, false)
-> 0.0031s
-> 0.0090s
-- columns(:deploy_tokens)
-> 0.0029s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"deploy_tokens\"")
-> 0.0017s
-- exec_query("SELECT \"deploy_tokens\".\"id\" FROM \"deploy_tokens\" ORDER BY \"deploy_tokens\".\"id\" ASC LIMIT 1")
-> 0.0016s
-- exec_query("SELECT \"deploy_tokens\".\"id\" FROM \"deploy_tokens\" WHERE \"deploy_tokens\".\"id\" >= 1 ORDER BY \"deploy_tokens\".\"id\" ASC LIMIT 1 OFFSET 1")
-> 0.0008s
-- execute("UPDATE \"deploy_tokens\" SET \"write_registry\" = FALSE WHERE \"deploy_tokens\".\"id\" >= 1")
-> 0.0039s
-- change_column_null(:deploy_tokens, :write_registry, false)
-> 0.0038s
-- execute("RESET ALL")
-> 0.0005s
== 20200406192059 AddWriteRegistryToDeployTokens: migrated (0.0259s) ==========
== 20200406193427 AddIndexToIssuesHealthStatus: migrating =====================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:issues, :health_status, {:where=>"health_status IS NOT NULL", :name=>"idx_issues_on_health_status_not_null", :algorithm=>:concurrently})
-> 0.0212s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:issues, :health_status, {:where=>"health_status IS NOT NULL", :name=>"idx_issues_on_health_status_not_null", :algorithm=>:concurrently})
-> 0.0135s
-- execute("RESET ALL")
-> 0.0006s
== 20200406193427 AddIndexToIssuesHealthStatus: migrated (0.0360s) ============
== 20200407094005 DropVulnerabilitySeverityIndex: migrating ===================
-- transaction_open?()
-> 0.0000s
-- indexes(:vulnerability_occurrences)
-> 0.0114s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- remove_index(:vulnerability_occurrences, {:algorithm=>:concurrently, :name=>"undefined_vulnerabilities"})
-> 0.0073s
-- execute("RESET ALL")
-> 0.0005s
== 20200407094005 DropVulnerabilitySeverityIndex: migrated (0.0200s) ==========
== 20200407094923 DropVulnerabilitiesSeverityIndex: migrating =================
-- transaction_open?()
-> 0.0000s
-- indexes(:vulnerabilities)
-> 0.0147s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- remove_index(:vulnerabilities, {:algorithm=>:concurrently, :name=>"undefined_vulnerability"})
-> 0.0048s
-- execute("RESET ALL")
-> 0.0006s
== 20200407094923 DropVulnerabilitiesSeverityIndex: migrated (0.0210s) ========
== 20200407120000 AddPushRuleIdToGroups: migrating ============================
-- add_column(:namespaces, :push_rule_id, :bigint)
-> 0.0013s
== 20200407120000 AddPushRuleIdToGroups: migrated (0.0040s) ===================
== 20200407121321 AddPushRuleForeignKeyToGroups: migrating ====================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:namespaces, :push_rule_id, {:unique=>true, :algorithm=>:concurrently})
-> 0.0140s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- add_index(:namespaces, :push_rule_id, {:unique=>true, :algorithm=>:concurrently})
-> 0.0180s
-- execute("RESET ALL")
-> 0.0006s
-- transaction_open?()
-> 0.0000s
-- foreign_keys(:namespaces)
-> 0.0052s
-- execute("ALTER TABLE namespaces\nADD CONSTRAINT fk_3448c97865\nFOREIGN KEY (push_rule_id)\nREFERENCES push_rules (id)\nON DELETE SET NULL\nNOT VALID;\n")
-> 0.0021s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- execute("ALTER TABLE namespaces VALIDATE CONSTRAINT fk_3448c97865;")
-> 0.0057s
-- execute("RESET ALL")
-> 0.0005s
== 20200407121321 AddPushRuleForeignKeyToGroups: migrated (0.0581s) ===========
== 20200407171133 AddProtectedTagCreateAccessLevelsUserIdForeignKey: migrating
-- add_foreign_key(:protected_tag_create_access_levels, :users, {:on_delete=>:cascade, :validate=>false, :name=>"fk_protected_tag_create_access_levels_user_id"})
-> 0.0021s
-- foreign_keys(:protected_tag_create_access_levels)
-> 0.0032s
-- remove_foreign_key(:protected_tag_create_access_levels, {:column=>:user_id, :on_delete=>nil})
-> 0.0070s
== 20200407171133 AddProtectedTagCreateAccessLevelsUserIdForeignKey: migrated (0.0184s)
== 20200407171417 ValidateProtectedTagCreateAccessLevelsUserIdForeignKey: migrating
-- foreign_keys(:protected_tag_create_access_levels)
-> 0.0040s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- execute("ALTER TABLE protected_tag_create_access_levels VALIDATE CONSTRAINT fk_protected_tag_create_access_levels_user_id;")
-> 0.0047s
-- execute("RESET ALL")
-> 0.0005s
== 20200407171417 ValidateProtectedTagCreateAccessLevelsUserIdForeignKey: migrated (0.0099s)
== 20200408110856 AddNginxFiveHundredPercentageMetric: migrating ==============
== 20200408110856 AddNginxFiveHundredPercentageMetric: migrated (0.0881s) =====
== 20200408133211 AddIndexOnRoutePathTrigram: migrating =======================
-- transaction_open?()
-> 0.0000s
-- index_exists?(:routes, :path, {:name=>"index_routes_on_path_trigram", :using=>:gin, :opclass=>{:path=>:gin_trgm_ops}, :algorithm=>:concurrently})
-> 0.0052s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:routes, :path, {:name=>"index_routes_on_path_trigram", :using=>:gin, :opclass=>{:path=>:gin_trgm_ops}, :algorithm=>:concurrently})
-> 0.0397s
-- execute("RESET ALL")
-> 0.0004s
== 20200408133211 AddIndexOnRoutePathTrigram: migrated (0.0462s) ==============
== 20200408153842 AddIndexOnCreatorIdAndIdOnProjects: migrating ===============
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:creator_id, :id], {:algorithm=>:concurrently})
-> 0.0514s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- add_index(:projects, [:creator_id, :id], {:algorithm=>:concurrently})
-> 0.0170s
-- execute("RESET ALL")
-> 0.0006s
== 20200408153842 AddIndexOnCreatorIdAndIdOnProjects: migrated (0.0697s) ======
== 20200408154331 AddProtectedBranchMergeAccessLevelsUserIdForeignKey: migrating
-- add_foreign_key(:protected_branch_merge_access_levels, :users, {:on_delete=>:cascade, :validate=>false, :name=>"fk_protected_branch_merge_access_levels_user_id"})
-> 0.0023s
-- foreign_keys(:protected_branch_merge_access_levels)
-> 0.0052s
-- remove_foreign_key(:protected_branch_merge_access_levels, {:column=>:user_id, :on_delete=>nil})
-> 0.0080s
== 20200408154331 AddProtectedBranchMergeAccessLevelsUserIdForeignKey: migrated (0.0215s)
== 20200408154349 ValidateProtectedBranchMergeAccessLevelsUserIdForeignKey: migrating
-- foreign_keys(:protected_branch_merge_access_levels)
-> 0.0053s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- execute("ALTER TABLE protected_branch_merge_access_levels VALIDATE CONSTRAINT fk_protected_branch_merge_access_levels_user_id;")
-> 0.0043s
-- execute("RESET ALL")
-> 0.0005s
== 20200408154349 ValidateProtectedBranchMergeAccessLevelsUserIdForeignKey: migrated (0.0109s)
== 20200408154411 AddPathLocksUserIdForeignKey: migrating =====================
-- add_foreign_key(:path_locks, :users, {:on_delete=>:cascade, :validate=>false, :name=>"fk_path_locks_user_id"})
-> 0.0014s
-- foreign_keys(:path_locks)
-> 0.0028s
-- remove_foreign_key(:path_locks, {:column=>:user_id, :on_delete=>nil})
-> 0.0047s
== 20200408154411 AddPathLocksUserIdForeignKey: migrated (0.0143s) ============
== 20200408154428 ValidatePathLocksUserIdForeignKey: migrating ================
-- foreign_keys(:path_locks)
-> 0.0056s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- execute("ALTER TABLE path_locks VALIDATE CONSTRAINT fk_path_locks_user_id;")
-> 0.0039s
-- execute("RESET ALL")
-> 0.0004s
== 20200408154428 ValidatePathLocksUserIdForeignKey: migrated (0.0109s) =======
== 20200408154455 AddProtectedBranchPushAccessLevelsUserIdForeignKey: migrating
-- add_foreign_key(:protected_branch_push_access_levels, :users, {:on_delete=>:cascade, :validate=>false, :name=>"fk_protected_branch_push_access_levels_user_id"})
-> 0.0021s
-- foreign_keys(:protected_branch_push_access_levels)
-> 0.0047s
-- remove_foreign_key(:protected_branch_push_access_levels, {:column=>:user_id, :on_delete=>nil})
-> 0.0057s
== 20200408154455 AddProtectedBranchPushAccessLevelsUserIdForeignKey: migrated (0.0172s)
== 20200408154533 ValidateProtectedBranchPushAccessLevelsUserIdForeignKey: migrating
-- foreign_keys(:protected_branch_push_access_levels)
-> 0.0039s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- execute("ALTER TABLE protected_branch_push_access_levels VALIDATE CONSTRAINT fk_protected_branch_push_access_levels_user_id;")
-> 0.0024s
-- execute("RESET ALL")
-> 0.0005s
== 20200408154533 ValidateProtectedBranchPushAccessLevelsUserIdForeignKey: migrated (0.0077s)
== 20200408154604 AddU2fRegistrationsUserIdForeignKey: migrating ==============
-- add_foreign_key(:u2f_registrations, :users, {:on_delete=>:cascade, :validate=>false, :name=>"fk_u2f_registrations_user_id"})
-> 0.0023s
-- foreign_keys(:u2f_registrations)
-> 0.0052s
-- remove_foreign_key(:u2f_registrations, {:column=>:user_id, :on_delete=>nil})
-> 0.0052s
== 20200408154604 AddU2fRegistrationsUserIdForeignKey: migrated (0.0192s) =====
== 20200408154624 ValidateU2fRegistrationsUserIdForeignKey: migrating =========
-- foreign_keys(:u2f_registrations)
-> 0.0035s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- execute("ALTER TABLE u2f_registrations VALIDATE CONSTRAINT fk_u2f_registrations_user_id;")
-> 0.0014s
-- execute("RESET ALL")
-> 0.0004s
== 20200408154624 ValidateU2fRegistrationsUserIdForeignKey: migrated (0.0060s)
== 20200408175424 AddIndexOnCreatorIdCreatedAtIdToProjectsTable: migrating ====
-- transaction_open?()
-> 0.0000s
-- index_exists?(:projects, [:creator_id, :created_at, :id], {:algorithm=>:concurrently})
-> 0.0434s
-- execute("SET statement_timeout TO 0")
-> 0.0007s
-- add_index(:projects, [:creator_id, :created_at, :id], {:algorithm=>:concurrently})
-> 0.0173s
-- execute("RESET ALL")
-> 0.0007s
== 20200408175424 AddIndexOnCreatorIdCreatedAtIdToProjectsTable: migrated (0.0623s)
== 20200408212219 AddStatusPageUrlToStatusPageSettings: migrating =============
-- add_column(:status_page_settings, :status_page_url, :text)
-> 0.0043s
-- transaction_open?()
-> 0.0000s
-- execute("ALTER TABLE status_page_settings\nADD CONSTRAINT check_75a79cd992\nCHECK ( char_length(status_page_url) <= 1024 )\nNOT VALID;\n")
-> 0.0015s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- execute("ALTER TABLE status_page_settings VALIDATE CONSTRAINT check_75a79cd992;")
-> 0.0033s
-- execute("RESET ALL")
-> 0.0004s
== 20200408212219 AddStatusPageUrlToStatusPageSettings: migrated (0.0181s) ====
== 20200409085956 AddPartialIndexOnImportFailuresRetryCount: migrating ========
-- transaction_open?()
-> 0.0000s
-- index_exists?(:import_failures, [:project_id, :correlation_id_value], {:where=>"retry_count = 0", :algorithm=>:concurrently})
-> 0.0053s
-- execute("SET statement_timeout TO 0")
-> 0.0006s
-- add_index(:import_failures, [:project_id, :correlation_id_value], {:where=>"retry_count = 0", :algorithm=>:concurrently})
-> 0.0139s
-- execute("RESET ALL")
-> 0.0005s
== 20200409085956 AddPartialIndexOnImportFailuresRetryCount: migrated (0.0206s)
== 20200409211607 MigrateLegacyAttachments: migrating =========================
== 20200409211607 MigrateLegacyAttachments: migrated (0.0121s) ================
== 20200410232012 AddMetricsDashboardAccessLevelToProjectFeature: migrating ===
-- add_column(:project_features, :metrics_dashboard_access_level, :integer)
-> 0.0012s
== 20200410232012 AddMetricsDashboardAccessLevelToProjectFeature: migrated (0.0037s)
== 20200413072059 AddGroupOwnersCanManageDefaultBranchProtectionToApplicationSettings: migrating
-- transaction_open?()
-> 0.0000s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- transaction()
-- add_column(:application_settings, :group_owners_can_manage_default_branch_protection, :boolean, {:default=>nil})
-> 0.0027s
-- change_column_default(:application_settings, :group_owners_can_manage_default_branch_protection, true)
-> 0.0424s
-> 0.0484s
-- columns(:application_settings)
-> 0.0410s
-- transaction_open?()
-> 0.0000s
-- exec_query("SELECT COUNT(*) AS count FROM \"application_settings\"")
-> 0.0010s
-- exec_query("SELECT \"application_settings\".\"id\" FROM \"application_settings\" ORDER BY \"application_settings\".\"id\" ASC LIMIT 1")
-> 0.0009s
-- exec_query("SELECT \"application_settings\".\"id\" FROM \"application_settings\" WHERE \"application_settings\".\"id\" >= 1 ORDER BY \"application_settings\".\"id\" ASC LIMIT 1 OFFSET 1")NOTICE: constraint "lfs_objects_file_store_not_null" of relation "lfs_objects" does not exist, skipping
NOTICE: constraint "ci_job_artifacts_file_store_not_null" of relation "ci_job_artifacts" does not exist, skipping
NOTICE: constraint "uploads_store_not_null" of relation "uploads" does not exist, skipping
-> 0.0008s
-- execute("UPDATE \"application_settings\" SET \"group_owners_can_manage_default_branch_protection\" = TRUE WHERE \"application_settings\".\"id\" >= 1")
-> 0.0032s
-- change_column_null(:application_settings, :group_owners_can_manage_default_branch_protection, false)
-> 0.0039s
-- execute("RESET ALL")
-> 0.0006s
== 20200413072059 AddGroupOwnersCanManageDefaultBranchProtectionToApplicationSettings: migrated (0.1016s)
== 20200414144547 RemoveIndexProjectsOnCreatorIdAndCreatedAtFromProjects: migrating
-- transaction_open?()
-> 0.0000s
-- indexes(:projects)
-> 0.0513s
-- execute("SET statement_timeout TO 0")
-> 0.0005s
-- remove_index(:projects, {:algorithm=>:concurrently, :name=>"index_projects_on_creator_id_and_created_at"})
-> 0.0047s
-- execute("RESET ALL")
-> 0.0005s
== 20200414144547 RemoveIndexProjectsOnCreatorIdAndCreatedAtFromProjects: migrated (0.0572s)
== 20200415160722 RemoveNotNullLfsObjectsConstraint: migrating ================
-- execute("ALTER TABLE lfs_objects DROP CONSTRAINT IF EXISTS lfs_objects_file_store_not_null;\n")
-> 0.0009s
== 20200415160722 RemoveNotNullLfsObjectsConstraint: migrated (0.0036s) =======
== 20200415161021 RemoveNotNullCiJobArtifactsConstraint: migrating ============
-- execute("ALTER TABLE ci_job_artifacts DROP CONSTRAINT IF EXISTS ci_job_artifacts_file_store_not_null;\n")
-> 0.0006s
== 20200415161021 RemoveNotNullCiJobArtifactsConstraint: migrated (0.0033s) ===
== 20200415161206 RemoveNotNullUploadsConstraint: migrating ===================
-- execute("ALTER TABLE uploads DROP CONSTRAINT IF EXISTS uploads_store_not_null;\n")
-> 0.0010s
== 20200415161206 RemoveNotNullUploadsConstraint: migrated (0.0050s) ==========
== 20200415192656 AddNameRegexKeepToContainerExpirationPolicies: migrating ====
-- add_column(:container_expiration_policies, :name_regex_keep, :text)
-> 0.0110s
-- transaction_open?()
-> 0.0000s
-- execute("ALTER TABLE container_expiration_policies\nADD CONSTRAINT container_expiration_policies_name_regex_keep\nCHECK ( char_length(name_regex_keep) <= 255 )\nNOT VALID;\n")
-> 0.0009s
-- execute("SET statement_timeout TO 0")
-> 0.0004s
-- execute("ALTER TABLE container_expiration_policies VALIDATE CONSTRAINT container_expiration_policies_name_regex_keep;")
-> 0.0036s
-- execute("RESET ALL")
-> 0.0006s
== 20200415192656 AddNameRegexKeepToContainerExpirationPolicies: migrated (0.0234s)
== 20200416120128 AddColumnsToTerraformState: migrating =======================
-- add_column(:terraform_states, :lock_xid, :string, {:limit=>255})
-> 0.0090s
-- add_column(:terraform_states, :locked_at, :datetime_with_timezone)
-> 0.0008s
-- add_column(:terraform_states, :locked_by_user_id, :bigint)
-> 0.1099s
-- add_column(:terraform_states, :uuid, :string, {:limit=>32, :null=>false})
-> 0.0008s
-- add_column(:terraform_states, :name, :string, {:limit=>255})
-> 0.0006s
-- add_index(:terraform_states, :locked_by_user_id)
-> 0.0101s
-- add_index(:terraform_states, :uuid, {:unique=>true})
-> 0.0095s
-- add_index(:terraform_states, [:project_id, :name], {:unique=>true})
-> 0.0089s
-- remove_index(:terraform_states, :project_id)
-> 0.0084s
== 20200416120128 AddColumnsToTerraformState: migrated (0.1586s) ==============
== 20200416120354 AddLockedByUserIdForeignKeyToTerraformState: migrating ======
-- add_foreign_key(:terraform_states, :users, {:column=>:locked_by_user_id})
-> 0.0026s
== 20200416120354 AddLockedByUserIdForeignKeyToTerraformState: migrated (0.0061s)
pg_dump: server version: 11.7; pg_dump version: 9.6.17
pg_dump: aborting because of server version mismatch
rake aborted!
failed to execute:
pg_dump -s -x -O -f /opt/gitlab/embedded/service/gitlab-rails/db/structure.sql -T untracked_files_for_uploads gitlabhq_production
Please check the output above for any errors and make sure that `pg_dump` is installed in your PATH and has proper permissions.
/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:49:in `block (3 levels) in <top (required)>'
/opt/gitlab/embedded/bin/bundle:23:in `load'
/opt/gitlab/embedded/bin/bundle:23:in `<main>'
Tasks: TOP => db:structure:dump
(See full trace by running task with --trace)
STDERR:
---- End output of "bash" "/tmp/chef-script20200424-225089-165iq0i" ----
Ran "bash" "/tmp/chef-script20200424-225089-165iq0i" returned 1
Running handlers complete
Chef Client failed. 20 resources updated in 01 minutes 37 seconds
Verifying : 1:nginx-1.18.0-1.el7.ngx.x86_64 1/4
Verifying : gitlab-ce-12.10.0-ce.0.el7.x86_64 2/4
Verifying : gitlab-ce-12.9.2-ce.0.el7.x86_64 3/4
Verifying : 1:nginx-1.16.1-1.el7.ngx.x86_64 4/4
Updated:
gitlab-ce.x86_64 0:12.10.0-ce.0.el7 nginx.x86_64 1:1.18.0-1.el7.ngx
Complete!
GitLab is actually on v12.10 now, but I'm afraid those hundreds of migration errors will blow up in my face soon.
Turns out, GitLab has been upgrading the internal Postgres all along:
# ls -1 /opt/gitlab/embedded/postgresql
10
11
9.6
9.6.8
But most symlinks to the executables still point to the v9.6 ones:
# readlink -f /opt/gitlab/embedded/bin/pg_*
/opt/gitlab/embedded/postgresql/9.6/bin/pg_archivecleanup
/opt/gitlab/embedded/postgresql/9.6/bin/pg_basebackup
/opt/gitlab/embedded/postgresql/9.6/bin/pg_config
/opt/gitlab/embedded/postgresql/9.6/bin/pg_controldata
/opt/gitlab/embedded/postgresql/9.6/bin/pg_ctl
/opt/gitlab/embedded/postgresql/9.6/bin/pg_dump
/opt/gitlab/embedded/postgresql/9.6/bin/pg_dumpall
/opt/gitlab/embedded/postgresql/9.6/bin/pg_isready
/opt/gitlab/embedded/postgresql/11/bin/pg_receivewal
/opt/gitlab/embedded/postgresql/9.6/bin/pg_receivexlog
/opt/gitlab/embedded/postgresql/9.6/bin/pg_recvlogical
/opt/gitlab/embedded/postgresql/11/bin/pg_resetwal
/opt/gitlab/embedded/postgresql/9.6/bin/pg_resetxlog
/opt/gitlab/embedded/postgresql/9.6/bin/pg_restore
/opt/gitlab/embedded/postgresql/9.6/bin/pg_rewind
/opt/gitlab/embedded/postgresql/9.6/bin/pg_standby
/opt/gitlab/embedded/postgresql/9.6/bin/pg_test_fsync
/opt/gitlab/embedded/postgresql/9.6/bin/pg_test_timing
/opt/gitlab/embedded/postgresql/9.6/bin/pg_upgrade
/opt/gitlab/embedded/postgresql/11/bin/pg_verify_checksums
/opt/gitlab/embedded/postgresql/11/bin/pg_waldump
/opt/gitlab/embedded/postgresql/9.6/bin/pg_xlogdump
And I'd do a pg upgrade, but:
# gitlab-ctl pg-upgrade -V 11
Traceback (most recent call last):
8: from /opt/gitlab/embedded/bin/omnibus-ctl:23:in `<main>'
7: from /opt/gitlab/embedded/bin/omnibus-ctl:23:in `load'
6: from /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/omnibus-ctl-0.6.0/bin/omnibus-ctl:31:in `<top (required)>'
5: from /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/omnibus-ctl-0.6.0/lib/omnibus-ctl.rb:746:in `run'
4: from /opt/gitlab/embedded/lib/ruby/gems/2.6.0/gems/omnibus-ctl-0.6.0/lib/omnibus-ctl.rb:204:in `block in add_command_under_category'
3: from /opt/gitlab/embedded/service/omnibus-ctl/pg-upgrade.rb:82:in `block in load_file'
2: from /opt/gitlab/embedded/service/omnibus-ctl/lib/gitlab_ctl/util.rb:105:in `roles'
1: from /opt/gitlab/embedded/service/omnibus-ctl/lib/gitlab_ctl/util.rb:64:in `get_node_attributes'
/opt/gitlab/embedded/service/omnibus-ctl/lib/gitlab_ctl/util.rb:52:in `parse_json_file': Attributes not found in /opt/gitlab/embedded/nodes/git.ad.adasworks.com.json, has reconfigure been run yet? (GitlabCtl::Errors::NodeError)
So I'm stuck in limbo. I could forcefully change the symlinks, but I'm not at all sure it won't break something.
What is the expected correct behavior?
I expect GitLab to
- either use the external Postgres executables that are found in PATH, or
- keep the bundled Postgres executable symlinks up-to-date even if you're using external Postgres, since for whatever reason GitLab uses the internal Postgres tools for external Postgres upgrades
Results of GitLab environment info
Expand for output related to GitLab environment info
System information System: Current User: git Using RVM: no Ruby Version: 2.6.5p114 Gem Version: 2.7.10 Bundler Version:1.17.3 Rake Version: 12.3.3 Redis Version: 5.0.7 Git Version: 2.26.2 Sidekiq Version:5.2.7 Go Version: unknown GitLab information Version: 12.10.0 Revision: 869bc26464b Directory: /opt/gitlab/embedded/service/gitlab-rails DB Adapter: PostgreSQL DB Version: 11.7 URL: https://git.foobar.com HTTP Clone URL: https://git.foobar.com/some-group/some-project.git SSH Clone URL: ssh://git@git.foobar.com:29418/some-group/some-project.git Using LDAP: yes Using Omniauth: yes Omniauth Providers: GitLab Shell Version: 12.2.0 Repository storage paths: - default: /var/opt/gitlab/git-data/repositories GitLab Shell path: /opt/gitlab/embedded/service/gitlab-shell Git: /opt/gitlab/embedded/bin/git
Results of GitLab application Check
Expand for output related to the GitLab application check
Checking GitLab subtasks ...Checking GitLab Shell ...
GitLab Shell: ... GitLab Shell version >= 12.2.0 ? ... OK (12.2.0) Running /opt/gitlab/embedded/service/gitlab-shell/bin/check Internal API available: OK Redis available via internal API: OK gitlab-shell self-check successful
Checking GitLab Shell ... Finished
Checking Gitaly ...
Gitaly: ... default ... OK
Checking Gitaly ... Finished
Checking Sidekiq ...
Sidekiq: ... Running? ... yes Number of Sidekiq processes ... 1
Checking Sidekiq ... Finished
Checking Incoming Email ...
Incoming Email: ... Reply by email is disabled in config/gitlab.yml
Checking Incoming Email ... Finished
Checking LDAP ...
LDAP: ... Server: ldapmain not verifying SSL hostname of LDAPS server 'ad.adasworks.com:636' LDAP authentication... Success LDAP users with access to your GitLab server (only showing the first 100 results) User output sanitized. Found 100 users of 100 limit.
Checking LDAP ... Finished
Checking GitLab App ...
Git configured correctly? ... yes Database config exists? ... yes All migrations up? ... yes Database contains orphaned GroupMembers? ... no GitLab config exists? ... yes GitLab config up to date? ... yes Log directory writable? ... yes Tmp directory writable? ... yes Uploads directory exists? ... yes Uploads directory has correct permissions? ... yes Uploads directory tmp has correct permissions? ... yes Init script exists? ... skipped (omnibus-gitlab has no init script) Init script up-to-date? ... skipped (omnibus-gitlab has no init script) Projects have namespace: ... 18/1 ... yes 12/3 ... yes 15/8 ... yes 13/10 ... yes 10/12 ... yes 19/13 ... yes 24/15 ... yes 24/16 ... yes 24/17 ... yes 21/18 ... yes 24/19 ... yes 24/20 ... yes 24/22 ... yes 24/23 ... yes 24/24 ... yes 24/25 ... yes 24/26 ... yes 10/27 ... yes 8/32 ... yes 8/33 ... yes 8/34 ... yes 8/35 ... yes 8/36 ... yes 10/42 ... yes 11/43 ... yes 64/44 ... yes 70/45 ... yes 70/46 ... yes 64/47 ... yes 79/48 ... yes 79/49 ... yes 79/50 ... yes 81/51 ... yes 79/52 ... yes 78/53 ... yes 79/54 ... yes 79/55 ... yes 78/56 ... yes 78/57 ... yes 75/59 ... yes 75/61 ... yes 75/62 ... yes 75/63 ... yes 75/64 ... yes 75/66 ... yes 75/67 ... yes 75/68 ... yes 75/69 ... yes 75/70 ... yes 75/72 ... yes 75/73 ... yes 75/74 ... yes 75/75 ... yes 75/76 ... yes 75/77 ... yes 75/78 ... yes 75/79 ... yes 75/80 ... yes 75/81 ... yes 75/82 ... yes 75/83 ... yes 84/84 ... yes 84/85 ... yes 75/87 ... yes 68/88 ... yes 76/89 ... yes 76/90 ... yes 76/91 ... yes 76/92 ... yes 68/94 ... yes 68/95 ... yes 68/96 ... yes 68/97 ... yes 68/98 ... yes 94/99 ... yes 96/100 ... yes 96/101 ... yes 96/102 ... yes 4/109 ... yes 98/110 ... yes 98/111 ... yes 98/112 ... yes 98/113 ... yes 99/114 ... yes 99/115 ... yes 99/116 ... yes 99/117 ... yes 79/118 ... yes 99/119 ... yes 99/120 ... yes 99/121 ... yes 33/127 ... yes 77/128 ... yes 77/129 ... yes 77/131 ... yes 21/132 ... yes 65/134 ... yes 65/135 ... yes 65/136 ... yes 65/137 ... yes 65/138 ... yes 65/139 ... yes 65/140 ... yes 65/141 ... yes 65/142 ... yes 64/143 ... yes 101/144 ... yes 19/145 ... yes 19/146 ... yes 19/147 ... yes 19/148 ... yes 19/149 ... yes 19/150 ... yes 19/151 ... yes 19/152 ... yes 19/153 ... yes 19/154 ... yes 19/155 ... yes 19/156 ... yes 19/157 ... yes 19/158 ... yes 19/159 ... yes 19/160 ... yes 19/161 ... yes 19/162 ... yes 19/163 ... yes 19/164 ... yes 19/165 ... yes 19/166 ... yes 19/167 ... yes 19/168 ... yes 19/169 ... yes 19/170 ... yes 19/171 ... yes 19/172 ... yes 19/173 ... yes 19/174 ... yes 19/175 ... yes 19/176 ... yes 19/177 ... yes 19/178 ... yes 19/179 ... yes 19/180 ... yes 19/181 ... yes 19/182 ... yes 19/183 ... yes 19/184 ... yes 19/185 ... yes 19/186 ... yes 19/187 ... yes 19/188 ... yes 19/189 ... yes 19/190 ... yes 19/191 ... yes 19/192 ... yes 19/193 ... yes 19/194 ... yes 19/195 ... yes 19/196 ... yes 19/197 ... yes 19/198 ... yes 19/199 ... yes 19/200 ... yes 19/201 ... yes 19/202 ... yes 19/203 ... yes 19/204 ... yes 19/205 ... yes 19/206 ... yes 19/207 ... yes 19/208 ... yes 19/209 ... yes 19/210 ... yes 19/211 ... yes 19/212 ... yes 19/213 ... yes 19/214 ... yes 19/215 ... yes 61/216 ... yes 106/217 ... yes 24/218 ... yes 106/219 ... yes 106/220 ... yes 33/221 ... yes 55/227 ... yes 55/228 ... yes 92/229 ... yes 92/230 ... yes 92/231 ... yes 92/232 ... yes 92/233 ... yes 54/234 ... yes 54/235 ... yes 54/236 ... yes 54/237 ... yes 111/239 ... yes 13/241 ... yes 10/242 ... yes 52/243 ... yes 17/244 ... yes 52/246 ... yes 120/247 ... yes 73/251 ... yes 73/252 ... yes 73/253 ... yes 109/254 ... yes 52/257 ... yes 121/258 ... yes 91/260 ... yes 52/261 ... yes 52/262 ... yes 114/263 ... yes 91/264 ... yes 54/267 ... yes 49/270 ... yes 49/271 ... yes 49/272 ... yes 49/273 ... yes 49/274 ... yes 49/275 ... yes 43/276 ... yes 43/277 ... yes 43/278 ... yes 43/279 ... yes 43/280 ... yes 43/281 ... yes 43/282 ... yes 43/283 ... yes 43/284 ... yes 43/285 ... yes 43/286 ... yes 43/287 ... yes 43/288 ... yes 43/289 ... yes 43/290 ... yes 43/291 ... yes 43/292 ... yes 43/293 ... yes 43/294 ... yes 43/295 ... yes 43/296 ... yes 43/297 ... yes 125/298 ... yes 125/299 ... yes 125/300 ... yes 125/301 ... yes 125/302 ... yes 125/303 ... yes 125/304 ... yes 125/305 ... yes 125/306 ... yes 88/308 ... yes 43/309 ... yes 32/310 ... yes 32/311 ... yes 84/312 ... yes 49/316 ... yes 49/317 ... yes 49/318 ... yes 19/319 ... yes 114/320 ... yes 81/321 ... yes 78/322 ... yes 77/323 ... yes 54/324 ... yes 89/325 ... yes 89/326 ... yes 133/329 ... yes 133/330 ... yes 133/331 ... yes 133/332 ... yes 133/333 ... yes 133/334 ... yes 133/335 ... yes 133/336 ... yes 133/337 ... yes 133/338 ... yes 133/339 ... yes 133/340 ... yes 33/342 ... yes 54/343 ... yes 54/344 ... yes 54/345 ... yes 54/346 ... yes 54/347 ... yes 54/349 ... yes 54/350 ... yes 54/351 ... yes 30/352 ... yes 30/353 ... yes 30/354 ... yes 62/355 ... yes 62/356 ... yes 62/357 ... yes 62/358 ... yes 62/359 ... yes 62/360 ... yes 62/361 ... yes 62/362 ... yes 62/364 ... yes 33/365 ... yes 33/366 ... yes 33/367 ... yes 54/368 ... yes 33/369 ... yes 33/370 ... yes 33/371 ... yes 32/372 ... yes 59/373 ... yes 32/374 ... yes 32/375 ... yes 32/376 ... yes 62/377 ... yes 115/379 ... yes 106/380 ... yes 141/381 ... yes 141/382 ... yes 141/383 ... yes 138/384 ... yes 125/385 ... yes 142/386 ... yes 54/387 ... yes 32/390 ... yes 32/391 ... yes 32/393 ... yes 32/394 ... yes 32/395 ... yes 32/396 ... yes 51/397 ... yes 17/398 ... yes 32/399 ... yes 32/401 ... yes 32/402 ... yes 32/403 ... yes 32/404 ... yes 32/405 ... yes 120/406 ... yes 81/407 ... yes 126/408 ... yes 149/409 ... yes 19/410 ... yes 82/411 ... yes 148/412 ... yes 148/413 ... yes 62/414 ... yes 135/416 ... yes 32/417 ... yes 32/418 ... yes 32/419 ... yes 32/420 ... yes 148/421 ... yes 135/422 ... yes 55/423 ... yes 55/424 ... yes 55/425 ... yes 37/434 ... yes 37/435 ... yes 37/436 ... yes 37/437 ... yes 37/438 ... yes 37/439 ... yes 37/440 ... yes 37/441 ... yes 37/442 ... yes 37/443 ... yes 37/444 ... yes 37/445 ... yes 37/446 ... yes 37/447 ... yes 37/448 ... yes 37/449 ... yes 37/450 ... yes 37/451 ... yes 37/452 ... yes 37/453 ... yes 37/454 ... yes 37/455 ... yes 38/456 ... yes 38/457 ... yes 38/458 ... yes 38/459 ... yes 38/460 ... yes 38/461 ... yes 38/462 ... yes 38/463 ... yes 38/464 ... yes 38/465 ... yes 38/466 ... yes 38/467 ... yes 38/468 ... yes 38/469 ... yes 38/470 ... yes 38/471 ... yes 38/472 ... yes 38/473 ... yes 38/474 ... yes 38/475 ... yes 38/476 ... yes 38/477 ... yes 38/478 ... yes 38/479 ... yes 38/480 ... yes 38/481 ... yes 38/482 ... yes 38/483 ... yes 38/484 ... yes 38/485 ... yes 38/486 ... yes 38/487 ... yes 38/488 ... yes 38/489 ... yes 38/490 ... yes 38/491 ... yes 38/492 ... yes 38/493 ... yes 38/494 ... yes 38/495 ... yes 38/496 ... yes 38/497 ... yes 38/498 ... yes 38/499 ... yes 38/500 ... yes 38/501 ... yes 39/502 ... yes 39/503 ... yes 39/504 ... yes 39/505 ... yes 39/506 ... yes 39/507 ... yes 39/508 ... yes 39/509 ... yes 39/510 ... yes 39/511 ... yes 39/512 ... yes 39/513 ... yes 39/514 ... yes 39/515 ... yes 39/516 ... yes 39/517 ... yes 39/518 ... yes 39/519 ... yes 39/520 ... yes 39/521 ... yes 39/522 ... yes 39/523 ... yes 39/524 ... yes 39/525 ... yes 39/526 ... yes 39/527 ... yes 39/528 ... yes 39/529 ... yes 39/530 ... yes 39/531 ... yes 39/532 ... yes 39/533 ... yes 39/534 ... yes 39/535 ... yes 39/536 ... yes 39/537 ... yes 39/538 ... yes 39/539 ... yes 39/540 ... yes 39/541 ... yes 39/542 ... yes 39/543 ... yes 39/544 ... yes 39/545 ... yes 39/546 ... yes 40/547 ... yes 40/548 ... yes 40/549 ... yes 40/550 ... yes 40/551 ... yes 40/552 ... yes 40/553 ... yes 40/554 ... yes 40/555 ... yes 40/556 ... yes 40/557 ... yes 40/558 ... yes 40/559 ... yes 40/560 ... yes 40/561 ... yes 40/562 ... yes 40/563 ... yes 40/564 ... yes 40/565 ... yes 40/566 ... yes 40/567 ... yes 40/568 ... yes 40/569 ... yes 40/570 ... yes 40/571 ... yes 40/572 ... yes 40/573 ... yes 40/574 ... yes 40/575 ... yes 40/576 ... yes 40/577 ... yes 40/578 ... yes 40/579 ... yes 40/580 ... yes 40/581 ... yes 54/582 ... yes 126/583 ... yes 98/584 ... yes 107/585 ... yes 152/586 ... yes 68/588 ... yes 111/590 ... yes 121/591 ... yes 17/592 ... yes 71/593 ... yes 54/594 ... yes 24/596 ... yes 181/597 ... yes 114/598 ... yes 111/599 ... yes 19/600 ... yes 55/601 ... yes 55/602 ... yes 55/603 ... yes 52/604 ... yes 19/605 ... yes 148/606 ... yes 19/607 ... yes 114/608 ... yes 32/609 ... yes 49/610 ... yes 32/611 ... yes 32/612 ... yes 106/613 ... yes 106/614 ... yes 106/615 ... yes 115/617 ... yes 148/618 ... yes 181/619 ... yes 17/620 ... yes 106/621 ... yes 19/622 ... yes 121/623 ... yes 114/624 ... yes 10/625 ... yes 17/626 ... yes 107/627 ... yes 82/628 ... yes 29/629 ... yes 29/630 ... yes 29/631 ... yes 29/632 ... yes 29/633 ... yes 29/634 ... yes 29/635 ... yes 27/636 ... yes 27/637 ... yes 27/641 ... yes 27/642 ... yes 27/643 ... yes 27/644 ... yes 27/645 ... yes 27/646 ... yes 27/647 ... yes 178/648 ... yes 54/649 ... yes 32/650 ... yes 17/652 ... yes 17/653 ... yes 17/654 ... yes 17/655 ... yes 17/656 ... yes 17/658 ... yes 17/659 ... yes 17/660 ... yes 17/661 ... yes 17/662 ... yes 17/663 ... yes 114/664 ... yes 17/665 ... yes 17/666 ... yes 20/669 ... yes 17/670 ... yes 17/671 ... yes 20/672 ... yes 20/673 ... yes 17/674 ... yes 20/675 ... yes 20/676 ... yes 20/677 ... yes 20/678 ... yes 20/680 ... yes 20/681 ... yes 20/682 ... yes 20/683 ... yes 20/684 ... yes 20/685 ... yes 20/686 ... yes 20/687 ... yes 20/688 ... yes 20/689 ... yes 20/690 ... yes 17/693 ... yes 17/694 ... yes 17/695 ... yes 17/696 ... yes 17/697 ... yes 17/698 ... yes 17/699 ... yes 17/700 ... yes 17/701 ... yes 17/702 ... yes 17/703 ... yes 17/704 ... yes 17/705 ... yes 17/706 ... yes 17/707 ... yes 17/708 ... yes 17/709 ... yes 148/710 ... yes 10/711 ... yes 17/713 ... yes 164/714 ... yes 164/715 ... yes 164/716 ... yes 164/717 ... yes 17/718 ... yes 164/719 ... yes 164/720 ... yes 164/721 ... yes 164/722 ... yes 164/723 ... yes 164/724 ... yes 164/725 ... yes 164/726 ... yes 164/727 ... yes 164/728 ... yes 164/729 ... yes 164/730 ... yes 164/731 ... yes 164/732 ... yes 164/733 ... yes 164/734 ... yes 164/735 ... yes 164/736 ... yes 73/737 ... yes 17/738 ... yes 92/739 ... yes 17/740 ... yes 92/741 ... yes 114/743 ... yes 17/745 ... yes 81/746 ... yes 165/748 ... yes 53/749 ... yes 53/750 ... yes 53/751 ... yes 53/752 ... yes 53/753 ... yes 53/754 ... yes 53/755 ... yes 94/756 ... yes 53/757 ... yes 53/758 ... yes 53/759 ... yes 61/760 ... yes 17/763 ... yes 181/764 ... yes 24/765 ... yes 178/767 ... yes 82/768 ... yes 73/769 ... yes 73/770 ... yes 92/771 ... yes 98/772 ... yes 96/773 ... yes 49/774 ... yes 49/775 ... yes 17/776 ... yes 123/777 ... yes 17/778 ... yes 79/779 ... yes 20/781 ... yes 19/782 ... yes 43/784 ... yes 121/785 ... yes 82/786 ... yes 55/787 ... yes 125/788 ... yes 70/789 ... yes 3/790 ... yes 8/791 ... yes 17/792 ... yes 17/793 ... yes 43/794 ... yes 114/795 ... yes 17/797 ... yes 125/803 ... yes 20/805 ... yes 12/811 ... yes 43/812 ... yes 110/814 ... yes 4/815 ... yes 12/816 ... yes 125/817 ... yes 4/818 ... yes 82/819 ... yes 121/820 ... yes 99/821 ... yes 109/822 ... yes 17/823 ... yes 64/824 ... yes 10/825 ... yes 64/826 ... yes 114/827 ... yes 62/828 ... yes 134/829 ... yes 54/830 ... yes 17/831 ... yes 105/832 ... yes 112/833 ... yes 17/834 ... yes 17/835 ... yes 64/836 ... yes 12/837 ... yes 17/838 ... yes 99/839 ... yes 125/840 ... yes 17/841 ... yes 76/842 ... yes 17/843 ... yes 17/844 ... yes 188/845 ... yes 110/846 ... yes 17/847 ... yes 55/849 ... yes 64/850 ... yes 70/851 ... yes 114/852 ... yes 54/853 ... yes 54/854 ... yes 54/855 ... yes 114/859 ... yes 12/860 ... yes 64/861 ... yes 53/862 ... yes 13/864 ... yes 31/865 ... yes 31/866 ... yes 31/867 ... yes 31/868 ... yes 31/869 ... yes 31/870 ... yes 31/871 ... yes 31/872 ... yes 31/873 ... yes 31/874 ... yes 31/875 ... yes 31/876 ... yes 31/877 ... yes 31/878 ... yes 31/879 ... yes 31/880 ... yes 31/881 ... yes 31/882 ... yes 31/883 ... yes 31/884 ... yes 31/885 ... yes 31/886 ... yes 31/887 ... yes 31/888 ... yes 31/889 ... yes 31/890 ... yes 31/891 ... yes 31/892 ... yes 31/893 ... yes 31/894 ... yes 31/895 ... yes 31/896 ... yes 31/897 ... yes 31/898 ... yes 31/899 ... yes 31/900 ... yes 31/901 ... yes 31/902 ... yes 31/903 ... yes 31/904 ... yes 31/905 ... yes 31/906 ... yes 31/907 ... yes 31/908 ... yes 31/909 ... yes 31/910 ... yes 31/911 ... yes 31/912 ... yes 31/913 ... yes 31/914 ... yes 31/916 ... yes 31/917 ... yes 31/918 ... yes 31/919 ... yes 31/920 ... yes 31/921 ... yes 31/922 ... yes 31/923 ... yes 31/924 ... yes 31/925 ... yes 31/926 ... yes 31/927 ... yes 31/928 ... yes 31/929 ... yes 31/930 ... yes 31/931 ... yes 31/932 ... yes 31/933 ... yes 31/934 ... yes 31/935 ... yes 31/936 ... yes 31/937 ... yes 31/938 ... yes 31/939 ... yes 31/940 ... yes 31/941 ... yes 31/942 ... yes 191/943 ... yes 17/944 ... yes 52/945 ... yes 17/946 ... yes 17/947 ... yes 32/948 ... yes 110/949 ... yes 10/950 ... yes 181/951 ... yes 64/952 ... yes 125/953 ... yes 64/954 ... yes 64/955 ... yes 3/956 ... yes 30/957 ... yes 195/958 ... yes 188/959 ... yes 8/960 ... yes 30/962 ... yes 114/963 ... yes 121/964 ... yes 55/967 ... yes 55/968 ... yes 175/969 ... yes 17/972 ... yes 33/974 ... yes 193/975 ... yes 109/976 ... yes 61/977 ... yes 17/978 ... yes 33/979 ... yes 17/980 ... yes 121/981 ... yes 178/982 ... yes 17/983 ... yes 120/984 ... yes 17/985 ... yes 17/987 ... yes 19/988 ... yes 61/989 ... yes 49/990 ... yes 111/991 ... yes 17/994 ... yes 17/995 ... yes 208/996 ... yes 208/997 ... yes 121/998 ... yes 19/999 ... yes 178/1000 ... yes 111/1001 ... yes 109/1002 ... yes 4/1003 ... yes 17/1004 ... yes 82/1005 ... yes 140/1006 ... yes 125/1007 ... yes 193/1008 ... yes 77/1010 ... yes 20/1011 ... yes 181/1012 ... yes 188/1014 ... yes 17/1016 ... yes 17/1017 ... yes 169/1018 ... yes 197/1019 ... yes 17/1020 ... yes 17/1021 ... yes 148/1022 ... yes 17/1023 ... yes 210/1024 ... yes 210/1025 ... yes 210/1026 ... yes 210/1027 ... yes 210/1028 ... yes 210/1030 ... yes 210/1031 ... yes 210/1032 ... yes 210/1033 ... yes 210/1034 ... yes 210/1035 ... yes 210/1036 ... yes 49/1037 ... yes 32/1039 ... yes 43/1040 ... yes 43/1041 ... yes 32/1042 ... yes 81/1043 ... yes 17/1044 ... yes 181/1045 ... yes 110/1046 ... yes 83/1048 ... yes 195/1049 ... yes 214/1050 ... yes 30/1051 ... yes 30/1052 ... yes 181/1053 ... yes 181/1054 ... yes 49/1055 ... yes 17/1056 ... yes 121/1057 ... yes 43/1058 ... yes 181/1059 ... yes 3/1060 ... yes 20/1061 ... yes 17/1062 ... yes 111/1063 ... yes 43/1064 ... yes 33/1065 ... yes 121/1066 ... yes 4/1067 ... yes 33/1068 ... yes 33/1069 ... yes 181/1070 ... yes 247/1072 ... yes 34/1073 ... yes 217/1074 ... yes 49/1075 ... yes 17/1076 ... yes 17/1077 ... yes 49/1078 ... yes 220/1079 ... yes 19/1080 ... yes 121/1081 ... yes 24/1082 ... yes 55/1083 ... yes 125/1084 ... yes 110/1085 ... yes 121/1086 ... yes 19/1087 ... yes 99/1088 ... yes 218/1089 ... yes 20/1090 ... yes 77/1091 ... yes 173/1092 ... yes 218/1093 ... yes 8/1096 ... yes 49/1098 ... yes 82/1099 ... yes 82/1100 ... yes 82/1101 ... yes 19/1102 ... yes 49/1103 ... yes 76/1104 ... yes 30/1106 ... yes 176/1107 ... yes 30/1108 ... yes 247/1109 ... yes 111/1110 ... yes 82/1111 ... yes 90/1112 ... yes 30/1113 ... yes 114/1114 ... yes 188/1115 ... yes 55/1116 ... yes 178/1117 ... yes 178/1118 ... yes 30/1119 ... yes 24/1120 ... yes 235/1121 ... yes 181/1122 ... yes 235/1124 ... yes 236/1125 ... yes 70/1126 ... yes 43/1128 ... yes 234/1129 ... yes 207/1130 ... yes 235/1131 ... yes 3/1132 ... yes 235/1133 ... yes 17/1135 ... yes 20/1137 ... yes 217/1138 ... yes 231/1140 ... yes 98/1141 ... yes 231/1142 ... yes 188/1143 ... yes 54/1144 ... yes 70/1145 ... yes 49/1148 ... yes 62/1149 ... yes 64/1150 ... yes 247/1152 ... yes 17/1153 ... yes 107/1154 ... yes 17/1155 ... yes 98/1156 ... yes 234/1157 ... yes 224/1159 ... yes 55/1160 ... yes 179/1161 ... yes 115/1162 ... yes 114/1163 ... yes 64/1164 ... yes 217/1165 ... yes 212/1166 ... yes 231/1167 ... yes 49/1168 ... yes 247/1169 ... yes 217/1170 ... yes 247/1171 ... yes 247/1172 ... yes 247/1173 ... yes 17/1176 ... yes 247/1177 ... yes 30/1178 ... yes 189/1179 ... yes 247/1180 ... yes 98/1181 ... yes 32/1182 ... yes 212/1184 ... yes 30/1186 ... yes 84/1187 ... yes 76/1188 ... yes 54/1190 ... yes 54/1191 ... yes 207/1192 ... yes 30/1193 ... yes 178/1194 ... yes 17/1195 ... yes 181/1196 ... yes 77/1197 ... yes 64/1198 ... yes 19/1199 ... yes 33/1200 ... yes 181/1201 ... yes 32/1202 ... yes 247/1203 ... yes 247/1204 ... yes 181/1205 ... yes 10/1206 ... yes 114/1207 ... yes 76/1208 ... yes 125/1209 ... yes 114/1210 ... yes 231/1211 ... yes 30/1212 ... yes 217/1213 ... yes 216/1214 ... yes 20/1215 ... yes 220/1216 ... yes 259/1217 ... yes 55/1218 ... yes 123/1219 ... yes 258/1220 ... yes 123/1221 ... yes 258/1222 ... yes 220/1223 ... yes 258/1224 ... yes 55/1225 ... yes 220/1226 ... yes 259/1227 ... yes 259/1228 ... yes 193/1229 ... yes 220/1230 ... yes 262/1231 ... yes 19/1232 ... yes 17/1233 ... yes 111/1234 ... yes 76/1235 ... yes 94/1236 ... yes 247/1237 ... yes 258/1238 ... yes 114/1239 ... yes 76/1240 ... yes 209/1241 ... yes 32/1242 ... yes 98/1243 ... yes 54/1244 ... yes 54/1247 ... yes 54/1248 ... yes 54/1249 ... yes 54/1250 ... yes 30/1251 ... yes 259/1252 ... yes 259/1253 ... yes 267/1254 ... yes 267/1255 ... yes 259/1256 ... yes 267/1257 ... yes 267/1258 ... yes 267/1259 ... yes 223/1260 ... yes 267/1261 ... yes 259/1262 ... yes 267/1263 ... yes 30/1264 ... yes 262/1265 ... yes 68/1267 ... yes 258/1268 ... yes 231/1270 ... yes 259/1271 ... yes 21/1272 ... yes 4/1274 ... yes 70/1275 ... yes 70/1276 ... yes 207/1277 ... yes 209/1278 ... yes 32/1283 ... yes 3/1286 ... yes 216/1287 ... yes 262/1288 ... yes 259/1289 ... yes 54/1290 ... yes 68/1291 ... yes 259/1292 ... yes 76/1293 ... yes 148/1294 ... yes 197/1295 ... yes 229/1296 ... yes 209/1297 ... yes 17/1298 ... yes 272/1299 ... yes 17/1300 ... yes 17/1301 ... yes 27/1302 ... yes 131/1303 ... yes 111/1304 ... yes 17/1305 ... yes 77/1306 ... yes 17/1307 ... yes 259/1308 ... yes 32/1309 ... yes 259/1310 ... yes 32/1311 ... yes 178/1312 ... yes 276/1313 ... yes 152/1314 ... yes 17/1315 ... yes 262/1316 ... yes 111/1317 ... yes 43/1318 ... yes 91/1319 ... yes 209/1323 ... yes 224/1324 ... yes 52/1325 ... yes 207/1326 ... yes 20/1327 ... yes 224/1328 ... yes 10/1329 ... yes 189/1331 ... yes 135/1332 ... yes 43/1333 ... yes 284/1334 ... yes 148/1336 ... yes 125/1337 ... yes 87/1338 ... yes 112/1339 ... yes 91/1340 ... yes 32/1341 ... yes 32/1342 ... yes 8/1343 ... yes 259/1344 ... yes 275/1345 ... yes 273/1346 ... yes 259/1347 ... yes 20/1349 ... yes 259/1350 ... yes 110/1351 ... yes 212/1352 ... yes 187/1353 ... yes 188/1354 ... yes 186/1355 ... yes 259/1356 ... yes 179/1357 ... yes 61/1360 ... yes 3/1361 ... yes 166/1362 ... yes 212/1363 ... yes 19/1364 ... yes 20/1365 ... yes 20/1367 ... yes 17/1368 ... yes 17/1369 ... yes 294/1370 ... yes 295/1371 ... yes 294/1372 ... yes 111/1373 ... yes 294/1375 ... yes 76/1376 ... yes 166/1377 ... yes 231/1378 ... yes 188/1379 ... yes 224/1380 ... yes 19/1381 ... yes 301/1383 ... yes 305/1384 ... yes 306/1385 ... yes 306/1386 ... yes 306/1387 ... yes 306/1388 ... yes 306/1389 ... yes 306/1390 ... yes 306/1391 ... yes 307/1392 ... yes 308/1393 ... yes 309/1394 ... yes 310/1395 ... yes 311/1396 ... yes 312/1397 ... yes 313/1398 ... yes 314/1399 ... yes 314/1400 ... yes 314/1401 ... yes 314/1402 ... yes 314/1403 ... yes 300/1404 ... yes 49/1406 ... yes 315/1407 ... yes 316/1408 ... yes 247/1409 ... yes 20/1410 ... yes 178/1411 ... yes 315/1412 ... yes 315/1413 ... yes 315/1414 ... yes 315/1415 ... yes 19/1416 ... yes 294/1419 ... yes 186/1420 ... yes 17/1421 ... yes 101/1422 ... yes 4/1423 ... yes 294/1424 ... yes 258/1426 ... yes 114/1428 ... yes 275/1429 ... yes 13/1430 ... yes 84/1431 ... yes 99/1432 ... yes 316/1433 ... yes 4/1434 ... yes 229/1435 ... yes 32/1436 ... yes 217/1437 ... yes 30/1438 ... yes 322/1439 ... yes 91/1440 ... yes 209/1441 ... yes 294/1442 ... yes 201/1443 ... yes 217/1444 ... yes 188/1445 ... yes 188/1446 ... yes 142/1448 ... yes 274/1449 ... yes 324/1450 ... yes 324/1451 ... yes 32/1452 ... yes 101/1453 ... yes 300/1454 ... yes 99/1455 ... yes 324/1456 ... yes 84/1457 ... yes 212/1458 ... yes 300/1459 ... yes 112/1460 ... yes 326/1461 ... yes 326/1462 ... yes 326/1463 ... yes 326/1464 ... yes 326/1465 ... yes 17/1466 ... yes 186/1467 ... yes 32/1471 ... yes 64/1472 ... yes 102/1473 ... yes 329/1474 ... yes 188/1475 ... yes 19/1477 ... yes 64/1478 ... yes 32/1479 ... yes 24/1480 ... yes 32/1481 ... yes 32/1482 ... yes 32/1483 ... yes 62/1484 ... yes 49/1485 ... yes 131/1486 ... yes 120/1487 ... yes 32/1488 ... yes 49/1489 ... yes 111/1490 ... yes 64/1492 ... yes 83/1493 ... yes 188/1494 ... yes 188/1495 ... yes 188/1496 ... yes 188/1497 ... yes 188/1498 ... yes 91/1500 ... yes 188/1501 ... yes 188/1502 ... yes 188/1503 ... yes 188/1505 ... yes 231/1506 ... yes 99/1507 ... yes 53/1508 ... yes 188/1510 ... yes 30/1512 ... yes 10/1513 ... yes 188/1514 ... yes 181/1515 ... yes 270/1516 ... yes 120/1517 ... yes 69/1518 ... yes 3/1519 ... yes 30/1520 ... yes 111/1521 ... yes 77/1522 ... yes 120/1523 ... yes 101/1524 ... yes 138/1526 ... yes 178/1527 ... yes 17/1528 ... yes 49/1529 ... yes 10/1530 ... yes 49/1531 ... yes 258/1532 ... yes 20/1533 ... yes 83/1534 ... yes 287/1535 ... yes 253/1536 ... yes 110/1537 ... yes 187/1538 ... yes 217/1539 ... yes 54/1540 ... yes Redis version >= 4.0.0? ... yes Ruby version >= 2.5.3 ? ... yes (2.6.5) Git version >= 2.22.0 ? ... yes (2.26.2) Git user has default SSH configuration? ... yes Active users: ... 268 Is authorized keys file accessible? ... skipped (authorized keys not enabled)
Checking GitLab App ... Finished
Checking GitLab subtasks ... Finished
Possible fixes
Forcing the /opt/gitlab/embedded/bin/*
symlinks to point to /opt/gitlab/embedded/postgresql/11/bin/*
, but I didn't try that.