master cron Merge pull request #297 from travis-ci/release_240902

Release 2024 09 02

Dominik authored GitHub committed

Cron job event #3849 passed

  • Ran for
AMD64
Ruby: 3.2.2
Git
Raw log
Scroll to End of Log
0.00s0.21s0.13s0.06s0.00s
worker_info
1Worker information
2hostname: 4a6e782f-ee02-40c8-9dbb-d21e7afeb050@1.worker-n2-com-f8c4bb956-shxns.gce-production-1
3version: deploy_2024.10.02-2-gc32b553 https://github.com/travis-ci/worker/tree/c32b553e81363378d09787f52103ea9bcadf253c
4instance: travis-job-437c969d-aed0-4b07-9fe0-a487802606ab travis-ci-ubuntu-2004-1726220016-655c8cb5 (via amqp)
5startup: 5.767480022s
60.22s0.00s0.01s0.00s0.01s
system_info
7Build system information
8Build language: ruby
9Build dist: focal
10Build id: 273982745
11Job id: 630026786
12Runtime kernel version: 5.15.0-1068-gcp
13VM: default
14travis-build version: 6b157a1c
15Build image provisioning date and time
16Fri 13 Sep 2024 09:58:48 AM UTC
17Operating System Details
18Distributor ID: Ubuntu
19Description: Ubuntu 20.04.6 LTS
20Release: 20.04
21Codename: focal
22Systemd Version
23systemd 245 (245.4-4ubuntu3.23)
24Cookbooks Version
2539734fe https://github.com/travis-ci/travis-cookbooks/tree/39734fe
26git version
27git version 2.46.0
28bash version
29GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)
30gcc version
31gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
32docker version
33Client:
34 Version: 24.0.7
35 API version: 1.43
36 Go version: go1.21.1
37 Git commit: 24.0.7-0ubuntu2~20.04.1
38 Built: Wed Mar 13 20:29:24 2024
39 OS/Arch: linux/amd64
40 Context: default
42Server:
43 Engine:
44 Version: 24.0.7
45 API version: 1.43 (minimum version 1.12)
46 Go version: go1.21.1
47 Git commit: 24.0.7-0ubuntu2~20.04.1
48 Built: Wed Mar 13 20:29:24 2024
49 OS/Arch: linux/amd64
50 Experimental: false
51 containerd:
52 Version: 1.7.12
53 GitCommit:
54 runc:
55 Version: 1.1.12-0ubuntu2~20.04.1
56 GitCommit:
57 docker-init:
58 Version: 0.19.0
59 GitCommit:
60clang version
61clang version 18.1.8
62jq version
63jq-1.7.1
64bats version
65Bats 1.11.0
66shellcheck version
670.10.0
68shfmt version
69v3.8.0
70ccache version
713.7.7
72cmake version
73cmake version 3.29.0
74heroku version
75heroku/9.2.1 linux-x64 node-v16.20.2
76imagemagick version
77Version: ImageMagick 6.9.10-23 Q16 x86_64 20190101 https://imagemagick.org
78md5deep version
794.4
80mercurial version
81version 6.5.2
82mysql version
83mysql Ver 8.0.39-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))
84openssl version
85OpenSSL 1.1.1f 31 Mar 2020
86packer version
87Packer v1.11.2
88postgresql client version
89psql (PostgreSQL) 13.16 (Ubuntu 13.16-1.pgdg20.04+1)
90ragel version
91Ragel State Machine Compiler version 6.10 March 2017
92sudo version
931.8.31
94gzip version
95gzip 1.10
96zip version
97Zip 3.0
98vim version
99VIM - Vi IMproved 8.1 (2018 May 18, compiled Sep 04 2024 03:11:27)
100iptables version
101iptables v1.8.4 (legacy)
102curl version
103curl 7.68.0 (x86_64-pc-linux-gnu) libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3
104wget version
105GNU Wget 1.20.3 built on linux-gnu.
106rsync version
107rsync version 3.1.3 protocol version 31
108gimme version
109v1.5.4
110nvm version
1110.40.1
112perlbrew version
113/home/travis/perl5/perlbrew/bin/perlbrew - App::perlbrew/0.95
114phpenv version
115rbenv 1.3.0
116rvm version
117rvm 1.29.12 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
118default ruby version
119ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [x86_64-linux]
120default python version
121Python 3.7.17
122ElasticSearch version
1237.16.3
124Installed Firefox version
125firefox 99.0
126MongoDB version
127MongoDB 4.4.29
128PhantomJS version
1292.1.1
130Redis version
131redis-server 7.4.0
132Pre-installed Go versions
1331.23.0
134mvn version
135Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9)
136gradle version
137Gradle 8.3!
138lein version
139Leiningen 2.11.2 on Java 11.0.21 OpenJDK 64-Bit Server VM
140Pre-installed Node.js versions
141v10.24.1
142v12.22.12
143v14.21.3
144v16.15
145v16.20.2
146v18.20.3
147v18.20.4
148v20.17.0
149v4.9.1
150v6.17.1
151v8.17.0
152phpenv versions
153 system
154 7.4
155* 7.4.6 (set by /home/travis/.phpenv/version)
156 hhvm-stable
157 hhvm
158composer --version
159Composer version 1.10.6 2020-05-06 10:28:10
160Pre-installed Ruby versions
161ruby-2.7.6
162ruby-3.3.5
1640.02s0.01s0.93s0.30s0.05s0.01s0.04s0.00s0.04s0.01s0.01s0.01s0.02s0.00s0.48sOK
1650.00s0.05s0.00s0.02s0.17s0.00s0.00s0.00s0.01s0.00s0.14s0.00s1.00s0.00s0.12s6.04s0.00s4.10s0.00s2.31s
docker_mtu_and_registry_mirrors
Docker
resolvconf
apt
166Adding APT Sources
1670.89s$ curl -sSL "https://www.postgresql.org/media/keys/ACCC4CF8.asc" | sudo -E apt-key add -
168OK
1690.04s$ echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee -a ${TRAVIS_ROOT}/etc/apt/sources.list >/dev/null
17014.27s$ travis_apt_get_update
171Installing APT Packages
172PostgreSQL package is detected. Stopping postgresql service. See https://github.com/travis-ci/travis-ci/issues/5737 for more information.
173$ sudo systemctl stop postgresql
17414.80s$ sudo -E apt-get -yq --no-install-suggests --no-install-recommends $(travis_apt_get_options) install postgresql-11 postgresql-client-11
175Reading package lists...
176Building dependency tree...
177Reading state information...
178The following packages were automatically installed and are no longer required:
179 amd64-microcode intel-microcode iucode-tool libglu1-mesa
180 libjs-jquery-metadata libjs-jquery-tablesorter libnotify4 libwxbase3.0-0v5
181 libwxgtk3.0-gtk3-0v5 linux-modules-5.4.0-195-generic postgresql-client-12
182Use 'sudo apt autoremove' to remove them.
183Suggested packages:
184 postgresql-doc-11
185Recommended packages:
186 sysstat
187The following NEW packages will be installed:
188 postgresql-11 postgresql-client-11
1890 upgraded, 2 newly installed, 0 to remove and 129 not upgraded.
190Need to get 15.8 MB of archives.
191After this operation, 54.1 MB of additional disk space will be used.
192Get:1 http://apt.postgresql.org/pub/repos/apt focal-pgdg/main amd64 postgresql-client-11 amd64 11.22-9.pgdg20.04+1 [1,495 kB]
193Get:2 http://apt.postgresql.org/pub/repos/apt focal-pgdg/main amd64 postgresql-11 amd64 11.22-9.pgdg20.04+1 [14.3 MB]
194Preconfiguring packages ...
195Fetched 15.8 MB in 2s (8,117 kB/s)
196Selecting previously unselected package postgresql-client-11.
197(Reading database ... 154608 files and directories currently installed.)
198Preparing to unpack .../postgresql-client-11_11.22-9.pgdg20.04+1_amd64.deb ...
199Unpacking postgresql-client-11 (11.22-9.pgdg20.04+1) ...
200Selecting previously unselected package postgresql-11.
201Preparing to unpack .../postgresql-11_11.22-9.pgdg20.04+1_amd64.deb ...
202Unpacking postgresql-11 (11.22-9.pgdg20.04+1) ...
203Setting up postgresql-client-11 (11.22-9.pgdg20.04+1) ...
204Setting up postgresql-11 (11.22-9.pgdg20.04+1) ...
205Creating new PostgreSQL cluster 11/main ...
206/usr/lib/postgresql/11/bin/initdb -D /var/lib/postgresql/11/main --auth-local peer --auth-host md5
207The files belonging to this database system will be owned by user "postgres".
208This user must also own the server process.
210The database cluster will be initialized with locale "en_US.UTF-8".
211The default database encoding has accordingly been set to "UTF8".
212The default text search configuration will be set to "english".
214Data page checksums are disabled.
216fixing permissions on existing directory /var/lib/postgresql/11/main ... ok
217creating subdirectories ... ok
218selecting default max_connections ... 100
219selecting default shared_buffers ... 128MB
220selecting default timezone ... UTC
221selecting dynamic shared memory implementation ... posix
222creating configuration files ... ok
223running bootstrap script ... ok
224performing post-bootstrap initialization ... ok
225syncing data to disk ... ok
227Success. You can now start the database server using:
229 pg_ctlcluster 11 main start
231Processing triggers for postgresql-common (262.pgdg20.04+1) ...
232Building PostgreSQL dictionaries from installed myspell/hunspell packages...
233Removing obsolete dictionary files:
2343.01s
services
postgresql
2353.59s$ travis_setup_postgresql 11
236Starting PostgreSQL v11
237sudo systemctl start postgresql@11-main
git.checkout
2390.01s0.55s$ git clone --depth=50 --branch=master https://github.com/travis-ci/travis-migrations.git travis-ci/travis-migrations
240Cloning into 'travis-ci/travis-migrations'...
241$ cd travis-ci/travis-migrations
242$ git checkout -qf eceffad5926ead66098e9b887658be1e5b59c9ce
2440.01s
245Setting environment variables from repository settings
246$ export QUAY_ROBOT_HANDLE=[secure]
247$ export QUAY_ROBOT_TOKEN=[secure]
248$ export ARTIFACTS_BUCKET=travis-migrations-structure-dumps
249$ export ARTIFACTS_SECRET=[secure]
250$ export ARTIFACTS_KEY=[secure]
rvm
2523.08s$ rvm get head
253Downloading https://get.rvm.io
254Downloading https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer.asc
255Verifying /home/travis/.rvm/archives/rvm-installer.asc
256gpg: Signature made Tue 21 Feb 2023 11:35:16 PM UTC
257gpg: using RSA key 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
258gpg: Good signature from "Piotr Kuczynski <piotr.kuczynski@gmail.com>" [unknown]
259gpg: WARNING: This key is not certified with a trusted signature!
260gpg: There is no indication that the signature belongs to the owner.
261Primary key fingerprint: 7D2B AF1C F37B 13E2 069D 6956 105B D0E7 3949 9BDB
262GPG verified '/home/travis/.rvm/archives/rvm-installer'
263Downloading https://github.com/rvm/rvm/archive/master.tar.gz
264Upgrading the RVM installation in /home/travis/.rvm/
265 RVM PATH line found in /home/travis/.mkshrc /home/travis/.profile /home/travis/.zshrc.
266 RVM PATH line not found for Bash, rerun this command with '--auto-dotfiles' flag to fix it.
267 RVM sourcing line found in /home/travis/.profile /home/travis/.bashrc /home/travis/.zlogin.
268Upgrade of RVM in /home/travis/.rvm/ is complete.
270<warn>Thanks for installing RVM 🙏</warn>
271Please consider donating to our open collective to help us maintain RVM.
273👉 Donate: <code>https://opencollective.com/rvm/donate</code>
276RVM reloaded!
27723.45s$ rvm use 3.2.2 --install --binary --fuzzy
278curl: (22) The requested URL returned error: 404
279Required ruby-3.2.2 is not installed - installing.
280curl: (22) The requested URL returned error: 404
281Searching for binary rubies, this might take some time.
282Found remote file https://rubies.travis-ci.org/ubuntu/20.04/x86_64/ruby-3.2.2.tar.bz2
283Checking requirements for ubuntu.
284Requirements installation successful.
285ruby-3.2.2 - #configure
286ruby-3.2.2 - #download
287 % Total % Received % Xferd Average Speed Time Time Time Current
288 Dload Upload Total Spent Left Speed
289 0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
290100 32.0M 100 32.0M 0 0 15.8M 0 0:00:02 0:00:02 --:--:-- 52.5M
291No checksum for downloaded archive, recording checksum in user configuration.
292ruby-3.2.2 - #validate archive
293ruby-3.2.2 - #extract
294ruby-3.2.2 - #validate binary
295ruby-3.2.2 - #setup
296ruby-3.2.2 - #gemset created /home/travis/.rvm/gems/ruby-3.2.2@global
297ruby-3.2.2 - #importing gemset /home/travis/.rvm/gemsets/global.gems..................................
298ruby-3.2.2 - #generating global wrappers........
299ruby-3.2.2 - #uninstalling gem rubygems-bundler-1.4.5.
300ruby-3.2.2 - #gemset created /home/travis/.rvm/gems/ruby-3.2.2
301ruby-3.2.2 - #importing gemset /home/travis/.rvm/gemsets/default.gems..............
302ruby-3.2.2 - #generating default wrappers........
303Using /home/travis/.rvm/gems/ruby-3.2.2
305$ export BUNDLE_GEMFILE=$PWD/Gemfile
cache.1
306Setting up build cache
307$ export CASHER_DIR=${TRAVIS_HOME}/.casher
3080.17s$ Installing caching utilities
3090.00s1.40sattempting to download cache archive
310fetching master/cache--linux-focal-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855--rvm-3.2.2--gemfile-Gemfile.tgz
311fetching master/cache-linux-focal-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855--rvm-3.2.2--gemfile-Gemfile.tgz
312fetching master/cache--rvm-3.2.2--gemfile-Gemfile.tgz
313could not download cache
3140.00s1.20sadding /home/travis/build/travis-ci/travis-migrations/vendor/bundle to cache
315creating directory /home/travis/build/travis-ci/travis-migrations/vendor/bundle
ruby.versions
318$ ruby --version
319ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]
320$ rvm --version
321rvm 1.29.12-next (master) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
322$ bundle --version
323Bundler version 2.4.10
324$ gem --version
3253.4.10
before_install.1
3274.30s$ gem update --system
328Updating rubygems-update
329Successfully installed rubygems-update-3.6.3
330Installing RubyGems 3.6.3
331 Successfully built RubyGem
332 Name: bundler
333 Version: 2.6.3
334 File: bundler-2.6.3.gem
335Bundler 2.6.3 installed
336RubyGems 3.6.3 installed
337Regenerating binstubs
338Regenerating plugins
340# 3.6.3 / 2025-01-16
342## Enhancements:
344* Add credentials file path to `gem env`. Pull request
345 [#8375](https://github.com/rubygems/rubygems/pull/8375) by duckinator
346* Update SPDX license list as of 2024-12-30. Pull request
347 [#8387](https://github.com/rubygems/rubygems/pull/8387) by
348 github-actions[bot]
349* Installs bundler 2.6.3 as a default gem.
351## Bug fixes:
353* Fix `@licenses` array unmarshalling. Pull request
354 [#8411](https://github.com/rubygems/rubygems/pull/8411) by rykov
356# 3.6.2 / 2024-12-23
358## Security:
360* Fix Gem::SafeMarshal buffer overrun when given lengths larger than fit
361 into a byte. Pull request
362 [#8305](https://github.com/rubygems/rubygems/pull/8305) by segiddins
363* Improve type checking in marshal_load methods. Pull request
364 [#8306](https://github.com/rubygems/rubygems/pull/8306) by segiddins
366## Enhancements:
368* Skip rdoc hooks and their tests on newer rdoc versions. Pull request
369 [#8340](https://github.com/rubygems/rubygems/pull/8340) by
370 deivid-rodriguez
371* Installs bundler 2.6.2 as a default gem.
373## Bug fixes:
375* Fix serialized metadata including an empty `@original_platform`
376 attribute. Pull request
377 [#8355](https://github.com/rubygems/rubygems/pull/8355) by
378 deivid-rodriguez
380# 3.6.1 / 2024-12-17
382## Enhancements:
384* Installs bundler 2.6.1 as a default gem.
386## Bug fixes:
388* Fix `gem info` tagging some non default gems as default. Pull request
389 [#8321](https://github.com/rubygems/rubygems/pull/8321) by
390 deivid-rodriguez
392## Documentation:
394* Fix broken links. Pull request
395 [#8327](https://github.com/rubygems/rubygems/pull/8327) by st0012
397# 3.6.0 / 2024-12-16
399## Security:
401* Stop storing executable names in ivars. Pull request
402 [#8307](https://github.com/rubygems/rubygems/pull/8307) by segiddins
404## Breaking changes:
406* Drop ruby 3.0 support. Pull request
407 [#8091](https://github.com/rubygems/rubygems/pull/8091) by segiddins
409## Features:
411* Add --attestation option to gem push. Pull request
412 [#8239](https://github.com/rubygems/rubygems/pull/8239) by segiddins
414## Enhancements:
416* Skip unresolved deps warning on `Gem::Specification.reset` on benign
417 cases. Pull request
418 [#8309](https://github.com/rubygems/rubygems/pull/8309) by
419 deivid-rodriguez
420* Let `gem install <name>` suggest `<name>-ruby` and `ruby-<name>` when
421 providing "did you mean" suggestions. Pull request
422 [#8197](https://github.com/rubygems/rubygems/pull/8197) by duckinator
423* Update SPDX license list as of 2024-08-19. Pull request
424 [#8233](https://github.com/rubygems/rubygems/pull/8233) by
425 github-actions[bot]
426* Add `--target-rbconfig` option to `gem install` and `gem update`
427 commands. Pull request
428 [#7628](https://github.com/rubygems/rubygems/pull/7628) by kateinoigakukun
429* Skip nil-value keys to make metadata reproducible. Pull request
430 [#7129](https://github.com/rubygems/rubygems/pull/7129) by nobu
431* Allow disabling installation of compiled extensions into lib through
432 `Gem.configuration.install_extension_in_lib`. Pull request
433 [#6463](https://github.com/rubygems/rubygems/pull/6463) by hsbt
434* Installs bundler 2.6.0 as a default gem.
436## Bug fixes:
438* Set $0 to exe when running `gem exec` to fix name in CLI output. Pull
439 request [#8267](https://github.com/rubygems/rubygems/pull/8267) by adam12
440* Fix manifest in gem package using incorrect platform sometimes. Pull
441 request [#8202](https://github.com/rubygems/rubygems/pull/8202) by
442 deivid-rodriguez
444## Documentation:
446* Fix missing single quote in git source example. Pull request
447 [#8303](https://github.com/rubygems/rubygems/pull/8303) by nobu
448* Update the `gem install` demo in REAME to use a gem that just works on
449 Windows. Pull request
450 [#8262](https://github.com/rubygems/rubygems/pull/8262) by soda92
451* Unify rubygems and bundler docs directory. Pull request
452 [#8159](https://github.com/rubygems/rubygems/pull/8159) by hsbt
454# 3.5.23 / 2024-11-05
456## Enhancements:
458* Validate user input encoding of `gem` CLI arguments. Pull request
459 [#6471](https://github.com/rubygems/rubygems/pull/6471) by
460 deivid-rodriguez
461* Fix `gem update --system` leaving old default bundler executables
462 around. Pull request
463 [#8172](https://github.com/rubygems/rubygems/pull/8172) by
464 deivid-rodriguez
465* Installs bundler 2.5.23 as a default gem.
467## Bug fixes:
469* Fix commands with 2 MFA requests when webauthn is enabled. Pull request
470 [#8174](https://github.com/rubygems/rubygems/pull/8174) by
471 deivid-rodriguez
472* Make `--enable-load-relative` binstubs prolog work when Ruby is not
473 installed in the same directory as the binstub. Pull request
474 [#7872](https://github.com/rubygems/rubygems/pull/7872) by
475 deivid-rodriguez
477## Performance:
479* Speed up `gem install <nonexistent-gem>` by finding alternative name
480 suggestions faster. Pull request
481 [#8084](https://github.com/rubygems/rubygems/pull/8084) by duckinator
483## Documentation:
485* Add missing comma in documentation. Pull request
486 [#8152](https://github.com/rubygems/rubygems/pull/8152) by leoarnold
488# 3.5.22 / 2024-10-16
490## Enhancements:
492* Prevent `._*` files in packages generated from macOS. Pull request
493 [#8150](https://github.com/rubygems/rubygems/pull/8150) by
494 deivid-rodriguez
495* Fix `gem pristine etc` resetting gem twice sometimes. Pull request
496 [#8117](https://github.com/rubygems/rubygems/pull/8117) by
497 deivid-rodriguez
498* Allow `gem pristine` to reset default gems too. Pull request
499 [#8118](https://github.com/rubygems/rubygems/pull/8118) by
500 deivid-rodriguez
501* Update vendored `uri` and `net-http`. Pull request
502 [#8112](https://github.com/rubygems/rubygems/pull/8112) by segiddins
503* Installs bundler 2.5.22 as a default gem.
505## Bug fixes:
507* Fix `gem contents` for default gems. Pull request
508 [#8132](https://github.com/rubygems/rubygems/pull/8132) by
509 deivid-rodriguez
510* Fix duplicated specs when they have been previously activated. Pull
511 request [#8131](https://github.com/rubygems/rubygems/pull/8131) by
512 deivid-rodriguez
513* Fix `gem install` on NFS shares. Pull request
514 [#8123](https://github.com/rubygems/rubygems/pull/8123) by
515 deivid-rodriguez
516* Fix a `gem install` crash during "done installing" hooks. Pull request
517 [#8113](https://github.com/rubygems/rubygems/pull/8113) by
518 deivid-rodriguez
519* Fix plugin command loading. Pull request
520 [#8121](https://github.com/rubygems/rubygems/pull/8121) by
521 deivid-rodriguez
523# 3.5.21 / 2024-10-03
525## Enhancements:
527* Fix `Gem::MissingSpecVersionError#to_s` not showing exception message.
528 Pull request [#8074](https://github.com/rubygems/rubygems/pull/8074) by
529 deivid-rodriguez
530* Remove code that makes suggest_gems_from_name give worse results. Pull
531 request [#8083](https://github.com/rubygems/rubygems/pull/8083) by
532 duckinator
533* Warning about PATH in `--user-install` mode is only necessary for gems
534 with executables. Pull request
535 [#8071](https://github.com/rubygems/rubygems/pull/8071) by
536 deivid-rodriguez
537* Installs bundler 2.5.21 as a default gem.
539## Bug fixes:
541* Fix error in one source when fetching dependency APIs clearing results
542 from all sources. Pull request
543 [#8080](https://github.com/rubygems/rubygems/pull/8080) by
544 deivid-rodriguez
545* Fix `gem cleanup` warning when two versions of psych installed. Pull
546 request [#8072](https://github.com/rubygems/rubygems/pull/8072) by
547 deivid-rodriguez
549# 3.5.20 / 2024-09-24
551## Enhancements:
553* Installs bundler 2.5.20 as a default gem.
555# 3.5.19 / 2024-09-18
557## Enhancements:
559* Standardize pretty-print output for `Gem::Source` and subclasses. Pull
560 request [#7994](https://github.com/rubygems/rubygems/pull/7994) by
561 djberube
562* Update vendored `molinillo` to master and vendored `resolv` to 0.4.0.
563 Pull request [#7521](https://github.com/rubygems/rubygems/pull/7521) by
564 hsbt
565* Installs bundler 2.5.19 as a default gem.
567## Bug fixes:
569* Fix `bundle exec rake install` failing when local gem has extensions.
570 Pull request [#7977](https://github.com/rubygems/rubygems/pull/7977) by
571 deivid-rodriguez
572* Make `gem exec` use the standard GEM_HOME. Pull request
573 [#7982](https://github.com/rubygems/rubygems/pull/7982) by
574 deivid-rodriguez
575* Fix `gem fetch` always exiting with zero status code. Pull request
576 [#8007](https://github.com/rubygems/rubygems/pull/8007) by
577 deivid-rodriguez
578* Remove temporary `.lock` files unintentionally left around by gem
579 installer. Pull request
580 [#7939](https://github.com/rubygems/rubygems/pull/7939) by nobu
581* Removed unused stringio. Pull request
582 [#8001](https://github.com/rubygems/rubygems/pull/8001) by hsbt
583* Avoid another race condition of open mode. Pull request
584 [#7931](https://github.com/rubygems/rubygems/pull/7931) by nobu
585* Fix `@license` typo preventing licenses from being correctly
586 unmarshalled. Pull request
587 [#7975](https://github.com/rubygems/rubygems/pull/7975) by djberube
589## Performance:
591* Fix `gem install does-not-exist` being super slow. Pull request
592 [#8006](https://github.com/rubygems/rubygems/pull/8006) by
593 deivid-rodriguez
595# 3.5.18 / 2024-08-26
597## Enhancements:
599* Installs bundler 2.5.18 as a default gem.
601## Bug fixes:
603* Fix `gem uninstall <name>:<version>` failing on shadowed default gems.
604 Pull request [#7949](https://github.com/rubygems/rubygems/pull/7949) by
605 deivid-rodriguez
607# 3.5.17 / 2024-08-01
609## Enhancements:
611* Explicitly encode `Gem::Dependency` to yaml. Pull request
612 [#7867](https://github.com/rubygems/rubygems/pull/7867) by segiddins
613* Installs bundler 2.5.17 as a default gem.
615## Bug fixes:
617* Fix `gem list` regression when a regular gem shadows a default one. Pull
618 request [#7892](https://github.com/rubygems/rubygems/pull/7892) by
619 deivid-rodriguez
620* Always leave default gem executables around. Pull request
621 [#7879](https://github.com/rubygems/rubygems/pull/7879) by
622 deivid-rodriguez
623* Fix line comment issue for hash when loading gemrc. Pull request
624 [#7857](https://github.com/rubygems/rubygems/pull/7857) by leetking
626# 3.5.16 / 2024-07-18
628## Enhancements:
630* Installs bundler 2.5.16 as a default gem.
632## Bug fixes:
634* Fix gemspec `require_paths` validation. Pull request
635 [#7866](https://github.com/rubygems/rubygems/pull/7866) by
636 deivid-rodriguez
637* Fix loading of nested `gemrc` config keys when specified as symbols.
638 Pull request [#7851](https://github.com/rubygems/rubygems/pull/7851) by
639 moofkit
641## Performance:
643* Use `caller_locations` instead of splitting `caller`. Pull request
644 [#7708](https://github.com/rubygems/rubygems/pull/7708) by nobu
646# 3.5.15 / 2024-07-09
648## Enhancements:
650* Installs bundler 2.5.15 as a default gem.
652## Bug fixes:
654* Restrict generic `arm` to only match 32-bit arm. Pull request
655 [#7830](https://github.com/rubygems/rubygems/pull/7830) by ntkme
656* Protect creating binstubs with a file lock. Pull request
657 [#7806](https://github.com/rubygems/rubygems/pull/7806) by
658 deivid-rodriguez
660## Documentation:
662* Make it clearer that `add_dependency` is the main way to add
663 non-development dependencies. Pull request
664 [#7800](https://github.com/rubygems/rubygems/pull/7800) by jeromedalbert
666# 3.5.14 / 2024-06-21
668## Enhancements:
670* Installs bundler 2.5.14 as a default gem.
672## Bug fixes:
674* Make "bundler? update --bundler" behave identically. Pull request
675 [#7778](https://github.com/rubygems/rubygems/pull/7778) by x-yuri
677# 3.5.13 / 2024-06-14
679## Enhancements:
681* Installs bundler 2.5.13 as a default gem.
683## Bug fixes:
685* Never remove executables that may belong to a default gem. Pull request
686 [#7747](https://github.com/rubygems/rubygems/pull/7747) by
687 deivid-rodriguez
689# 3.5.12 / 2024-06-13
691## Enhancements:
693* Installs bundler 2.5.12 as a default gem.
695## Bug fixes:
697* Fix `gem uninstall` unresolved specifications warning. Pull request
698 [#7667](https://github.com/rubygems/rubygems/pull/7667) by
699 deivid-rodriguez
700* Fix `gem pristine` sometimes failing to pristine user installed gems.
701 Pull request [#7664](https://github.com/rubygems/rubygems/pull/7664) by
702 deivid-rodriguez
704# 3.5.11 / 2024-05-28
706## Enhancements:
708* Update SPDX license list as of 2024-05-22. Pull request
709 [#7689](https://github.com/rubygems/rubygems/pull/7689) by
710 github-actions[bot]
711* Fix the update_rubygems inconsistency (--disable-gems). Pull request
712 [#7658](https://github.com/rubygems/rubygems/pull/7658) by x-yuri
713* Accept WASI as an OS name in Gem::Platform. Pull request
714 [#7629](https://github.com/rubygems/rubygems/pull/7629) by kateinoigakukun
715* Warn if RubyGems version explicitly set in gemspec does not match
716 running version. Pull request
717 [#7460](https://github.com/rubygems/rubygems/pull/7460) by
718 deivid-rodriguez
719* Installs bundler 2.5.11 as a default gem.
721## Bug fixes:
723* Fix binstubs sometimes not getting regenerated when `--destdir` is
724 given. Pull request
725 [#7660](https://github.com/rubygems/rubygems/pull/7660) by
726 deivid-rodriguez
727* Fix `gem uninstall --user-install` for symlinked HOME. Pull request
728 [#7645](https://github.com/rubygems/rubygems/pull/7645) by
729 deivid-rodriguez
730* Fix issue when plugin stubs would sometimes not be properly removed by
731 `gem uninstall`. Pull request
732 [#7631](https://github.com/rubygems/rubygems/pull/7631) by
733 deivid-rodriguez
734* Fix plugins uninstallation for user installed gems. Pull request
735 [#6456](https://github.com/rubygems/rubygems/pull/6456) by voxik
737## Performance:
739* Use a constant empty tar header to avoid extra allocations. Pull request
740 [#7484](https://github.com/rubygems/rubygems/pull/7484) by segiddins
742## Documentation:
744* Recommend `bin/rake` over `rake` in contributing docs. Pull request
745 [#7648](https://github.com/rubygems/rubygems/pull/7648) by
746 deivid-rodriguez
748# 3.5.10 / 2024-05-03
750## Security:
752* Add a limit to the size of the metadata and checksums files in a gem
753 package. Pull request
754 [#7568](https://github.com/rubygems/rubygems/pull/7568) by segiddins
756## Enhancements:
758* Don't fully require `rubygems` from `rubygems/package` to prevent some
759 circular require warnings when using Bundler. Pull request
760 [#7612](https://github.com/rubygems/rubygems/pull/7612) by
761 deivid-rodriguez
762* Installs bundler 2.5.10 as a default gem.
764## Bug fixes:
766* Rename credential email to identifier in WebAuthn poller. Pull request
767 [#7623](https://github.com/rubygems/rubygems/pull/7623) by jenshenny
769# 3.5.9 / 2024-04-12
771## Enhancements:
773* Installs bundler 2.5.9 as a default gem.
775# 3.5.8 / 2024-04-11
777## Security:
779* Respect global umask when writing regular files. Pull request
780 [#7518](https://github.com/rubygems/rubygems/pull/7518) by
781 deivid-rodriguez
783## Enhancements:
785* Allow string keys with gemrc. Pull request
786 [#7543](https://github.com/rubygems/rubygems/pull/7543) by hsbt
787* [Experimental] Add "gem rebuild" command. Pull request
788 [#4913](https://github.com/rubygems/rubygems/pull/4913) by duckinator
789* Installs bundler 2.5.8 as a default gem.
791## Bug fixes:
793* Fix NoMethodError crash when building errors about corrupt package
794 files. Pull request
795 [#7539](https://github.com/rubygems/rubygems/pull/7539) by jez
796* Fix resolver to properly intersect Arrays of `Gem::Resolver::Activation`
797 objects. Pull request
798 [#7537](https://github.com/rubygems/rubygems/pull/7537) by
799 deivid-rodriguez
801# 3.5.7 / 2024-03-22
803## Enhancements:
805* Warn on empty or open required_ruby_version specification attribute.
806 Pull request [#5010](https://github.com/rubygems/rubygems/pull/5010) by
807 simi
808* Control whether YAML aliases are enabled in Gem::SafeYAML.safe_load via
809 attribute. Pull request
810 [#7464](https://github.com/rubygems/rubygems/pull/7464) by segiddins
811* Update SPDX license list as of 2024-02-08. Pull request
812 [#7468](https://github.com/rubygems/rubygems/pull/7468) by
813 github-actions[bot]
814* Installs bundler 2.5.7 as a default gem.
816## Bug fixes:
818* Allow prerelease activation (even if requirement is not explicit about
819 it) when it's the only possibility. Pull request
820 [#7428](https://github.com/rubygems/rubygems/pull/7428) by kimesf
822## Documentation:
824* Fix a typo. Pull request
825 [#7505](https://github.com/rubygems/rubygems/pull/7505) by hsbt
826* Use https instead of http in documentation links. Pull request
827 [#7481](https://github.com/rubygems/rubygems/pull/7481) by hsbt
829# 3.5.6 / 2024-02-06
831## Enhancements:
833* Deep copy requirements in `Gem::Specification` and `Gem::Requirement`.
834 Pull request [#7439](https://github.com/rubygems/rubygems/pull/7439) by
835 flavorjones
836* Change gem login message to clear up that username can be also used.
837 Pull request [#7422](https://github.com/rubygems/rubygems/pull/7422) by
838 VitaliySerov
839* Add metadata for rubygems.org. Pull request
840 [#7435](https://github.com/rubygems/rubygems/pull/7435) by m-nakamura145
841* Improve gem login scope selection. Pull request
842 [#7342](https://github.com/rubygems/rubygems/pull/7342) by williantenfen
843* Vendor uri in RubyGems. Pull request
844 [#7386](https://github.com/rubygems/rubygems/pull/7386) by
845 deivid-rodriguez
846* Installs bundler 2.5.6 as a default gem.
848## Bug fixes:
850* Skip to load commented out words. Pull request
851 [#7413](https://github.com/rubygems/rubygems/pull/7413) by hsbt
852* Fix rake runtime dependency warning for rake based extension. Pull
853 request [#7395](https://github.com/rubygems/rubygems/pull/7395) by ntkme
855# 3.5.5 / 2024-01-18
857## Enhancements:
859* Installs bundler 2.5.5 as a default gem.
861## Bug fixes:
863* Fix `require` activation conflicts when requiring default gems under
864 some situations. Pull request
865 [#7379](https://github.com/rubygems/rubygems/pull/7379) by
866 deivid-rodriguez
867* Use cache_home instead of data_home in default_spec_cache_dir. Pull
868 request [#7331](https://github.com/rubygems/rubygems/pull/7331) by mrkn
870## Documentation:
872* Use squiggly heredocs in `Gem::Specification#description` documentation,
873 so it doesn't add leading whitespace. Pull request
874 [#7373](https://github.com/rubygems/rubygems/pull/7373) by bravehager
876# 3.5.4 / 2024-01-04
878## Enhancements:
880* Always avoid "Updating rubygems-update" message. Pull request
881 [#7335](https://github.com/rubygems/rubygems/pull/7335) by
882 deivid-rodriguez
883* Installs bundler 2.5.4 as a default gem.
885## Bug fixes:
887* Make `gem update --system` respect ruby version constraints. Pull
888 request [#7334](https://github.com/rubygems/rubygems/pull/7334) by
889 deivid-rodriguez
891# 3.5.3 / 2023-12-22
893## Enhancements:
895* Installs bundler 2.5.3 as a default gem.
897# 3.5.2 / 2023-12-21
899## Enhancements:
901* Support dynamic library loading with extension .so or .o. Pull request
902 [#7241](https://github.com/rubygems/rubygems/pull/7241) by hogelog
903* Installs bundler 2.5.2 as a default gem.
905## Performance:
907* Replace `object_id` comparison with identity Hash. Pull request
908 [#7303](https://github.com/rubygems/rubygems/pull/7303) by amomchilov
909* Use IO.copy_stream when reading, writing. Pull request
910 [#6958](https://github.com/rubygems/rubygems/pull/6958) by martinemde
912# 3.5.1 / 2023-12-15
914## Enhancements:
916* Installs bundler 2.5.1 as a default gem.
918# 3.5.0 / 2023-12-15
920## Security:
922* Replace `Marshal.load` with a fully-checked safe gemspec loader. Pull
923 request [#6896](https://github.com/rubygems/rubygems/pull/6896) by
924 segiddins
926## Breaking changes:
928* Drop ruby 2.6 and 2.7 support. Pull request
929 [#7116](https://github.com/rubygems/rubygems/pull/7116) by
930 deivid-rodriguez
931* Release package no longer includes test files. Pull request
932 [#6781](https://github.com/rubygems/rubygems/pull/6781) by hsbt
933* Hide `Gem::MockGemUi` from users. Pull request
934 [#6623](https://github.com/rubygems/rubygems/pull/6623) by hsbt
935* Deprecated `Gem.datadir` has been removed. Pull request
936 [#6469](https://github.com/rubygems/rubygems/pull/6469) by hsbt
938## Deprecations:
940* Deprecate `Gem::Platform.match?`. Pull request
941 [#6783](https://github.com/rubygems/rubygems/pull/6783) by hsbt
942* Deprecate `Gem::List`. Pull request
943 [#6311](https://github.com/rubygems/rubygems/pull/6311) by segiddins
945## Features:
947* The `generate_index` command can now generate compact index files and
948 lives as an external `rubygems-generate_index` gem. Pull request
949 [#7085](https://github.com/rubygems/rubygems/pull/7085) by segiddins
950* Make `gem install` fallback to user installation directory if default
951 gem home is not writable. Pull request
952 [#5327](https://github.com/rubygems/rubygems/pull/5327) by duckinator
953* Leverage ruby feature to warn when requiring default gems from stdlib
954 that will be turned into bundled gems in the future. Pull request
955 [#6840](https://github.com/rubygems/rubygems/pull/6840) by hsbt
957## Performance:
959* Use match? when regexp match data is unused. Pull request
960 [#7263](https://github.com/rubygems/rubygems/pull/7263) by segiddins
961* Fewer allocations in gem installation. Pull request
962 [#6975](https://github.com/rubygems/rubygems/pull/6975) by segiddins
963* Optimize allocations in `Gem::Version`. Pull request
964 [#6970](https://github.com/rubygems/rubygems/pull/6970) by segiddins
966## Enhancements:
968* Warn for duplicate meta data links when building gems. Pull request
969 [#7213](https://github.com/rubygems/rubygems/pull/7213) by etherbob
970* Vendor `net-http`, `net-protocol`, `resolv`, and `timeout` to reduce
971 conflicts between Gemfile gems and internal dependencies. Pull request
972 [#6793](https://github.com/rubygems/rubygems/pull/6793) by
973 deivid-rodriguez
974* Remove non-transparent requirement added to prerelease gems. Pull
975 request [#7226](https://github.com/rubygems/rubygems/pull/7226) by
976 deivid-rodriguez
977* Stream output from ext builds when --verbose. Pull request
978 [#7240](https://github.com/rubygems/rubygems/pull/7240) by osyoyu
979* Add missing services to CI detection and make it consistent between
980 RubyGems and Bundler. Pull request
981 [#7205](https://github.com/rubygems/rubygems/pull/7205) by nevinera
982* Update generate licenses template to not freeze regexps. Pull request
983 [#7154](https://github.com/rubygems/rubygems/pull/7154) by
984 github-actions[bot]
985* Don't check `LIBRUBY_RELATIVE` in truffleruby to signal a bash prelude
986 in rubygems binstubs. Pull request
987 [#7156](https://github.com/rubygems/rubygems/pull/7156) by
988 deivid-rodriguez
989* Update SPDX list and warn on deprecated identifiers. Pull request
990 [#6926](https://github.com/rubygems/rubygems/pull/6926) by simi
991* Simplify extended `require` to potentially fix some deadlocks. Pull
992 request [#6827](https://github.com/rubygems/rubygems/pull/6827) by nobu
993* Small refactors for `Gem::Resolver`. Pull request
994 [#6766](https://github.com/rubygems/rubygems/pull/6766) by hsbt
995* Use double-quotes instead of single-quotes consistently in warnings.
996 Pull request [#6550](https://github.com/rubygems/rubygems/pull/6550) by
997 hsbt
998* Add debug message for `nil` version gemspec. Pull request
999 [#6436](https://github.com/rubygems/rubygems/pull/6436) by hsbt
1000* Installs bundler 2.5.0 as a default gem.
1002## Bug fixes:
1004* Fix installing from source with same default bundler version already
1005 installed. Pull request
1006 [#7244](https://github.com/rubygems/rubygems/pull/7244) by
1007 deivid-rodriguez
1009## Documentation:
1011* Improve comment explaining the necessity of `write_default_spec` method.
1012 Pull request [#6563](https://github.com/rubygems/rubygems/pull/6563) by
1013 voxik
1015# 3.4.22 / 2023-11-09
1017## Enhancements:
1019* Update SPDX license list as of 2023-10-05. Pull request
1020 [#7040](https://github.com/rubygems/rubygems/pull/7040) by
1021 github-actions[bot]
1022* Remove unnecessary rescue. Pull request
1023 [#7109](https://github.com/rubygems/rubygems/pull/7109) by
1024 deivid-rodriguez
1025* Installs bundler 2.4.22 as a default gem.
1027## Bug fixes:
1029* Handle empty array at built-in YAML serializer. Pull request
1030 [#7099](https://github.com/rubygems/rubygems/pull/7099) by hsbt
1031* Ignore non-tar format `.gem` files during search. Pull request
1032 [#7095](https://github.com/rubygems/rubygems/pull/7095) by dearblue
1033* Allow explicitly uninstalling multiple versions of same gem. Pull
1034 request [#7063](https://github.com/rubygems/rubygems/pull/7063) by
1035 kstevens715
1037## Performance:
1039* Avoid regexp match on every call to `Gem::Platform.local`. Pull request
1040 [#7104](https://github.com/rubygems/rubygems/pull/7104) by segiddins
1042## Documentation:
1044* Get `Gem::Specification#extensions_dir` documented. Pull request
1045 [#6218](https://github.com/rubygems/rubygems/pull/6218) by
1046 deivid-rodriguez
1048# 3.4.21 / 2023-10-17
1050## Enhancements:
1052* Abort `setup.rb` if Ruby is too old. Pull request
1053 [#7011](https://github.com/rubygems/rubygems/pull/7011) by
1054 deivid-rodriguez
1055* Remove usage of Dir.chdir that only execute a subprocess. Pull request
1056 [#6930](https://github.com/rubygems/rubygems/pull/6930) by segiddins
1057* Freeze more strings in generated gemspecs. Pull request
1058 [#6974](https://github.com/rubygems/rubygems/pull/6974) by segiddins
1059* Use pure-ruby YAML parser for loading configuration at RubyGems. Pull
1060 request [#6615](https://github.com/rubygems/rubygems/pull/6615) by hsbt
1061* Installs bundler 2.4.21 as a default gem.
1063## Documentation:
1065* Update suggested variable for bindir. Pull request
1066 [#7028](https://github.com/rubygems/rubygems/pull/7028) by hsbt
1067* Fix invalid links in documentation. Pull request
1068 [#7008](https://github.com/rubygems/rubygems/pull/7008) by simi
1070# 3.4.20 / 2023-09-27
1072## Enhancements:
1074* Raise `Gem::Package::FormatError` when gem encounters corrupt EOF.
1075 Pull request [#6882](https://github.com/rubygems/rubygems/pull/6882)
1076 by martinemde
1077* Allow skipping empty license `gem build` warning by setting license to
1078 `nil`. Pull request
1079 [#6879](https://github.com/rubygems/rubygems/pull/6879) by jhong97
1080* Update SPDX license list as of 2023-06-18. Pull request
1081 [#6891](https://github.com/rubygems/rubygems/pull/6891) by
1082 github-actions[bot]
1083* Update SPDX license list as of 2023-04-28. Pull request
1084 [#6642](https://github.com/rubygems/rubygems/pull/6642) by segiddins
1085* Update SPDX license list as of 2023-01-26. Pull request
1086 [#6310](https://github.com/rubygems/rubygems/pull/6310) by segiddins
1087* Installs bundler 2.4.20 as a default gem.
1089## Bug fixes:
1091* Fixed false positive SymlinkError in symbolic link directory. Pull
1092 request [#6947](https://github.com/rubygems/rubygems/pull/6947) by
1093 negi0109
1094* Ensure that loading multiple gemspecs with legacy YAML class references
1095 does not warn. Pull request
1096 [#6889](https://github.com/rubygems/rubygems/pull/6889) by segiddins
1097* Fix NoMethodError when choosing a too big number from `gem uni` list.
1098 Pull request [#6901](https://github.com/rubygems/rubygems/pull/6901) by
1099 amatsuda
1101## Performance:
1103* Reduce allocations for stub specifications. Pull request
1104 [#6972](https://github.com/rubygems/rubygems/pull/6972) by segiddins
1106# 3.4.19 / 2023-08-17
1108## Enhancements:
1110* Installs bundler 2.4.19 as a default gem.
1112## Performance:
1114* Speedup building docs when updating rubygems. Pull request
1115 [#6864](https://github.com/rubygems/rubygems/pull/6864) by
1116 deivid-rodriguez
1118# 3.4.18 / 2023-08-02
1120## Enhancements:
1122* Add poller to fetch WebAuthn OTP. Pull request
1123 [#6774](https://github.com/rubygems/rubygems/pull/6774) by jenshenny
1124* Remove side effects when unmarshaling old `Gem::Specification`. Pull
1125 request [#6825](https://github.com/rubygems/rubygems/pull/6825) by nobu
1126* Ship rubygems executables in `exe` folder. Pull request
1127 [#6704](https://github.com/rubygems/rubygems/pull/6704) by hsbt
1128* Installs bundler 2.4.18 as a default gem.
1130# 3.4.17 / 2023-07-14
1132## Enhancements:
1134* Installs bundler 2.4.17 as a default gem.
1136## Performance:
1138* Avoid unnecessary work for private local gem installation. Pull request
1139 [#6810](https://github.com/rubygems/rubygems/pull/6810) by
1140 deivid-rodriguez
1142# 3.4.16 / 2023-07-10
1144## Enhancements:
1146* Installs bundler 2.4.16 as a default gem.
1148# 3.4.15 / 2023-06-29
1150## Enhancements:
1152* Installs bundler 2.4.15 as a default gem.
1154## Bug fixes:
1156* Autoload shellwords when it's needed. Pull request
1157 [#6734](https://github.com/rubygems/rubygems/pull/6734) by ioquatix
1159## Documentation:
1161* Update command to test local gem command changes. Pull request
1162 [#6761](https://github.com/rubygems/rubygems/pull/6761) by jenshenny
1164# 3.4.14 / 2023-06-12
1166## Enhancements:
1168* Load plugin immediately. Pull request
1169 [#6673](https://github.com/rubygems/rubygems/pull/6673) by kou
1170* Installs bundler 2.4.14 as a default gem.
1172## Documentation:
1174* Clarify what the `rubygems-update` gem is for, and link to source code
1175 and guides. Pull request
1176 [#6710](https://github.com/rubygems/rubygems/pull/6710) by davetron5000
1178# 3.4.13 / 2023-05-09
1180## Enhancements:
1182* Installs bundler 2.4.13 as a default gem.
1184# 3.4.12 / 2023-04-11
1186## Enhancements:
1188* [Experimental] Add WebAuthn Support to the CLI. Pull request
1189 [#6560](https://github.com/rubygems/rubygems/pull/6560) by jenshenny
1190* Installs bundler 2.4.12 as a default gem.
1192# 3.4.11 / 2023-04-10
1194## Enhancements:
1196* Installs bundler 2.4.11 as a default gem.
1199------------------------------------------------------------------------------
1201RubyGems installed the following executables:
1202 /home/travis/.rvm/rubies/ruby-3.2.2/bin/gem
1203 /home/travis/.rvm/rubies/ruby-3.2.2/bin/bundle
1204 /home/travis/.rvm/rubies/ruby-3.2.2/bin/bundler
1206RubyGems system software updated
before_install.2
12070.02s$ sudo sed -i -e '/local.*peer/s/postgres/all/' -e 's/peer\|md5/trust/g' /etc/postgresql/11/main/pg_hba.conf
before_install.3
12080.02s$ sudo sed -i -e 's/^port = 5433/port = 5432/' /etc/postgresql/11/main/postgresql.conf
before_install.4
12092.42s$ sudo systemctl restart postgresql@11-main
install.bundler
121021.42s$ bundle install --jobs=3 --retry=3 --deployment
1211[DEPRECATED] The `--deployment` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set deployment true`, and stop using this flag
1212Bundler 2.6.3 is running, but your lockfile was generated with 2.4.14. Installing Bundler 2.4.14 and restarting using that version.
1213Fetching gem metadata from https://rubygems.org/.
1214Fetching bundler 2.4.14
1215Installing bundler 2.4.14
1216[DEPRECATED] The `--deployment` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local deployment 'true'`, and stop using this flag
1217Fetching gem metadata from https://rubygems.org/.........
1218Fetching rake 13.0.6
1219Installing rake 13.0.6
1220Fetching builder 3.2.4
1221Fetching concurrent-ruby 1.2.2
1222Fetching minitest 5.18.1
1223Installing minitest 5.18.1
1224Fetching erubi 1.12.0
1225Installing builder 3.2.4
1226Fetching racc 1.7.1
1227Installing erubi 1.12.0
1228Fetching crass 1.0.6
1229Installing concurrent-ruby 1.2.2
1230Fetching rack 2.2.7
1231Installing racc 1.7.1 with native extensions
1232Installing crass 1.0.6
1233Fetching nio4r 2.5.9
1234Installing rack 2.2.7
1235Installing nio4r 2.5.9 with native extensions
1236Fetching websocket-extensions 0.1.5
1237Installing websocket-extensions 0.1.5
1238Fetching marcel 1.0.2
1239Installing marcel 1.0.2
1240Fetching mini_mime 1.1.2
1241Installing mini_mime 1.1.2
1242Using date 3.3.3
1243Fetching timeout 0.4.0
1244Installing timeout 0.4.0
1245Fetching ansi 1.5.0
1246Installing ansi 1.5.0
1247Fetching ast 2.4.2
1248Installing ast 2.4.2
1249Fetching aws-eventstream 1.2.0
1250Installing aws-eventstream 1.2.0
1251Fetching aws-partitions 1.783.0
1252Installing aws-partitions 1.783.0
1253Fetching jmespath 1.6.2
1254Installing jmespath 1.6.2
1255Using bundler 2.4.14
1256Fetching colored 1.2
1257Installing colored 1.2
1258Fetching diff-lcs 1.5.0
1259Installing diff-lcs 1.5.0
1260Fetching docile 1.4.0
1261Installing docile 1.4.0
1262Using json 2.6.3
1263Fetching language_server-protocol 3.17.0.3
1264Installing language_server-protocol 3.17.0.3
1265Fetching method_source 1.0.0
1266Installing method_source 1.0.0
1267Fetching parallel 1.23.0
1268Installing parallel 1.23.0
1269Fetching pg 1.5.3
1270Installing pg 1.5.3 with native extensions
1271Fetching thor 1.2.2
1272Installing thor 1.2.2
1273Fetching zeitwerk 2.6.8
1274Installing zeitwerk 2.6.8
1275Fetching rainbow 3.1.1
1276Installing rainbow 3.1.1
1277Fetching regexp_parser 2.8.1
1278Installing regexp_parser 2.8.1
1279Fetching rexml 3.2.5
1280Installing rexml 3.2.5
1281Fetching routes 0.2.0
1282Installing routes 0.2.0
1283Fetching rspec-support 3.12.1
1284Installing rspec-support 3.12.1
1285Fetching ruby-progressbar 1.13.0
1286Installing ruby-progressbar 1.13.0
1287Fetching unicode-display_width 2.4.2
1288Installing unicode-display_width 2.4.2
1289Fetching simplecov-html 0.12.3
1290Installing simplecov-html 0.12.3
1291Fetching simplecov_json_formatter 0.1.4
1292Installing simplecov_json_formatter 0.1.4
1293Fetching i18n 1.14.1
1294Installing i18n 1.14.1
1295Fetching tzinfo 2.0.6
1296Installing tzinfo 2.0.6
1297Fetching rack-test 2.1.0
1298Installing rack-test 2.1.0
1299Fetching websocket-driver 0.7.5
1300Installing websocket-driver 0.7.5 with native extensions
1301Using net-protocol 0.2.1
1302Fetching aws-sigv4 1.6.0
1303Installing aws-sigv4 1.6.0
1304Fetching rake-notes 0.2.2
1305Installing rake-notes 0.2.2
1306Fetching nokogiri 1.15.2 (x86_64-linux)
1307Installing nokogiri 1.15.2 (x86_64-linux)
1308Fetching parser 3.2.2.3
1309Installing parser 3.2.2.3
1310Fetching rspec-core 3.12.2
1311Installing rspec-core 3.12.2
1312Fetching rspec-expectations 3.12.3
1313Installing rspec-expectations 3.12.3
1314Fetching rspec-mocks 3.12.5
1315Installing rspec-mocks 3.12.5
1316Fetching terminal-table 3.0.2
1317Installing terminal-table 3.0.2
1318Fetching simplecov 0.22.0
1319Installing simplecov 0.22.0
1320Fetching activesupport 7.0.6
1321Installing activesupport 7.0.6
1322Fetching net-imap 0.3.6
1323Installing net-imap 0.3.6
1324Fetching net-pop 0.1.2
1325Installing net-pop 0.1.2
1326Fetching net-smtp 0.3.3
1327Installing net-smtp 0.3.3
1328Fetching aws-sdk-core 3.176.1
1329Installing aws-sdk-core 3.176.1
1330Fetching loofah 2.21.3
1331Fetching rubocop-ast 1.29.0
1332Installing loofah 2.21.3
1333Fetching rspec 3.12.0
1334Installing rubocop-ast 1.29.0
1335Installing rspec 3.12.0
1336Fetching simplecov-console 0.9.1
1337Fetching rails-dom-testing 2.1.1
1338Installing simplecov-console 0.9.1
1339Fetching globalid 1.1.0
1340Installing rails-dom-testing 2.1.1
1341Fetching activemodel 7.0.6
1342Installing globalid 1.1.0
1343Fetching mail 2.8.1
1344Installing activemodel 7.0.6
1345Fetching aws-sdk-kms 1.68.0
1346Installing aws-sdk-kms 1.68.0
1347Installing mail 2.8.1
1348Fetching rails-html-sanitizer 1.6.0
1349Installing rails-html-sanitizer 1.6.0
1350Fetching rubocop 1.54.1
1351Fetching activejob 7.0.6
1352Installing activejob 7.0.6
1353Fetching activerecord 7.0.6
1354Installing rubocop 1.54.1
1355Installing activerecord 7.0.6
1356Fetching aws-sdk-s3 1.127.0
1357Fetching actionview 7.0.6
1358Installing aws-sdk-s3 1.127.0
1359Installing actionview 7.0.6
1360Fetching rubocop-capybara 2.18.0
1361Fetching rubocop-factory_bot 2.23.1
1362Installing rubocop-capybara 2.18.0
1363Fetching rubocop-performance 1.18.0
1364Installing rubocop-factory_bot 2.23.1
1365Fetching actionpack 7.0.6
1366Installing rubocop-performance 1.18.0
1367Fetching rubocop-rspec 2.22.0
1368Installing actionpack 7.0.6
1369Installing rubocop-rspec 2.22.0
1370Fetching activestorage 7.0.6
1371Fetching actioncable 7.0.6
1372Installing activestorage 7.0.6
1373Installing actioncable 7.0.6
1374Fetching actionmailer 7.0.6
1375Fetching railties 7.0.6
1376Installing actionmailer 7.0.6
1377Fetching actionmailbox 7.0.6
1378Installing railties 7.0.6
1379Installing actionmailbox 7.0.6
1380Fetching actiontext 7.0.6
1381Installing actiontext 7.0.6
1382Fetching rails 7.0.6
1383Installing rails 7.0.6
1384Bundle complete! 12 Gemfile dependencies, 85 gems now installed.
1385Bundled gems are installed into `./vendor/bundle`
before_script.1
13870.01s$ psql --version
1388psql (PostgreSQL) 11.22 (Ubuntu 11.22-9.pgdg20.04+1)
before_script.2
13890.25s$ psql -c 'CREATE DATABASE travis_test;'
1390CREATE DATABASE
before_script.3
13911.32s$ curl -fs https://raw.githubusercontent.com/travis-ci/travis-migrations/master/db/main/structure.sql | psql -v ON_ERROR_STOP=1 travis_test
1392SET
1393SET
1394SET
1395SET
1396SET
1397 set_config
1398------------
1400(1 row)
1402SET
1403SET
1404SET
1405SET
1406CREATE EXTENSION
1407COMMENT
1408CREATE EXTENSION
1409COMMENT
1410CREATE TYPE
1411CREATE FUNCTION
1412CREATE FUNCTION
1413CREATE FUNCTION
1414CREATE FUNCTION
1415CREATE FUNCTION
1416CREATE FUNCTION
1417CREATE FUNCTION
1418CREATE FUNCTION
1419CREATE FUNCTION
1420CREATE FUNCTION
1421CREATE FUNCTION
1422CREATE FUNCTION
1423CREATE FUNCTION
1424CREATE FUNCTION
1425CREATE FUNCTION
1426CREATE FUNCTION
1427CREATE FUNCTION
1428CREATE FUNCTION
1429CREATE FUNCTION
1430CREATE FUNCTION
1431CREATE FUNCTION
1432CREATE FUNCTION
1433CREATE FUNCTION
1434CREATE FUNCTION
1435CREATE FUNCTION
1436CREATE FUNCTION
1437CREATE FUNCTION
1438CREATE FUNCTION
1439CREATE FUNCTION
1440CREATE FUNCTION
1441SET
1442CREATE TABLE
1443CREATE SEQUENCE
1444ALTER SEQUENCE
1445CREATE TABLE
1446CREATE TABLE
1447CREATE SEQUENCE
1448ALTER SEQUENCE
1449CREATE TABLE
1450CREATE SEQUENCE
1451ALTER SEQUENCE
1452CREATE TABLE
1453CREATE SEQUENCE
1454ALTER SEQUENCE
1455CREATE TABLE
1456CREATE SEQUENCE
1457ALTER SEQUENCE
1458CREATE TABLE
1459CREATE SEQUENCE
1460ALTER SEQUENCE
1461CREATE TABLE
1462CREATE SEQUENCE
1463ALTER SEQUENCE
1464CREATE TABLE
1465CREATE SEQUENCE
1466ALTER SEQUENCE
1467CREATE SEQUENCE
1468CREATE TABLE
1469CREATE SEQUENCE
1470ALTER SEQUENCE
1471CREATE TABLE
1472CREATE SEQUENCE
1473ALTER SEQUENCE
1474CREATE TABLE
1475CREATE SEQUENCE
1476ALTER SEQUENCE
1477CREATE TABLE
1478CREATE SEQUENCE
1479ALTER SEQUENCE
1480CREATE TABLE
1481CREATE SEQUENCE
1482ALTER SEQUENCE
1483CREATE TABLE
1484CREATE SEQUENCE
1485ALTER SEQUENCE
1486CREATE TABLE
1487CREATE TABLE
1488CREATE TABLE
1489CREATE TABLE
1490CREATE TABLE
1491CREATE TABLE
1492CREATE TABLE
1493CREATE TABLE
1494CREATE TABLE
1495CREATE TABLE
1496CREATE TABLE
1497CREATE TABLE
1498CREATE TABLE
1499CREATE TABLE
1500CREATE TABLE
1501CREATE TABLE
1502CREATE SEQUENCE
1503ALTER SEQUENCE
1504CREATE TABLE
1505CREATE SEQUENCE
1506ALTER SEQUENCE
1507CREATE TABLE
1508CREATE TABLE
1509CREATE SEQUENCE
1510ALTER SEQUENCE
1511CREATE TABLE
1512CREATE SEQUENCE
1513ALTER SEQUENCE
1514CREATE TABLE
1515CREATE SEQUENCE
1516ALTER SEQUENCE
1517CREATE TABLE
1518CREATE SEQUENCE
1519ALTER SEQUENCE
1520CREATE TABLE
1521CREATE SEQUENCE
1522ALTER SEQUENCE
1523CREATE TABLE
1524CREATE SEQUENCE
1525ALTER SEQUENCE
1526CREATE TABLE
1527CREATE SEQUENCE
1528ALTER SEQUENCE
1529CREATE TABLE
1530CREATE SEQUENCE
1531ALTER SEQUENCE
1532CREATE TABLE
1533CREATE SEQUENCE
1534ALTER SEQUENCE
1535CREATE TABLE
1536CREATE SEQUENCE
1537ALTER SEQUENCE
1538CREATE TABLE
1539CREATE SEQUENCE
1540ALTER SEQUENCE
1541CREATE TABLE
1542CREATE SEQUENCE
1543ALTER SEQUENCE
1544CREATE TABLE
1545CREATE SEQUENCE
1546ALTER SEQUENCE
1547CREATE TABLE
1548CREATE SEQUENCE
1549ALTER SEQUENCE
1550CREATE TABLE
1551CREATE SEQUENCE
1552ALTER SEQUENCE
1553CREATE TABLE
1554CREATE TABLE
1555CREATE SEQUENCE
1556ALTER SEQUENCE
1557CREATE TABLE
1558CREATE SEQUENCE
1559ALTER SEQUENCE
1560CREATE TABLE
1561CREATE SEQUENCE
1562ALTER SEQUENCE
1563CREATE TABLE
1564CREATE SEQUENCE
1565ALTER SEQUENCE
1566CREATE TABLE
1567CREATE SEQUENCE
1568ALTER SEQUENCE
1569CREATE TABLE
1570CREATE SEQUENCE
1571ALTER SEQUENCE
1572CREATE TABLE
1573CREATE SEQUENCE
1574ALTER SEQUENCE
1575CREATE TABLE
1576CREATE SEQUENCE
1577ALTER SEQUENCE
1578CREATE TABLE
1579CREATE TABLE
1580CREATE SEQUENCE
1581ALTER SEQUENCE
1582CREATE TABLE
1583CREATE TABLE
1584CREATE SEQUENCE
1585ALTER SEQUENCE
1586CREATE TABLE
1587CREATE SEQUENCE
1588ALTER SEQUENCE
1589CREATE TABLE
1590CREATE SEQUENCE
1591ALTER SEQUENCE
1592CREATE TABLE
1593CREATE SEQUENCE
1594ALTER SEQUENCE
1595CREATE TABLE
1596CREATE SEQUENCE
1597ALTER SEQUENCE
1598CREATE TABLE
1599CREATE SEQUENCE
1600ALTER SEQUENCE
1601CREATE TABLE
1602CREATE SEQUENCE
1603ALTER SEQUENCE
1604CREATE TABLE
1605CREATE SEQUENCE
1606ALTER SEQUENCE
1607CREATE TABLE
1608CREATE SEQUENCE
1609ALTER SEQUENCE
1610CREATE TABLE
1611CREATE SEQUENCE
1612ALTER SEQUENCE
1613CREATE TABLE
1614CREATE SEQUENCE
1615ALTER SEQUENCE
1616CREATE TABLE
1617CREATE SEQUENCE
1618ALTER SEQUENCE
1619CREATE TABLE
1620CREATE SEQUENCE
1621ALTER SEQUENCE
1622CREATE TABLE
1623ALTER TABLE
1624ALTER TABLE
1625ALTER TABLE
1626ALTER TABLE
1627ALTER TABLE
1628ALTER TABLE
1629ALTER TABLE
1630ALTER TABLE
1631ALTER TABLE
1632ALTER TABLE
1633ALTER TABLE
1634ALTER TABLE
1635ALTER TABLE
1636ALTER TABLE
1637ALTER TABLE
1638ALTER TABLE
1639ALTER TABLE
1640ALTER TABLE
1641ALTER TABLE
1642ALTER TABLE
1643ALTER TABLE
1644ALTER TABLE
1645ALTER TABLE
1646ALTER TABLE
1647ALTER TABLE
1648ALTER TABLE
1649ALTER TABLE
1650ALTER TABLE
1651ALTER TABLE
1652ALTER TABLE
1653ALTER TABLE
1654ALTER TABLE
1655ALTER TABLE
1656ALTER TABLE
1657ALTER TABLE
1658ALTER TABLE
1659ALTER TABLE
1660ALTER TABLE
1661ALTER TABLE
1662ALTER TABLE
1663ALTER TABLE
1664ALTER TABLE
1665ALTER TABLE
1666ALTER TABLE
1667ALTER TABLE
1668ALTER TABLE
1669ALTER TABLE
1670ALTER TABLE
1671ALTER TABLE
1672ALTER TABLE
1673ALTER TABLE
1674ALTER TABLE
1675ALTER TABLE
1676ALTER TABLE
1677ALTER TABLE
1678ALTER TABLE
1679ALTER TABLE
1680ALTER TABLE
1681ALTER TABLE
1682ALTER TABLE
1683ALTER TABLE
1684ALTER TABLE
1685ALTER TABLE
1686ALTER TABLE
1687ALTER TABLE
1688ALTER TABLE
1689ALTER TABLE
1690ALTER TABLE
1691ALTER TABLE
1692ALTER TABLE
1693ALTER TABLE
1694ALTER TABLE
1695ALTER TABLE
1696ALTER TABLE
1697ALTER TABLE
1698ALTER TABLE
1699ALTER TABLE
1700ALTER TABLE
1701ALTER TABLE
1702ALTER TABLE
1703ALTER TABLE
1704ALTER TABLE
1705ALTER TABLE
1706ALTER TABLE
1707ALTER TABLE
1708ALTER TABLE
1709ALTER TABLE
1710ALTER TABLE
1711ALTER TABLE
1712ALTER TABLE
1713ALTER TABLE
1714ALTER TABLE
1715ALTER TABLE
1716ALTER TABLE
1717ALTER TABLE
1718ALTER TABLE
1719ALTER TABLE
1720ALTER TABLE
1721ALTER TABLE
1722ALTER TABLE
1723ALTER TABLE
1724ALTER TABLE
1725ALTER TABLE
1726ALTER TABLE
1727ALTER TABLE
1728ALTER TABLE
1729CREATE INDEX
1730CREATE INDEX
1731CREATE INDEX
1732CREATE INDEX
1733CREATE INDEX
1734CREATE INDEX
1735CREATE INDEX
1736CREATE INDEX
1737CREATE INDEX
1738CREATE INDEX
1739CREATE INDEX
1740CREATE INDEX
1741CREATE INDEX
1742CREATE INDEX
1743CREATE INDEX
1744CREATE INDEX
1745CREATE INDEX
1746CREATE INDEX
1747CREATE INDEX
1748CREATE INDEX
1749CREATE INDEX
1750CREATE INDEX
1751CREATE INDEX
1752CREATE INDEX
1753CREATE INDEX
1754CREATE INDEX
1755CREATE INDEX
1756CREATE INDEX
1757CREATE INDEX
1758CREATE INDEX
1759CREATE INDEX
1760CREATE INDEX
1761CREATE INDEX
1762CREATE INDEX
1763CREATE INDEX
1764CREATE INDEX
1765CREATE INDEX
1766CREATE INDEX
1767CREATE INDEX
1768CREATE INDEX
1769CREATE INDEX
1770CREATE INDEX
1771CREATE INDEX
1772CREATE INDEX
1773CREATE INDEX
1774CREATE INDEX
1775CREATE INDEX
1776CREATE INDEX
1777CREATE INDEX
1778CREATE INDEX
1779CREATE INDEX
1780CREATE INDEX
1781CREATE INDEX
1782CREATE INDEX
1783CREATE INDEX
1784CREATE INDEX
1785CREATE INDEX
1786CREATE INDEX
1787CREATE INDEX
1788CREATE INDEX
1789CREATE INDEX
1790CREATE INDEX
1791CREATE INDEX
1792CREATE INDEX
1793CREATE INDEX
1794CREATE INDEX
1795CREATE INDEX
1796CREATE INDEX
1797CREATE INDEX
1798CREATE INDEX
1799CREATE INDEX
1800CREATE INDEX
1801CREATE INDEX
1802CREATE INDEX
1803CREATE INDEX
1804CREATE INDEX
1805CREATE INDEX
1806CREATE INDEX
1807CREATE INDEX
1808CREATE INDEX
1809CREATE INDEX
1810CREATE INDEX
1811CREATE INDEX
1812CREATE INDEX
1813CREATE INDEX
1814CREATE INDEX
1815CREATE INDEX
1816CREATE INDEX
1817CREATE INDEX
1818CREATE INDEX
1819CREATE INDEX
1820CREATE INDEX
1821CREATE INDEX
1822CREATE INDEX
1823CREATE INDEX
1824CREATE INDEX
1825CREATE INDEX
1826CREATE INDEX
1827CREATE INDEX
1828CREATE INDEX
1829CREATE INDEX
1830CREATE INDEX
1831CREATE INDEX
1832CREATE INDEX
1833CREATE INDEX
1834CREATE INDEX
1835CREATE INDEX
1836CREATE INDEX
1837CREATE INDEX
1838CREATE INDEX
1839CREATE INDEX
1840CREATE INDEX
1841CREATE INDEX
1842CREATE INDEX
1843CREATE INDEX
1844CREATE INDEX
1845CREATE INDEX
1846CREATE INDEX
1847CREATE INDEX
1848CREATE INDEX
1849CREATE INDEX
1850CREATE INDEX
1851CREATE INDEX
1852CREATE INDEX
1853CREATE INDEX
1854CREATE INDEX
1855CREATE INDEX
1856CREATE INDEX
1857CREATE INDEX
1858CREATE INDEX
1859CREATE INDEX
1860CREATE INDEX
1861CREATE INDEX
1862CREATE INDEX
1863CREATE INDEX
1864CREATE INDEX
1865CREATE INDEX
1866CREATE INDEX
1867CREATE INDEX
1868CREATE INDEX
1869CREATE INDEX
1870CREATE INDEX
1871CREATE INDEX
1872CREATE INDEX
1873CREATE INDEX
1874CREATE INDEX
1875CREATE INDEX
1876CREATE INDEX
1877CREATE INDEX
1878CREATE INDEX
1879CREATE INDEX
1880CREATE INDEX
1881CREATE INDEX
1882CREATE INDEX
1883CREATE INDEX
1884CREATE INDEX
1885CREATE INDEX
1886CREATE INDEX
1887CREATE INDEX
1888CREATE INDEX
1889CREATE INDEX
1890CREATE INDEX
1891CREATE INDEX
1892CREATE INDEX
1893CREATE INDEX
1894CREATE INDEX
1895CREATE INDEX
1896CREATE INDEX
1897CREATE INDEX
1898CREATE INDEX
1899CREATE INDEX
1900CREATE INDEX
1901CREATE INDEX
1902CREATE INDEX
1903CREATE INDEX
1904CREATE INDEX
1905CREATE INDEX
1906CREATE INDEX
1907CREATE INDEX
1908CREATE INDEX
1909CREATE INDEX
1910CREATE INDEX
1911CREATE INDEX
1912CREATE INDEX
1913CREATE INDEX
1914CREATE INDEX
1915CREATE INDEX
1916CREATE INDEX
1917CREATE INDEX
1918CREATE INDEX
1919CREATE INDEX
1920CREATE INDEX
1921CREATE INDEX
1922CREATE INDEX
1923CREATE INDEX
1924CREATE INDEX
1925CREATE INDEX
1926CREATE INDEX
1927CREATE INDEX
1928CREATE INDEX
1929CREATE INDEX
1930CREATE INDEX
1931CREATE INDEX
1932CREATE INDEX
1933CREATE INDEX
1934CREATE INDEX
1935CREATE INDEX
1936CREATE INDEX
1937CREATE INDEX
1938CREATE INDEX
1939CREATE TRIGGER
1940CREATE TRIGGER
1941CREATE TRIGGER
1942CREATE TRIGGER
1943CREATE TRIGGER
1944CREATE TRIGGER
1945CREATE TRIGGER
1946CREATE TRIGGER
1947CREATE TRIGGER
1948CREATE TRIGGER
1949CREATE TRIGGER
1950CREATE TRIGGER
1951CREATE TRIGGER
1952CREATE TRIGGER
1953CREATE TRIGGER
1954CREATE TRIGGER
1955CREATE TRIGGER
1956ALTER TABLE
1957ALTER TABLE
1958ALTER TABLE
1959ALTER TABLE
1960ALTER TABLE
1961ALTER TABLE
1962ALTER TABLE
1963ALTER TABLE
1964ALTER TABLE
1965ALTER TABLE
1966ALTER TABLE
1967ALTER TABLE
1968ALTER TABLE
1969ALTER TABLE
1970ALTER TABLE
1971ALTER TABLE
1972ALTER TABLE
1973ALTER TABLE
1974ALTER TABLE
1975ALTER TABLE
1976ALTER TABLE
1977ALTER TABLE
1978ALTER TABLE
1979ALTER TABLE
1980ALTER TABLE
1981ALTER TABLE
1982ALTER TABLE
1983ALTER TABLE
1984ALTER TABLE
1985ALTER TABLE
1986ALTER TABLE
1987ALTER TABLE
1988ALTER TABLE
1989SET
1990INSERT 0 394
199141.36s$ bundle exec rspec spec
1993Repo counts
1994 before aggregation
1995 after aggregating per repo
1996 after aggregating all counts
1997 does not raise if repos are missing
1998 does not raise if builds are deleted before stages
2000set_updated_at trigger
2001Dropped database 'travis_test'
2002Created database 'travis_test'
2003== 201207261749 CreatePlans: migrating ========================================
2004-- create_table(:plans, {:id=>:integer})
2005 -> 0.0060s
2006== 201207261749 CreatePlans: migrated (0.0061s) ===============================
2008== 20101126174706 CreateRepositories: migrating ===============================
2009-- create_table(:repositories, {:id=>:integer})
2010 -> 0.0051s
2011== 20101126174706 CreateRepositories: migrated (0.0051s) ======================
2013== 20101126174715 CreateBuilds: migrating =====================================
2014-- create_table(:builds, {:id=>:integer})
2015 -> 0.0056s
2016== 20101126174715 CreateBuilds: migrated (0.0057s) ============================
2018== 20110109130532 DeviseCreateUsers: migrating ================================
2019-- create_table(:users, {:id=>:integer})
2020 -> 0.0051s
2021-- add_index(:users, :login, {:unique=>true})
2022 -> 0.0023s
2023== 20110109130532 DeviseCreateUsers: migrated (0.0075s) =======================
2025== 20110116155100 RepositoriesAddUsername: migrating ==========================
2026-- change_table(:repositories)
2027 -> 0.0008s
2028== 20110116155100 RepositoriesAddUsername: migrated (0.0008s) =================
2030== 20110130102621 CreateTokens: migrating =====================================
2031-- create_table(:tokens, {:id=>:integer})
2032 -> 0.0047s
2033== 20110130102621 CreateTokens: migrated (0.0047s) ============================
2035== 20110301071656 AddBuildParentIdAndConfiguration: migrating =================
2036-- change_table(:builds)
2037 -> 0.0012s
2038-- change_column(:builds, :number, :string)
2039 -> 0.0046s
2040-- add_index(:builds, :repository_id)
2041 -> 0.0019s
2042-- add_index(:builds, :parent_id)
2043 -> 0.0019s
2044== 20110301071656 AddBuildParentIdAndConfiguration: migrated (0.0097s) ========
2046== 20110316174721 RepositoriesDenormalizeLastBuildAttributes: migrating =======
2047-- change_table(:repositories)
2048 -> 0.0023s
2049== 20110316174721 RepositoriesDenormalizeLastBuildAttributes: migrated (0.0023s)
2051== 20110321075539 RepositoriesAddOwnerNameAndOwnerEmail: migrating ============
2052-- change_table(:repositories)
2053 -> 0.0015s
2054-- remove_column(:repositories, :username)
2055 -> 0.0004s
2056== 20110321075539 RepositoriesAddOwnerNameAndOwnerEmail: migrated (0.0020s) ===
2058== 20110411171936 CreateHistoriesTable: migrating =============================
2059-- create_table(:histories, {:id=>:integer})
2060 -> 0.0050s
2061-- add_index(:histories, [:item, :table, :month, :year])
2062 -> 0.0019s
2063== 20110411171936 CreateHistoriesTable: migrated (0.0070s) ====================
2065== 20110411171937 RenameHistoriesToRailsAdminHistories: migrating =============
2066-- remove_index(:histories, nil, {:name=>:index_histories_on_item_and_table_and_month_and_year})
2067 -> 0.0005s
2068-- rename_table(:histories, :rails_admin_histories)
2069 -> 0.0033s
2070-- add_index("rails_admin_histories", ["item", "table", "month", "year"], {:name=>"index_histories_on_item_and_table_and_month_and_year"})
2071 -> 0.0023s
2072== 20110411171937 RenameHistoriesToRailsAdminHistories: migrated (0.0076s) ====
2074== 20110411172518 AddAdminFlagToUser: migrating ===============================
2075-- change_table(:users)
2076 -> 0.0011s
2077== 20110411172518 AddAdminFlagToUser: migrated (0.0012s) ======================
2079== 20110413101057 BuildsAddRef: migrating =====================================
2080-- change_table(:builds)
2081 -> 0.0012s
2082== 20110413101057 BuildsAddRef: migrated (0.0013s) ============================
2084== 20110414131100 BuildsAddGithubPayload: migrating ===========================
2085-- change_table(:builds)
2086 -> 0.0007s
2087== 20110414131100 BuildsAddGithubPayload: migrated (0.0007s) ==================
2089== 20110503150504 AddGithubIdToUsersTable: migrating ==========================
2090-- add_column(:users, :github_id, :integer)
2091 -> 0.0006s
2092-- add_index(:users, :github_id)
2093 -> 0.0020s
2094== 20110503150504 AddGithubIdToUsersTable: migrated (0.0027s) =================
2096== 20110523012243 RepositoriesChangeOwnerEmailType: migrating =================
2097-- change_column(:repositories, :owner_email, :text)
2098 -> 0.0007s
2099== 20110523012243 RepositoriesChangeOwnerEmailType: migrated (0.0007s) ========
2101== 20110611203537 AddGithubOauthTokenToUser: migrating ========================
2102-- add_column(:users, :github_oauth_token, :string)
2103 -> 0.0006s
2104-- add_index(:users, :github_oauth_token)
2105 -> 0.0019s
2106== 20110611203537 AddGithubOauthTokenToUser: migrated (0.0026s) ===============
2108== 20110613210252 AddCompareUrlToBuild: migrating =============================
2109-- add_column(:builds, :compare_url, :string)
2110 -> 0.0006s
2111== 20110613210252 AddCompareUrlToBuild: migrated (0.0006s) ====================
2113== 20110615152003 BuildsRemoveJobId: migrating ================================
2114-- change_table(:builds)
2115 -> 0.0006s
2116== 20110615152003 BuildsRemoveJobId: migrated (0.0007s) =======================
2118== 20110616211744 BuildRemoveLastBuiltAt: migrating ===========================
2119-- change_table(:repositories)
2120 -> 0.0006s
2121== 20110616211744 BuildRemoveLastBuiltAt: migrated (0.0007s) ==================
2123== 20110617114728 AddMissingIndexes: migrating ================================
2124-- add_index(:repositories, :last_build_started_at)
2125 -> 0.0023s
2126-- add_index(:repositories, [:owner_name, :name])
2127 -> 0.0021s
2128-- add_index(:builds, [:repository_id, :parent_id, :started_at])
2129 -> 0.0021s
2130== 20110617114728 AddMissingIndexes: migrated (0.0067s) =======================
2132== 20110619100906 AddActiveToRepositories: migrating ==========================
2133-- add_column(:repositories, :is_active, :boolean)
2134 -> 0.0007s
2135== 20110619100906 AddActiveToRepositories: migrated (0.0007s) =================
2137== 20110729094426 StoreTokenInBuild: migrating ================================
2138-- add_column(:builds, :token, :string)
2139 -> 0.0007s
2140== 20110729094426 StoreTokenInBuild: migrated (0.0007s) =======================
2142== 20110801161819 CreateRequestsCommitsAndTasks: migrating ====================
2143-- change_table(:builds)
2144 -> 0.0015s
2145-- create_table(:commits, {:force=>true, :id=>:integer})
2146 -> 0.0052s
2147-- create_table(:requests, {:force=>true, :id=>:integer})
2148 -> 0.0051s
2149-- create_table(:tasks, {:force=>true, :id=>:integer})
2150 -> 0.0053s
2151-- add_index(:commits, :commit)
2152 -> 0.0018s
2153-- add_index(:builds, :commit)
2154 -> 0.0020s
2155-- add_index(:requests, :commit)
2156 -> 0.0019s
2157-- add_index(:tasks, :commit)
2158 -> 0.0020s
2159-- execute("UPDATE requests SET commit_id = (SELECT commits.id FROM commits WHERE commits.commit = requests.commit LIMIT 1)")
2160 -> 0.0007s
2161-- execute("UPDATE tasks SET commit_id = (SELECT commits.id FROM commits WHERE commits.commit = tasks.commit LIMIT 1)")
2162 -> 0.0005s
2163-- execute("DELETE FROM builds WHERE parent_id IS NOT NULL")
2164 -> 0.0005s
2165-- execute("UPDATE builds SET request_id = (SELECT requests.id FROM requests WHERE requests.commit = builds.commit LIMIT 1)")
2166 -> 0.0004s
2167-- execute("UPDATE builds SET commit_id = (SELECT commits.id FROM commits WHERE commits.commit = builds.commit LIMIT 1)")
2168 -> 0.0004s
2169-- execute("CREATE SEQUENCE shared_builds_tasks_seq CACHE 30")
2170 -> 0.0005s
2171-- execute("ALTER TABLE builds ALTER COLUMN id TYPE BIGINT")
2172 -> 0.0102s
2173-- execute("ALTER TABLE builds ALTER COLUMN id SET DEFAULT nextval('shared_builds_tasks_seq')")
2174 -> 0.0006s
2175-- execute("ALTER TABLE tasks ALTER COLUMN id TYPE BIGINT")
2176 -> 0.0061s
2177-- execute("ALTER TABLE tasks ALTER COLUMN id SET DEFAULT nextval('shared_builds_tasks_seq')")
2178 -> 0.0005s
2179-- select_value("SELECT max(id) FROM commits")
2180 -> 0.0007s
2181-- execute("SELECT setval('commits_id_seq', 1)")
2182 -> 0.0004s
2183-- select_value("SELECT max(id) FROM requests")
2184 -> 0.0004s
2185-- execute("SELECT setval('requests_id_seq', 1)")
2186 -> 0.0003s
2187-- select_value("SELECT max(id) FROM tasks")
2188 -> 0.0005s
2189-- execute("SELECT setval('tasks_id_seq', 1)")
2190 -> 0.0003s
2191-- remove_column(:builds, :parent_id)
2192 -> 0.0005s
2193-- remove_column(:builds, :commit)
2194 -> 0.0005s
2195-- remove_column(:requests, :commit)
2196 -> 0.0004s
2197-- remove_column(:tasks, :commit)
2198 -> 0.0004s
2199== 20110801161819 CreateRequestsCommitsAndTasks: migrated (0.0504s) ===========
2201== 20110805030147 RepositoryRenameIsActiveToActive: migrating =================
2202-- rename_column(:repositories, :is_active, :active)
2203 -> 0.0087s
2204== 20110805030147 RepositoryRenameIsActiveToActive: migrated (0.0088s) ========
2206== 20110819232908 TasksAddTags: migrating =====================================
2207-- add_column(:tasks, :tags, :text)
2208 -> 0.0014s
2209== 20110819232908 TasksAddTags: migrated (0.0015s) ============================
2211== 20110911204538 CacheOneNumberForSharedBuildsTasksSequence: migrating =======
2212-- execute("ALTER SEQUENCE shared_builds_tasks_seq CACHE 1 NO MAXVALUE NO CYCLE")
2213 -> 0.0009s
2214== 20110911204538 CacheOneNumberForSharedBuildsTasksSequence: migrated (0.0010s)
2216== 20111107134436 RenameTasksToJobs: migrating ================================
2217-- rename_table(:tasks, :jobs)
2218 -> 0.0065s
2219-- execute("UPDATE jobs SET type = 'Job::Test' WHERE type = 'Task::Test'")
2220 -> 0.0005s
2221-- execute("UPDATE jobs SET type = 'Job::Configure' WHERE type = 'Task::Configure'")
2222 -> 0.0004s
2223== 20111107134436 RenameTasksToJobs: migrated (0.0077s) =======================
2225== 20111107134437 CreateArtifacts: migrating ==================================
2226-- create_table(:artifacts, {:id=>:integer})
2227 -> 0.0060s
2228-- execute("UPDATE artifacts SET job_id = id")
2229 -> 0.0005s
2230-- execute("select setval('artifacts_id_seq', (select max(id) + 1 from artifacts));")
2231 -> 0.0006s
2232-- add_index(:artifacts, [:type, :job_id])
2233 -> 0.0022s
2234== 20111107134437 CreateArtifacts: migrated (0.0096s) =========================
2236== 20111107134438 CreateWorkers: migrating ====================================
2237-- create_table(:workers, {:id=>:integer})
2238 -> 0.0064s
2239-- add_index(:workers, [:name, :host])
2240 -> 0.0022s
2241== 20111107134438 CreateWorkers: migrated (0.0089s) ===========================
2243== 20111107134439 JobsAddRetries: migrating ===================================
2244-- change_table(:jobs)
2245 -> 0.0016s
2246== 20111107134439 JobsAddRetries: migrated (0.0016s) ==========================
2248== 20111107134440 RemoveRailsAdmin: migrating =================================
2249-- drop_table(:rails_admin_histories)
2250 -> 0.0015s
2251== 20111107134440 RemoveRailsAdmin: migrated (0.0016s) ========================
2253== 20111128235043 AddIndexesToJobs: migrating =================================
2254-- add_index(:jobs, [:queue, :state])
2255 -> 0.0026s
2256== 20111128235043 AddIndexesToJobs: migrated (0.0027s) ========================
2258== 20111129014329 AddRepositoryIdIndexToJobs: migrating =======================
2259-- add_index(:jobs, :repository_id)
2260 -> 0.0027s
2261== 20111129014329 AddRepositoryIdIndexToJobs: migrated (0.0028s) ==============
2263== 20111129022625 AddOwnerAndTypeIndexToJobs: migrating =======================
2264-- add_index(:jobs, [:type, :owner_id, :owner_type])
2265 -> 0.0026s
2266== 20111129022625 AddOwnerAndTypeIndexToJobs: migrated (0.0027s) ==============
2268== 20111201113500 WorkersAddPayloadAndLastError: migrating ====================
2269-- change_table(:workers)
2270 -> 0.0017s
2271== 20111201113500 WorkersAddPayloadAndLastError: migrated (0.0018s) ===========
2273== 20111203002341 RepositoriesAddDescriptionAndLastLanguage: migrating ========
2274-- change_table(:repositories)
2275 -> 0.0016s
2276-- change_table(:builds)
2277 -> 0.0007s
2278== 20111203002341 RepositoriesAddDescriptionAndLastLanguage: migrated (0.0025s)
2280== 20111203221720 BuildsAddArchivedAt: migrating ==============================
2281-- change_table(:builds)
2282 -> 0.0010s
2283== 20111203221720 BuildsAddArchivedAt: migrated (0.0011s) =====================
2285== 20111207093700 MimicProductionDb: migrating ================================
2286-- column_exists?(:users, :oauth2_uid, :integer)
2287 -> 0.0030s
2288-- column_exists?(:users, :oauth2_token, :string)
2289 -> 0.0021s
2290-- column_exists?(:repositories, :user_id, :integer)
2291 -> 0.0023s
2292== 20111207093700 MimicProductionDb: migrated (0.0075s) =======================
2294== 20111212103859 BuildsAddDuration: migrating ================================
2295-- change_table(:builds)
2296 -> 0.0011s
2297== 20111212103859 BuildsAddDuration: migrated (0.0011s) =======================
2299== 20111212112411 RepositoriesAddLastBuildDuration: migrating =================
2300-- change_table(:repositories)
2301 -> 0.0010s
2302== 20111212112411 RepositoriesAddLastBuildDuration: migrated (0.0011s) ========
2304== 20111214173922 CreateSslKeys: migrating ====================================
2305-- create_table(:ssl_keys, {:id=>:integer})
2306 -> 0.0063s
2307-- add_index("ssl_keys", ["repository_id"], {:name=>"index_ssl_key_on_repository_id"})
2308 -> 0.0020s
2309== 20111214173922 CreateSslKeys: migrated (0.0085s) ===========================
2311== 20120114125404 AddAllowFailureToJobs: migrating ============================
2312-- add_column(:jobs, :allow_failure, :boolean, {:default=>false})
2313 -> 0.0014s
2314== 20120114125404 AddAllowFailureToJobs: migrated (0.0015s) ===================
2316== 20120216133223 AddPullRequestFieldsToRequest: migrating ====================
2317-- add_column(:requests, :event_type, :string)
2318 -> 0.0009s
2319-- add_column(:requests, :comments_url, :string)
2320 -> 0.0005s
2321-- add_column(:requests, :base_commit, :string)
2322 -> 0.0005s
2323-- add_column(:requests, :head_commit, :string)
2324 -> 0.0004s
2325== 20120216133223 AddPullRequestFieldsToRequest: migrated (0.0025s) ===========
2327== 20120222082522 AddGravatarIdToUsers: migrating =============================
2328-- add_column(:users, :gravatar_id, :string)
2329 -> 0.0008s
2330== 20120222082522 AddGravatarIdToUsers: migrated (0.0008s) ====================
2332== 20120301131209 OrganizationsCreate: migrating ==============================
2333-- create_table(:organizations, {:id=>:integer})
2334 -> 0.0052s
2335== 20120301131209 OrganizationsCreate: migrated (0.0053s) =====================
2337== 20120304000502 JobsRenameOwnerToSource: migrating ==========================
2338-- change_table(:jobs)
2339 -> 0.0057s
2340== 20120304000502 JobsRenameOwnerToSource: migrated (0.0057s) =================
2342== 20120304000503 RepositoriesAddOwner: migrating =============================
2343-- change_table(:repositories)
2344 -> 0.0012s
2345== 20120304000503 RepositoriesAddOwner: migrated (0.0012s) ====================
2347== 20120304000504 BuildsAddOwner: migrating ===================================
2348-- change_table(:builds)
2349 -> 0.0012s
2350== 20120304000504 BuildsAddOwner: migrated (0.0012s) ==========================
2352== 20120304000505 JobsAddOwner: migrating =====================================
2353-- change_table(:jobs)
2354 -> 0.0011s
2355== 20120304000505 JobsAddOwner: migrated (0.0011s) ============================
2357== 20120304000506 RequestsAddOwner: migrating =================================
2358-- change_table(:requests)
2359 -> 0.0012s
2360== 20120304000506 RequestsAddOwner: migrated (0.0012s) ========================
2362== 20120311234933 AddLocaleToUser: migrating ==================================
2363-- add_column(:users, :locale, :string)
2364 -> 0.0006s
2365== 20120311234933 AddLocaleToUser: migrated (0.0007s) =========================
2367== 20120316123726 CreateMemberships: migrating ================================
2368-- create_table(:memberships, {:id=>:integer})
2369 -> 0.0033s
2370== 20120316123726 CreateMemberships: migrated (0.0034s) =======================
2372== 20120319170001 RepositoriesAddPrivate: migrating ===========================
2373-- change_table(:repositories)
2374 -> 0.0011s
2375== 20120319170001 RepositoriesAddPrivate: migrated (0.0011s) ==================
2377== 20120324104051 CreateUrls: migrating =======================================
2378-- create_table(:urls, {:id=>:integer})
2379 -> 0.0050s
2380== 20120324104051 CreateUrls: migrated (0.0051s) ==============================
2382== 20120505165100 CopyStatusToResult: migrating ===============================
2383-- add_column(:builds, :result, :integer)
2384 -> 0.0009s
2385-- add_column(:jobs, :result, :integer)
2386 -> 0.0005s
2387-- add_column(:repositories, :last_build_result, :integer)
2388 -> 0.0004s
2389Executing: UPDATE builds SET result = status;
2390Executing: UPDATE jobs SET result = status;
2391Executing: UPDATE repositories SET last_build_result = last_build_status;
2392== 20120505165100 CopyStatusToResult: migrated (0.0035s) ======================
2394== 20120511171900 RequestsAddIndexOnHeadCommit: migrating =====================
2395-- add_index(:requests, :head_commit)
2396 -> 0.0024s
2397== 20120511171900 RequestsAddIndexOnHeadCommit: migrated (0.0024s) ============
2399== 20120521174400 CreatePermissions: migrating ================================
2400-- create_table(:permissions, {:id=>:integer})
2401 -> 0.0101s
2402-- add_index(:permissions, :user_id)
2403 -> 0.0054s
2404-- add_index(:permissions, :repository_id)
2405 -> 0.0029s
2406== 20120521174400 CreatePermissions: migrated (0.0189s) =======================
2408== 20120527235800 BuildsAddPreviousResult: migrating ==========================
2409-- change_table(:builds)
2410 -> 0.0072s
2411== 20120527235800 BuildsAddPreviousResult: migrated (0.0073s) =================
2413== 20120702111126 CreateSubscriptions: migrating ==============================
2414-- create_table(:subscriptions, {:id=>:integer})
2415 -> 0.0082s
2416== 20120702111126 CreateSubscriptions: migrated (0.0083s) =====================
2418== 20120703114226 AddBillingEmailCreditCardDataToSubscriptions: migrating =====
2419-- change_table(:subscriptions)
2420 -> 0.0036s
2421== 20120703114226 AddBillingEmailCreditCardDataToSubscriptions: migrated (0.0037s)
2423== 20120713140816 AddSyncInfoToUser: migrating ================================
2424-- add_column(:users, :in_sync, :boolean)
2425 -> 0.0012s
2426-- add_column(:users, :synced_at, :timestamp)
2427 -> 0.0008s
2428== 20120713140816 AddSyncInfoToUser: migrated (0.0022s) =======================
2430== 20120713153215 RenameInSyncToIsSyncing: migrating ==========================
2431-- rename_column(:users, :in_sync, :is_syncing)
2432 -> 0.0046s
2433== 20120713153215 RenameInSyncToIsSyncing: migrated (0.0047s) =================
2435== 20120725005300 AddQueueToWorkers: migrating ================================
2436-- add_column(:workers, :queue, :string)
2437 -> 0.0015s
2438== 20120725005300 AddQueueToWorkers: migrated (0.0016s) =======================
2440== 20120727151900 AddJobsIndexOnStateOwnerTypeOwnerId: migrating ==============
2441-- add_index(:jobs, ["state", "owner_id", "owner_type"], {:name=>"index_jobs_on_state_owner_type_owner_id"})
2442 -> 0.0032s
2443== 20120727151900 AddJobsIndexOnStateOwnerTypeOwnerId: migrated (0.0034s) =====
2445== 20120731005301 AddQueuedAtToJobs: migrating ================================
2446-- add_column(:jobs, :queued_at, :timestamp, {:precision=>nil})
2447 -> 0.0012s
2448== 20120731005301 AddQueuedAtToJobs: migrated (0.0014s) =======================
2450== 20120731074000 AddAmountToPlans: migrating =================================
2451-- change_table(:plans)
2452 -> 0.0015s
2453== 20120731074000 AddAmountToPlans: migrated (0.0016s) ========================
2455== 20120802001001 AddPushAndPullToPermissions: migrating ======================
2456-- add_column(:permissions, :push, :boolean, {:default=>false})
2457 -> 0.0017s
2458-- add_column(:permissions, :pull, :boolean, {:default=>false})
2459 -> 0.0013s
2460-- change_column_default(:permissions, :admin, false)
2461 -> 0.0032s
2462== 20120802001001 AddPushAndPullToPermissions: migrated (0.0065s) =============
2464== 20120803164000 CreateInvoices: migrating ===================================
2465-- create_table(:invoices, {:id=>:integer})
2466 -> 0.0068s
2467== 20120803164000 CreateInvoices: migrated (0.0070s) ==========================
2469== 20120803182300 AddInvoiceIdToInvoices: migrating ===========================
2470-- change_table(:invoices)
2471 -> 0.0016s
2472== 20120803182300 AddInvoiceIdToInvoices: migrated (0.0017s) ==================
2474== 20120804122700 AddStripeInvoiceIdToInvoices: migrating =====================
2475-- change_table(:invoices)
2476 -> 0.0015s
2477-- add_index(:invoices, :stripe_id)
2478 -> 0.0027s
2479== 20120804122700 AddStripeInvoiceIdToInvoices: migrated (0.0044s) ============
2481== 20120806120400 AddPlanToSubscriptions: migrating ===========================
2482-- change_table(:subscriptions)
2483 -> 0.0015s
2484== 20120806120400 AddPlanToSubscriptions: migrated (0.0016s) ==================
2486== 20120820164000 RenamePlanOnSubscriptions: migrating ========================
2487-- change_table(:subscriptions)
2488 -> 0.0025s
2489== 20120820164000 RenamePlanOnSubscriptions: migrated (0.0026s) ===============
2491== 20120905093300 CreateStripeEvents: migrating ===============================
2492-- create_table(:stripe_events, {:id=>:integer})
2493 -> 0.0068s
2494-- add_index(:stripe_events, :event_type)
2495 -> 0.0019s
2496-- add_index(:stripe_events, :date)
2497 -> 0.0018s
2498== 20120905093300 CreateStripeEvents: migrated (0.0106s) ======================
2500== 20120905171300 AddEventIdToStripeEvents: migrating =========================
2501-- change_table(:stripe_events)
2502 -> 0.0007s
2503-- add_index(:stripe_events, :event_id)
2504 -> 0.0018s
2505== 20120905171300 AddEventIdToStripeEvents: migrated (0.0026s) ================
2507== 20120911160000 AddBuildsIndexOnRepositoryIdAndState: migrating =============
2508-- remove_index("builds", nil, {:column=>"repository_id", :name=>"index_builds_on_repository_id"})
2509 -> 0.0017s
2510-- add_index("builds", ["repository_id", "state"])
2511 -> 0.0021s
2512== 20120911160000 AddBuildsIndexOnRepositoryIdAndState: migrated (0.0049s) ====
2514== 20120911230000 ArtifactsAddAggregatedAt: migrating =========================
2515-- add_column(:artifacts, :aggregated_at, :timestamp, {:precision=>nil})
2516 -> 0.0006s
2517== 20120911230000 ArtifactsAddAggregatedAt: migrated (0.0007s) ================
2519== 20120911230001 AddArtifactParts: migrating =================================
2520-- create_table(:artifact_parts, {:id=>:integer})
2521 -> 0.0049s
2522-- add_index(:artifact_parts, [:artifact_id, :number])
2523 -> 0.0020s
2524== 20120911230001 AddArtifactParts: migrated (0.0070s) ========================
2526== 20120913143800 AddSubscriptionsCoupon: migrating ===========================
2527-- change_table(:subscriptions)
2528 -> 0.0007s
2529== 20120913143800 AddSubscriptionsCoupon: migrated (0.0008s) ==================
2531== 20120915012000 BuildsAddIndexOnFinishedAt: migrating =======================
2532-- add_index("builds", "finished_at")
2533 -> 0.0024s
2534== 20120915012000 BuildsAddIndexOnFinishedAt: migrated (0.0024s) ==============
2536== 20120915012001 CommitsAddIndexOnBranch: migrating ==========================
2537-- add_index("commits", "branch")
2538 -> 0.0021s
2539== 20120915012001 CommitsAddIndexOnBranch: migrated (0.0021s) =================
2541== 20120915150000 JobsAddIndexOnCreatedAt: migrating ==========================
2542-- add_index("jobs", "created_at")
2543 -> 0.0023s
2544== 20120915150000 JobsAddIndexOnCreatedAt: migrated (0.0024s) =================
2546== 20121015002500 CreateEvents: migrating =====================================
2547-- create_table(:events, {:id=>:integer})
2548 -> 0.0051s
2549== 20121015002500 CreateEvents: migrated (0.0052s) ============================
2551== 20121015002501 RequestsAddResultAndMessage: migrating ======================
2552-- add_column(:requests, :result, :string)
2553 -> 0.0007s
2554-- add_column(:requests, :message, :string)
2555 -> 0.0004s
2556== 20121015002501 RequestsAddResultAndMessage: migrated (0.0012s) =============
2558== 20121017040100 CreateBroadcasts: migrating =================================
2559-- create_table(:broadcasts, {:id=>:integer})
2560 -> 0.0048s
2561== 20121017040100 CreateBroadcasts: migrated (0.0049s) ========================
2563== 20121017040200 EventsChangeDataToText: migrating ===========================
2564-- change_column(:events, :data, :text)
2565 -> 0.0006s
2566== 20121017040200 EventsChangeDataToText: migrated (0.0007s) ==================
2568== 20121018201301 AddEventTypeToBuilds: migrating =============================
2569-- add_column(:builds, :event_type, :string)
2570 -> 0.0006s
2571== 20121018201301 AddEventTypeToBuilds: migrated (0.0007s) ====================
2573== 20121018203728 UpdateEventTypeOnBuilds: migrating ==========================
2574-- execute(" UPDATE builds\n SET event_type = requests.event_type\n FROM requests\n WHERE builds.request_id = requests.id\n")
2575 -> 0.0009s
2576== 20121018203728 UpdateEventTypeOnBuilds: migrated (0.0009s) =================
2578== 20121018210156 AddIndexOnRepositoryIdAndEventTypeToBuilds: migrating =======
2579-- add_index(:builds, [:repository_id, :event_type])
2580 -> 0.0023s
2581== 20121018210156 AddIndexOnRepositoryIdAndEventTypeToBuilds: migrated (0.0023s)
2583== 20121125122700 RepositoriesAddLastBuildState: migrating ====================
2584-- add_column(:repositories, :last_build_state, :string)
2585 -> 0.0007s
2586== 20121125122700 RepositoriesAddLastBuildState: migrated (0.0007s) ===========
2588== 20121125122701 BuildsAddPreviousState: migrating ===========================
2589-- add_column(:builds, :previous_state, :string)
2590 -> 0.0006s
2591== 20121125122701 BuildsAddPreviousState: migrated (0.0007s) ==================
2593== 20121222125200 ArtifactPartsAddFinal: migrating ============================
2594-- add_column(:artifact_parts, :final, :boolean)
2595 -> 0.0011s
2596-- add_column(:artifact_parts, :created_at, :timestamp)
2597 -> 0.0006s
2598== 20121222125200 ArtifactPartsAddFinal: migrated (0.0018s) ===================
2600== 20121222125300 ArtifactPartsChangeContentToText: migrating =================
2601-- change_column(:artifact_parts, :content, :text)
2602 -> 0.0012s
2603== 20121222125300 ArtifactPartsChangeContentToText: migrated (0.0013s) ========
2605== 20121222140200 ArtifactPartsAddIndexOnArtifactId: migrating ================
2606-- add_index(:artifact_parts, :artifact_id)
2607 -> 0.0033s
2608== 20121222140200 ArtifactPartsAddIndexOnArtifactId: migrated (0.0034s) =======
2610== 20121223162300 ArtifactPartsRemoveIndexOnArtifactId: migrating =============
2611-- remove_index(:artifact_parts, :artifact_id, {:name=>"index_artifact_parts_on_artifact_id"})
2612 -> 0.0036s
2613== 20121223162300 ArtifactPartsRemoveIndexOnArtifactId: migrated (0.0054s) ====
2615== 20130107165057 AddGithubScopesToUser: migrating ============================
2616-- add_column(:users, :github_scopes, :text)
2617 -> 0.0013s
2618== 20130107165057 AddGithubScopesToUser: migrated (0.0014s) ===================
2620== 20130115125836 AddIndexOnLastSeenAtToWorkers: migrating ====================
2621-- add_index(:workers, :last_seen_at)
2622 -> 0.0031s
2623== 20130115125836 AddIndexOnLastSeenAtToWorkers: migrated (0.0032s) ===========
2625== 20130115145728 CacheFullNameInWorkers: migrating ===========================
2626-- add_column(:workers, :full_name, :string)
2627 -> 0.0013s
2628-- add_index(:workers, :full_name)
2629 -> 0.0026s
2630== 20130115145728 CacheFullNameInWorkers: migrated (0.0042s) ==================
2632== 20130125002600 ArtifactsAddArchivedAt: migrating ===========================
2633-- add_column(:artifacts, :archived_at, :timestamp, {:precision=>nil})
2634 -> 0.0013s
2635-- add_index(:artifacts, :archived_at)
2636 -> 0.0028s
2637== 20130125002600 ArtifactsAddArchivedAt: migrated (0.0042s) ==================
2639== 20130125171100 ArtifactsAddArchivingAndVerified: migrating =================
2640-- add_column(:artifacts, :archiving, :boolean)
2641 -> 0.0016s
2642-- add_column(:artifacts, :archive_verified, :boolean)
2643 -> 0.0008s
2644-- add_index(:artifacts, :archiving)
2645 -> 0.0026s
2646-- add_index(:artifacts, :archive_verified)
2647 -> 0.0019s
2648== 20130125171100 ArtifactsAddArchivingAndVerified: migrated (0.0072s) ========
2650== 20130129142703 CreateEmails: migrating =====================================
2651-- create_table(:emails, {:id=>:integer})
2652 -> 0.0069s
2653-- add_index(:emails, :user_id)
2654 -> 0.0025s
2655-- add_index(:emails, :email)
2656 -> 0.0023s
2657== 20130129142703 CreateEmails: migrated (0.0118s) ============================
2659== 20130208135800 RenameArtifacts: migrating ==================================
2660-- rename_table(:artifacts, :artifacts_backup)
2661 -> 0.0100s
2662-- rename_table(:artifact_parts, :artifact_parts_backup)
2663 -> 0.0062s
2664== 20130208135800 RenameArtifacts: migrated (0.0163s) =========================
2666== 20130208135801 DropArtifacts: migrating ====================================
2667-- drop_table(:artifacts_backup)
2668 -> 0.0022s
2669-- drop_table(:artifact_parts_backup)
2670 -> 0.0013s
2671== 20130208135801 DropArtifacts: migrated (0.0035s) ===========================
2673== 20130306154311 CreatePgcryptoExtension: migrating ==========================
2674-- execute("create extension if not exists pgcrypto")
2675 -> 0.0065s
2676== 20130306154311 CreatePgcryptoExtension: migrated (0.0066s) =================
2678== 20130311211101 AddPullRequestTitleToBuilds: migrating ======================
2679-- add_column(:builds, :pull_request_title, :text)
2680 -> 0.0011s
2681== 20130311211101 AddPullRequestTitleToBuilds: migrated (0.0011s) =============
2683== 20130327100801 AddPullRequestNumberToBuilds: migrating =====================
2684-- add_column(:builds, :pull_request_number, :integer)
2685 -> 0.0006s
2686== 20130327100801 AddPullRequestNumberToBuilds: migrated (0.0007s) ============
2688== 20130418101437 AddIndexToBuildsRequestId: migrating ========================
2689-- execute("CREATE INDEX CONCURRENTLY index_builds_on_request_id ON builds(request_id)")
2690 -> 0.0036s
2691== 20130418101437 AddIndexToBuildsRequestId: migrated (0.0037s) ===============
2693== 20130418103306 AddIndexToJobsOnOwnerIdOwnerTypeAndState: migrating =========
2694-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_id_and_owner_type_and_state ON jobs(owner_id, owner_type, state)")
2695 -> 0.0037s
2696== 20130418103306 AddIndexToJobsOnOwnerIdOwnerTypeAndState: migrated (0.0037s)
2698== 20130505023259 AddMoreIndexesToBuilds: migrating ===========================
2699-- execute(" CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_event_type_and_state_and_branch\n ON builds(repository_id, event_type, state, branch);\n")
2700 -> 0.0034s
2701== 20130505023259 AddMoreIndexesToBuilds: migrated (0.0035s) ==================
2703== 20130521115725 AddIndexOnBuildState: migrating =============================
2704-- execute(" CREATE INDEX CONCURRENTLY index_builds_on_state\n ON builds(state);\n")
2705 -> 0.0030s
2706== 20130521115725 AddIndexOnBuildState: migrated (0.0030s) ====================
2708== 20130521133050 UpdateFinishedJobs: migrating ===============================
2709-- execute("UPDATE jobs SET state = 'passed' WHERE state = 'finished' AND result = 0 AND type = 'Job::Test'")
2710 -> 0.0008s
2711-- execute("UPDATE jobs SET state = 'failed' WHERE state = 'finished' AND result = 1 AND type = 'Job::Test'")
2712 -> 0.0004s
2713-- execute("UPDATE jobs SET state = 'errored' WHERE state = 'finished' AND result IS NULL AND type = 'Job::Test'")
2714 -> 0.0003s
2715-- execute("SELECT COUNT(*) FROM jobs WHERE state = 'finished' AND type = 'Job::Test'")
2716 -> 0.0003s
2717== 20130521133050 UpdateFinishedJobs: migrated (0.0019s) ======================
2719== 20130521134224 UpdateFinishedBuilds: migrating =============================
2720-- execute("UPDATE builds SET state = 'passed' WHERE state = 'finished' AND result = 0")
2721 -> 0.0007s
2722-- execute("UPDATE builds SET state = 'failed' WHERE state = 'finished' AND result = 1")
2723 -> 0.0003s
2724-- execute("UPDATE builds SET state = 'errored' WHERE state = 'finished' AND result IS NULL")
2725 -> 0.0003s
2726-- execute("SELECT COUNT(*) FROM builds WHERE state = 'finished'")
2727 -> 0.0003s
2728== 20130521134224 UpdateFinishedBuilds: migrated (0.0018s) ====================
2730== 20130521134800 RemoveUnusedBuildColumns: migrating =========================
2731-- remove_column(:builds, :result)
2732 -> 0.0006s
2733-- remove_column(:builds, :status)
2734 -> 0.0004s
2735-- remove_column(:builds, :previous_result)
2736 -> 0.0003s
2737-- remove_column(:builds, :agent)
2738 -> 0.0003s
2739-- remove_column(:builds, :language)
2740 -> 0.0003s
2741-- remove_column(:builds, :archived_at)
2742 -> 0.0003s
2743== 20130521134800 RemoveUnusedBuildColumns: migrated (0.0024s) ================
2745== 20130521141357 RemoveUnusedJobColumns: migrating ===========================
2746-- remove_column(:jobs, :status)
2747 -> 0.0006s
2748-- remove_column(:jobs, :job_id)
2749 -> 0.0003s
2750-- remove_column(:jobs, :retries)
2751 -> 0.0004s
2752== 20130521141357 RemoveUnusedJobColumns: migrated (0.0014s) ==================
2754== 20130618084205 AddCoupons: migrating =======================================
2755-- create_table(:coupons, {:id=>:integer})
2756 -> 0.0053s
2757== 20130618084205 AddCoupons: migrated (0.0054s) ==============================
2759== 20130629122945 AddGithubIdToUsers: migrating ===============================
2760-- add_column(:repositories, :github_id, :integer)
2761 -> 0.0007s
2762-- add_index(:repositories, :github_id)
2763 -> 0.0021s
2764== 20130629122945 AddGithubIdToUsers: migrated (0.0028s) ======================
2766== 20130629133531 AddDefaultBranchToRepositories: migrating ===================
2767-- add_column(:repositories, :default_branch, :string)
2768 -> 0.0007s
2769== 20130629133531 AddDefaultBranchToRepositories: migrated (0.0007s) ==========
2771== 20130629174449 AddGithubLanguageToRepositories: migrating ==================
2772-- add_column(:repositories, :github_language, :string)
2773 -> 0.0007s
2774== 20130629174449 AddGithubLanguageToRepositories: migrated (0.0007s) =========
2776== 20130701175200 AddContactIdToSubscriptions: migrating ======================
2777-- change_table(:subscriptions)
2778 -> 0.0007s
2779== 20130701175200 AddContactIdToSubscriptions: migrated (0.0007s) =============
2781== 20130702123456 RemoveUnusedRepositoryColumns: migrating ====================
2782-- remove_column(:repositories, :last_duration)
2783 -> 0.0024s
2784-- remove_column(:repositories, :last_build_status)
2785 -> 0.0011s
2786-- remove_column(:repositories, :last_build_result)
2787 -> 0.0009s
2788-- remove_column(:repositories, :last_build_language)
2789 -> 0.0009s
2790== 20130702123456 RemoveUnusedRepositoryColumns: migrated (0.0060s) ===========
2792== 20130702144325 AddUniqueIndexOnUsersGithubIdAndRemoveUniqueIndexOnUsersLogin: migrating
2793-- execute("DROP INDEX index_users_on_login")
2794 -> 0.0014s
2795-- execute("CREATE INDEX CONCURRENTLY index_users_on_login ON users(login)")
2796 -> 0.0043s
2797-- execute("DROP INDEX index_users_on_github_id")
2798 -> 0.0012s
2799-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_github_id ON users(github_id)")
2800 -> 0.0034s
2801== 20130702144325 AddUniqueIndexOnUsersGithubIdAndRemoveUniqueIndexOnUsersLogin: migrated (0.0107s)
2803== 20130705123456 AddExtraColumnsToOrganizations: migrating ===================
2804-- add_column(:organizations, :avatar_url, :string)
2805 -> 0.0018s
2806-- add_column(:organizations, :location, :string)
2807 -> 0.0014s
2808-- add_column(:organizations, :email, :string)
2809 -> 0.0015s
2810-- add_column(:organizations, :company, :string)
2811 -> 0.0013s
2812-- add_column(:organizations, :homepage, :string)
2813 -> 0.0013s
2814== 20130705123456 AddExtraColumnsToOrganizations: migrated (0.0079s) ==========
2816== 20130707164854 AddIndexOnGithubIdToOrganizations: migrating ================
2817-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organizations_on_github_id ON organizations(github_id)")
2818 -> 0.0043s
2819== 20130707164854 AddIndexOnGithubIdToOrganizations: migrated (0.0045s) =======
2821== 20130709185200 CreateAnnotations: migrating ================================
2822-- create_table(:annotations, {:id=>:integer})
2823 -> 0.0101s
2824== 20130709185200 CreateAnnotations: migrated (0.0102s) =======================
2826== 20130709233500 CreateAnnotationProviders: migrating ========================
2827-- create_table(:annotation_providers, {:id=>:integer})
2828 -> 0.0193s
2829== 20130709233500 CreateAnnotationProviders: migrated (0.0194s) ===============
2831== 20130710000745 AddAnnotationProviderIdToAnnotations: migrating =============
2832-- add_column(:annotations, :annotation_provider_id, :integer, {:null=>false})
2833 -> 0.0008s
2834== 20130710000745 AddAnnotationProviderIdToAnnotations: migrated (0.0009s) ====
2836== 20130726101124 AddCanceledAtToJobsAndBuilds: migrating =====================
2837-- add_column(:builds, :canceled_at, :timestamp, {:precision=>nil})
2838 -> 0.0007s
2839-- add_column(:jobs, :canceled_at, :timestamp, {:precision=>nil})
2840 -> 0.0005s
2841== 20130726101124 AddCanceledAtToJobsAndBuilds: migrated (0.0013s) ============
2843== 20130901183019 AddIndexOnRepositoryGithubId: migrating =====================
2844-- execute("DROP INDEX index_repositories_on_github_id")
2845 -> 0.0011s
2846-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_github_id ON repositories(github_id)")
2847 -> 0.0034s
2848== 20130901183019 AddIndexOnRepositoryGithubId: migrated (0.0045s) ============
2850== 20130909203321 AddCachedMatrixIdsToBuilds: migrating =======================
2851-- execute("ALTER TABLE builds ADD COLUMN cached_matrix_ids integer[]")
2852 -> 0.0006s
2853== 20130909203321 AddCachedMatrixIdsToBuilds: migrated (0.0007s) ==============
2855== 20130910184823 CreateIndexOnBuildsIdDescAndRepositoryIdAndEventType: migrating
2856-- execute("CREATE INDEX CONCURRENTLY index_builds_on_id_repository_id_and_event_type_desc ON builds (id DESC, repository_id, event_type);")
2857 -> 0.0041s
2858== 20130910184823 CreateIndexOnBuildsIdDescAndRepositoryIdAndEventType: migrated (0.0041s)
2860== 20130916101056 AddUniqueIndexOnRepositoryGithubId: migrating ===============
2861-- execute("DROP INDEX index_repositories_on_github_id")
2862 -> 0.0010s
2863-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_repositories_on_github_id ON repositories(github_id)")
2864 -> 0.0039s
2865== 20130916101056 AddUniqueIndexOnRepositoryGithubId: migrated (0.0055s) ======
2867== 20130920135744 AddSettingsToRepositories: migrating ========================
2868-- add_column(:repositories, :settings, :json)
2869 -> 0.0007s
2870== 20130920135744 AddSettingsToRepositories: migrated (0.0008s) ===============
2872== 20131104101056 RemoveWorkersTableAndIndexes: migrating =====================
2873-- drop_table(:workers)
2874 -> 0.0011s
2875== 20131104101056 RemoveWorkersTableAndIndexes: migrated (0.0011s) ============
2877== 20131109101056 RemoveEventsTable: migrating ================================
2878-- drop_table(:events)
2879 -> 0.0011s
2880== 20131109101056 RemoveEventsTable: migrated (0.0011s) =======================
2882== 20140120225125 RemoveAnnotationImageInfo: migrating ========================
2883-- remove_column(:annotations, :image_url)
2884 -> 0.0006s
2885-- remove_column(:annotations, :image_alt)
2886 -> 0.0003s
2887== 20140120225125 RemoveAnnotationImageInfo: migrated (0.0010s) ===============
2889== 20140121003026 AddStatusToAnnotations: migrating ===========================
2890-- add_column(:annotations, :status, :string)
2891 -> 0.0006s
2892== 20140121003026 AddStatusToAnnotations: migrated (0.0007s) ==================
2894== 20140204220926 AddIndicesToRequests: migrating =============================
2895-- execute("CREATE INDEX CONCURRENTLY index_requests_on_repository_id ON requests(repository_id)")
2896 -> 0.0037s
2897-- execute("CREATE INDEX CONCURRENTLY index_requests_on_commit_id ON requests(commit_id)")
2898 -> 0.0034s
2899== 20140204220926 AddIndicesToRequests: migrated (0.0072s) ====================
2901== 20140210003014 AddIndicesToMemberships: migrating ==========================
2902-- execute("CREATE INDEX CONCURRENTLY index_memberships_on_user_id ON memberships(user_id)")
2903 -> 0.0033s
2904== 20140210003014 AddIndicesToMemberships: migrated (0.0033s) =================
2906== 20140210012509 RemoveUnusedIndices: migrating ==============================
2907-- execute("DROP INDEX CONCURRENTLY index_commits_on_commit")
2908 -> 0.0019s
2909-- execute("DROP INDEX CONCURRENTLY index_builds_on_state")
2910 -> 0.0019s
2911-- execute("DROP INDEX CONCURRENTLY index_commits_on_branch")
2912 -> 0.0017s
2913-- execute("DROP INDEX CONCURRENTLY index_users_on_github_oauth_token")
2914 -> 0.0016s
2915-- execute("DROP INDEX CONCURRENTLY index_builds_on_finished_at")
2916 -> 0.0017s
2917-- execute("DROP INDEX CONCURRENTLY index_jobs_on_queue_and_state")
2918 -> 0.0018s
2919-- execute("DROP INDEX CONCURRENTLY index_jobs_on_created_at")
2920 -> 0.0020s
2921== 20140210012509 RemoveUnusedIndices: migrated (0.0128s) =====================
2923== 20140612131826 AddRemovedInfoToLogs: migrating =============================
2924== 20140612131826 AddRemovedInfoToLogs: migrated (0.0008s) ====================
2926== 20140827121945 AddEducationFieldToUser: migrating ==========================
2927-- add_column(:users, :education, :boolean)
2928 -> 0.0007s
2929== 20140827121945 AddEducationFieldToUser: migrated (0.0007s) =================
2931== 20150121135400 JobsAddReceivedAt: migrating ================================
2932-- add_column(:jobs, :received_at, :timestamp, {:precision=>nil})
2933 -> 0.0007s
2934== 20150121135400 JobsAddReceivedAt: migrated (0.0007s) =======================
2936== 20150121135401 BuildsAddReceivedAt: migrating ==============================
2937-- add_column(:builds, :received_at, :timestamp, {:precision=>nil})
2938 -> 0.0006s
2939== 20150121135401 BuildsAddReceivedAt: migrated (0.0007s) =====================
2941== 20150204144312 AddIndexOnRepositoryIdToCommits: migrating ==================
2942-- execute("DROP INDEX IF EXISTS index_commits_on_repository_id")
2943 -> 0.0005s
2944-- execute("CREATE INDEX CONCURRENTLY index_commits_on_repository_id ON commits(repository_id)")
2945 -> 0.0041s
2946== 20150204144312 AddIndexOnRepositoryIdToCommits: migrated (0.0047s) =========
2948== 20150210170900 IndexRequestsOnCreatedAt: migrating =========================
2949-- execute("DROP INDEX IF EXISTS index_requests_on_created_at")
2950 -> 0.0003s
2951-- execute("CREATE INDEX CONCURRENTLY index_requests_on_created_at ON requests(created_at)")
2952 -> 0.0037s
2953== 20150210170900 IndexRequestsOnCreatedAt: migrated (0.0041s) ================
2955== 20150223125700 CreateBranches: migrating ===================================
2956-- create_table(:branches, {:id=>:integer})
2957 -> 0.0205s
2958-- add_index(:branches, [:repository_id, :name], {:unique=>true})
2959 -> 0.0022s
2960== 20150223125700 CreateBranches: migrated (0.0228s) ==========================
2962== 20150311020321 AddNextBuildNumberToRepository: migrating ===================
2963-- add_column(:repositories, :next_build_number, :integer)
2964 -> 0.0037s
2965== 20150311020321 AddNextBuildNumberToRepository: migrated (0.0039s) ==========
2967== 20150316020321 AddActiveIndexToRepository: migrating =======================
2968-- execute("DROP INDEX IF EXISTS index_repositories_on_active")
2969 -> 0.0010s
2970-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_active ON repositories(active)")
2971 -> 0.0042s
2972== 20150316020321 AddActiveIndexToRepository: migrated (0.0056s) ==============
2974== 20150316080321 AddOwnerTypeAndOwnerIdIndexesToBuilds: migrating ============
2975-- execute("DROP INDEX IF EXISTS index_builds_on_owner_type")
2976 -> 0.0011s
2977-- execute("DROP INDEX IF EXISTS index_builds_on_owner_id")
2978 -> 0.0010s
2979-- execute("CREATE INDEX CONCURRENTLY index_builds_on_owner_type ON builds(owner_type)")
2980 -> 0.0050s
2981-- execute("CREATE INDEX CONCURRENTLY index_builds_on_owner_id ON builds(owner_id)")
2982 -> 0.0038s
2983== 20150316080321 AddOwnerTypeAndOwnerIdIndexesToBuilds: migrated (0.0114s) ===
2985== 20150316100321 AddOwnerTypeAndOwnerIdIndexesToRepositories: migrating ======
2986-- execute("DROP INDEX IF EXISTS index_repositories_on_owner_type")
2987 -> 0.0004s
2988-- execute("DROP INDEX IF EXISTS index_repositories_on_owner_id")
2989 -> 0.0003s
2990-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_type ON repositories(owner_type)")
2991 -> 0.0042s
2992-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_id ON repositories(owner_id)")
2993 -> 0.0048s
2994== 20150316100321 AddOwnerTypeAndOwnerIdIndexesToRepositories: migrated (0.0099s)
2996== 20150317004600 AddSlugIndexToRepositories: migrating =======================
2997-- execute("CREATE EXTENSION IF NOT EXISTS pg_trgm")
2998 -> 0.0139s
2999-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_slug ON repositories USING gin((owner_name || '/' || name) gin_trgm_ops)")
3000 -> 0.0027s
3001== 20150317004600 AddSlugIndexToRepositories: migrated (0.0167s) ==============
3003== 20150317020321 AddTokenIndexToTokens: migrating ============================
3004-- execute("DROP INDEX IF EXISTS index_tokens_on_token")
3005 -> 0.0003s
3006-- execute("CREATE INDEX CONCURRENTLY index_tokens_on_token ON tokens(token)")
3007 -> 0.0036s
3008== 20150317020321 AddTokenIndexToTokens: migrated (0.0039s) ===================
3010== 20150317080321 AddLoginIndexToOrganizations: migrating =====================
3011-- execute("DROP INDEX IF EXISTS index_organizations_on_login")
3012 -> 0.0003s
3013-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_login ON organizations(login)")
3014 -> 0.0034s
3015== 20150317080321 AddLoginIndexToOrganizations: migrated (0.0038s) ============
3017== 20150414001337 AddLowerCaseIndices: migrating ==============================
3018-- execute("DROP INDEX IF EXISTS index_organizations_on_lower_login")
3019 -> 0.0002s
3020-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_lower_login ON organizations USING btree(lower(login))")
3021 -> 0.0032s
3022-- execute("DROP INDEX IF EXISTS index_users_on_lower_login")
3023 -> 0.0002s
3024-- execute("CREATE INDEX CONCURRENTLY index_users_on_lower_login ON users USING btree(lower(login))")
3025 -> 0.0035s
3026-- execute("DROP INDEX IF EXISTS index_repositories_on_lower_name")
3027 -> 0.0002s
3028-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_name ON repositories USING btree(lower(name))")
3029 -> 0.0038s
3030-- execute("DROP INDEX IF EXISTS index_repositories_on_lower_owner_name")
3031 -> 0.0003s
3032-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_owner_name ON repositories USING btree(lower(owner_name))")
3033 -> 0.0034s
3034== 20150414001337 AddLowerCaseIndices: migrated (0.0149s) =====================
3036== 20150528101600 RepositoriesAddIndexOwnerName: migrating ====================
3037-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_name ON repositories(owner_name)")
3038 -> 0.0036s
3039== 20150528101600 RepositoriesAddIndexOwnerName: migrated (0.0036s) ===========
3041== 20150528101601 RepositoriesAddIndexName: migrating =========================
3042-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_name ON repositories(name)")
3043 -> 0.0035s
3044== 20150528101601 RepositoriesAddIndexName: migrated (0.0035s) ================
3046== 20150528101602 RepositoriesDropIndexOwnerNameName: migrating ===============
3047-- execute("DROP INDEX CONCURRENTLY index_repositories_on_owner_name_and_name")
3048 -> 0.0018s
3049== 20150528101602 RepositoriesDropIndexOwnerNameName: migrated (0.0018s) ======
3051== 20150528101603 BuildsAddIndexEventType: migrating ==========================
3052-- execute("CREATE INDEX CONCURRENTLY index_builds_on_event_type ON builds (event_type)")
3053 -> 0.0036s
3054== 20150528101603 BuildsAddIndexEventType: migrated (0.0036s) =================
3056== 20150528101604 BuildsAddIndexRepositoryId: migrating =======================
3057-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id ON builds (repository_id)")
3058 -> 0.0037s
3059== 20150528101604 BuildsAddIndexRepositoryId: migrated (0.0038s) ==============
3061== 20150528101605 BuildsAddIndexState: migrating ==============================
3062-- execute("CREATE INDEX CONCURRENTLY index_builds_on_state ON builds (state)")
3063 -> 0.0036s
3064== 20150528101605 BuildsAddIndexState: migrated (0.0037s) =====================
3066== 20150528101607 BuildsAddIndexBranch: migrating =============================
3067-- execute("CREATE INDEX CONCURRENTLY index_builds_on_branch ON builds (branch)")
3068 -> 0.0033s
3069== 20150528101607 BuildsAddIndexBranch: migrated (0.0034s) ====================
3071== 20150528101608 BuildsDropIndexRepositoryIdAndState: migrating ==============
3072-- execute("DROP INDEX CONCURRENTLY index_builds_on_repository_id_and_state")
3073 -> 0.0020s
3074== 20150528101608 BuildsDropIndexRepositoryIdAndState: migrated (0.0021s) =====
3076== 20150528101609 BuildsDropIndexRepositoryIdAndEventType: migrating ==========
3077-- execute("DROP INDEX CONCURRENTLY index_builds_on_repository_id_and_event_type")
3078 -> 0.0021s
3079== 20150528101609 BuildsDropIndexRepositoryIdAndEventType: migrated (0.0021s) =
3081== 20150528101610 BuildsDropIndexIdRepositoryIdAndEventTypeDesc: migrating ====
3082-- execute("DROP INDEX CONCURRENTLY index_builds_on_id_repository_id_and_event_type_desc")
3083 -> 0.0019s
3084== 20150528101610 BuildsDropIndexIdRepositoryIdAndEventTypeDesc: migrated (0.0020s)
3086== 20150528101611 BuildsDropIndexRepositoryIdAndEventTypeAndStateAndBranch: migrating
3087-- execute("DROP INDEX CONCURRENTLY index_builds_on_repository_id_and_event_type_and_state_and_bran")
3088 -> 0.0019s
3089== 20150528101611 BuildsDropIndexRepositoryIdAndEventTypeAndStateAndBranch: migrated (0.0019s)
3091== 20150609175200 AddCancelationColumnsToSubscriptions: migrating =============
3092-- change_table(:subscriptions)
3093 -> 0.0011s
3094== 20150609175200 AddCancelationColumnsToSubscriptions: migrated (0.0011s) ====
3096== 20150610143500 JobsAddIndexOwnerId: migrating ==============================
3097-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_id ON jobs (owner_id)")
3098 -> 0.0037s
3099== 20150610143500 JobsAddIndexOwnerId: migrated (0.0038s) =====================
3101== 20150610143501 JobsAddIndexOwnerType: migrating ============================
3102-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_type ON jobs (owner_type)")
3103 -> 0.0033s
3104== 20150610143501 JobsAddIndexOwnerType: migrated (0.0033s) ===================
3106== 20150610143502 JobsAddIndexSourceId: migrating =============================
3107-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_source_id ON jobs (source_id)")
3108 -> 0.0035s
3109== 20150610143502 JobsAddIndexSourceId: migrated (0.0035s) ====================
3111== 20150610143503 JobsAddIndexSourceType: migrating ===========================
3112-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_source_type ON jobs (source_type)")
3113 -> 0.0033s
3114== 20150610143503 JobsAddIndexSourceType: migrated (0.0033s) ==================
3116== 20150610143504 JobsAddIndexType: migrating =================================
3117-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_type ON jobs (type)")
3118 -> 0.0149s
3119== 20150610143504 JobsAddIndexType: migrated (0.0150s) ========================
3121== 20150610143505 JobsDropIndexOwnerIdAndOwnerTypeAndState: migrating =========
3122-- execute("DROP INDEX CONCURRENTLY index_jobs_on_owner_id_and_owner_type_and_state")
3123 -> 0.0030s
3124== 20150610143505 JobsDropIndexOwnerIdAndOwnerTypeAndState: migrated (0.0033s)
3126== 20150610143506 JobsDropIndexStateOwnerTypeOwnerId: migrating ===============
3127-- execute("DROP INDEX CONCURRENTLY index_jobs_on_state_owner_type_owner_id")
3128 -> 0.0032s
3129== 20150610143506 JobsDropIndexStateOwnerTypeOwnerId: migrated (0.0035s) ======
3131== 20150610143507 JobsDropIndexTypeAndSourceIdAndSourceType: migrating ========
3132-- index_exists?(:jobs, :index_jobs_on_type_and_owner_id_and_owner_type, {:name=>"index_jobs_on_index_jobs_on_type_and_owner_id_and_owner_type"})
3133 -> 0.0109s
3134== 20150610143507 JobsDropIndexTypeAndSourceIdAndSourceType: migrated (0.0112s)
3136== 20150610143508 JobsAddIndexState: migrating ================================
3137-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_state ON jobs (state)")
3138 -> 0.0047s
3139== 20150610143508 JobsAddIndexState: migrated (0.0049s) =======================
3141== 20150610143509 JobsAddIndexQueue: migrating ================================
3142-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_queue ON jobs (queue)")
3143 -> 0.0044s
3144== 20150610143509 JobsAddIndexQueue: migrated (0.0046s) =======================
3146== 20150610143510 TokensAddIndexUserId: migrating =============================
3147-- execute("CREATE INDEX CONCURRENTLY index_tokens_on_user_id ON tokens (user_id)")
3148 -> 0.0039s
3149== 20150610143510 TokensAddIndexUserId: migrated (0.0039s) ====================
3151== 20150615103059 AddStatusToSubscriptions: migrating =========================
3152-- add_column(:subscriptions, :status, :string)
3153 -> 0.0007s
3154== 20150615103059 AddStatusToSubscriptions: migrated (0.0007s) ================
3156== 20150629231300 ReposAddInvalidatedAt: migrating ============================
3157-- add_column(:repositories, :invalidated_at, :timestamp, {:precision=>nil})
3158 -> 0.0006s
3159== 20150629231300 ReposAddInvalidatedAt: migrated (0.0007s) ===================
3161== 20150923131400 BroadcastsAddCategory: migrating ============================
3162-- add_column(:broadcasts, :category, :string)
3163 -> 0.0006s
3164== 20150923131400 BroadcastsAddCategory: migrated (0.0007s) ===================
3166== 20151112153500 CreateStars: migrating ======================================
3167-- create_table(:stars, {:id=>:integer})
3168 -> 0.0033s
3169-- add_index(:stars, :user_id)
3170 -> 0.0019s
3171== 20151112153500 CreateStars: migrated (0.0052s) =============================
3173== 20151113111400 StarsAddIndexUserIdAndRepositoryId: migrating ===============
3174-- execute("CREATE UNIQUE INDEX index_stars_on_user_id_and_repository_id ON stars (user_id, repository_id)")
3175 -> 0.0026s
3176== 20151113111400 StarsAddIndexUserIdAndRepositoryId: migrated (0.0026s) ======
3178== 20151127153500 UsersAddIndexGithubOauthToken: migrating ====================
3179-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_github_oauth_token ON users (github_oauth_token)")
3180 -> 0.0037s
3181== 20151127153500 UsersAddIndexGithubOauthToken: migrated (0.0037s) ===========
3183== 20151127154200 AnnotationsAddIndexJobId: migrating =========================
3184-- execute("CREATE INDEX CONCURRENTLY index_annotations_on_job_id ON annotations (job_id)")
3185 -> 0.0034s
3186== 20151127154200 AnnotationsAddIndexJobId: migrated (0.0034s) ================
3188== 20151127154600 BroadcastsAddIndexRecipientIdAndRecipientType: migrating ====
3189-- execute("CREATE INDEX CONCURRENTLY index_broadcasts_on_recipient_id_and_recipient_type ON broadcasts (recipient_id, recipient_type)")
3190 -> 0.0038s
3191== 20151127154600 BroadcastsAddIndexRecipientIdAndRecipientType: migrated (0.0038s)
3193== 20151202122200 UsersAddFirstLoggedInAt: migrating ==========================
3194-- add_column(:users, :first_logged_in_at, :timestamp, {:precision=>nil})
3195 -> 0.0007s
3196== 20151202122200 UsersAddFirstLoggedInAt: migrated (0.0007s) =================
3198== 20160107120927 AddCronTable: migrating =====================================
3199-- create_table(:crons, {:id=>:integer})
3200 -> 0.0053s
3201== 20160107120927 AddCronTable: migrated (0.0054s) ============================
3203== 20160303165750 AddDebugOptionsToJobs: migrating ============================
3204-- add_column(:jobs, :debug_options, :text)
3205 -> 0.0007s
3206== 20160303165750 AddDebugOptionsToJobs: migrated (0.0008s) ===================
3208== 20160412113020 BuildsDropIndexOwnerType: migrating =========================
3209-- execute("DROP INDEX CONCURRENTLY index_builds_on_owner_type")
3210 -> 0.0021s
3211== 20160412113020 BuildsDropIndexOwnerType: migrated (0.0022s) ================
3213== 20160412113070 RepositoriesDropIndexLastBuildStartedAt: migrating ==========
3214-- execute("DROP INDEX CONCURRENTLY index_repositories_on_last_build_started_at")
3215 -> 0.0020s
3216== 20160412113070 RepositoriesDropIndexLastBuildStartedAt: migrated (0.0020s) =
3218== 20160412121405 JobsDropIndexType: migrating ================================
3219-- execute("DROP INDEX CONCURRENTLY index_jobs_on_type")
3220 -> 0.0022s
3221== 20160412121405 JobsDropIndexType: migrated (0.0022s) =======================
3223== 20160412123900 JobsDropIndexSourceType: migrating ==========================
3224-- execute("DROP INDEX CONCURRENTLY index_jobs_on_source_type")
3225 -> 0.0020s
3226== 20160412123900 JobsDropIndexSourceType: migrated (0.0020s) =================
3228== 20160414214442 JobsAddIndexQueuedAt: migrating =============================
3229-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_queued_at ON jobs (queued_at)")
3230 -> 0.0038s
3231== 20160414214442 JobsAddIndexQueuedAt: migrated (0.0038s) ====================
3233== 20160422104300 BuildsAddIndexNumber: migrating =============================
3234-- execute("CREATE INDEX CONCURRENTLY index_builds_on_number ON builds (number)")
3235 -> 0.0036s
3236== 20160422104300 BuildsAddIndexNumber: migrated (0.0036s) ====================
3238== 20160422121400 BuildsAddIndexRepositoryIdAndNumberAndEventType: migrating ==
3239-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_number_and_event_type ON builds (repository_id, number, event_type)")
3240 -> 0.0035s
3241== 20160422121400 BuildsAddIndexRepositoryIdAndNumberAndEventType: migrated (0.0035s)
3243== 20160510142700 JobsAddIndexCreatedAt: migrating ============================
3244-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_created_at ON jobs (created_at)")
3245 -> 0.0034s
3246== 20160510142700 JobsAddIndexCreatedAt: migrated (0.0035s) ===================
3248== 20160510144200 BuildsAddPrivate: migrating =================================
3249-- change_table(:builds)
3250 -> 0.0007s
3251== 20160510144200 BuildsAddPrivate: migrated (0.0008s) ========================
3253== 20160510150300 JobsAddPrivate: migrating ===================================
3254-- change_table(:jobs)
3255 -> 0.0008s
3256== 20160510150300 JobsAddPrivate: migrated (0.0008s) ==========================
3258== 20160510150400 RequestsAddPrivate: migrating ===============================
3259-- change_table(:requests)
3260 -> 0.0007s
3261== 20160510150400 RequestsAddPrivate: migrated (0.0007s) ======================
3263== 20160513074300 AddCurrentBuildIdToRepositories: migrating ==================
3264-- add_column(:repositories, :current_build_id, :bigint)
3265 -> 0.0007s
3266-- execute("ALTER TABLE repositories ADD CONSTRAINT fk_repositories_current_build_id FOREIGN KEY (current_build_id) REFERENCES builds (id);")
3267 -> 0.0015s
3268== 20160513074300 AddCurrentBuildIdToRepositories: migrated (0.0023s) =========
3270== 20160609163600 PermissionsAddIndexUserIdAndRepositoryId: migrating =========
3271-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_permissions_on_user_id_and_repository_id ON permissions (user_id, repository_id)")
3272 -> 0.0039s
3273== 20160609163600 PermissionsAddIndexUserIdAndRepositoryId: migrated (0.0039s)
3275== 20160623133900 CreatePreviousJobStates: migrating ==========================
3276-- create_table(:previous_job_states, {:id=>:integer})
3277 -> 0.0052s
3278-- add_column(:jobs, :previous_job_state_id, :bigint)
3279 -> 0.0006s
3280== 20160623133900 CreatePreviousJobStates: migrated (0.0059s) =================
3282== 20160623133901 AddPreviousStatesTriggers: migrating ========================
3283-- execute(" CREATE FUNCTION save_state_change() RETURNS trigger AS $$\n DECLARE\n previous_job_state_id BIGINT;\n BEGIN\n if TG_OP='UPDATE' then\n UPDATE previous_job_states SET ended_at = NOW() WHERE id = OLD.previous_job_state_id;\n end if;\n\n INSERT INTO previous_job_states (job_id, set_at, state) VALUES(NEW.id, NOW(), NEW.state)\n RETURNING id INTO previous_job_state_id;\n NEW.previous_job_state_id = previous_job_state_id;\n\n RETURN NEW;\n END;\n $$ LANGUAGE plpgsql;\n\n CREATE TRIGGER save_state_change_on_update\n BEFORE UPDATE on jobs\n FOR EACH ROW\n WHEN (OLD.state IS DISTINCT FROM NEW.state)\n EXECUTE PROCEDURE save_state_change();\n\n CREATE TRIGGER save_state_change_on_insert\n BEFORE INSERT on jobs\n FOR EACH ROW\n EXECUTE PROCEDURE save_state_change();\n")
3284 -> 0.0078s
3285== 20160623133901 AddPreviousStatesTriggers: migrated (0.0079s) ===============
3287== 20160712125400 RevertPreviousJobStates: migrating ==========================
3288-- execute(" DROP TRIGGER IF EXISTS save_state_change_on_update on jobs;\n DROP TRIGGER IF EXISTS save_state_change_on_insert on jobs;\n DROP FUNCTION IF EXISTS save_state_change();\n")
3289 -> 0.0010s
3290-- remove_column(:jobs, :previous_job_state_id)
3291 -> 0.0005s
3292-- drop_table(:previous_job_states)
3293 -> 0.0011s
3294== 20160712125400 RevertPreviousJobStates: migrated (0.0028s) =================
3296== 20160819103700 AddAvatarUrlToUsers: migrating ==============================
3297-- add_column(:users, :avatar_url, :string)
3298 -> 0.0010s
3299== 20160819103700 AddAvatarUrlToUsers: migrated (0.0011s) =====================
3301== 20160920220400 AddRoleToMemberships: migrating =============================
3302-- add_column(:memberships, :role, :string)
3303 -> 0.0031s
3304== 20160920220400 AddRoleToMemberships: migrated (0.0032s) ====================
3306== 20161028154600 RemoveTypeIndices: migrating ================================
3307-- execute("DROP INDEX CONCURRENTLY IF EXISTS index_requests_on_event_type")
3308 -> 0.0003s
3309-- execute("DROP INDEX CONCURRENTLY IF EXISTS index_jobs_on_owner_type")
3310 -> 0.0024s
3311== 20161028154600 RemoveTypeIndices: migrated (0.0029s) =======================
3313== 20161101000000 AddNextRunLastRunToCrons: migrating =========================
3314-- column_exists?(:crons, :next_run)
3315 -> 0.0030s
3316-- add_column(:crons, :next_run, :timestamp, {:precision=>nil})
3317 -> 0.0005s
3318-- column_exists?(:crons, :last_run)
3319 -> 0.0017s
3320-- add_column(:crons, :last_run, :timestamp, {:precision=>nil})
3321 -> 0.0039s
3322== 20161101000000 AddNextRunLastRunToCrons: migrated (0.0092s) ================
3324== 20161101000001 AddDontRunIfRecentBuildExists: migrating ====================
3325-- column_exists?(:crons, :dont_run_if_recent_build_exists)
3326 -> 0.0045s
3327-- add_column(:crons, :dont_run_if_recent_build_exists, :boolean, {:default=>false})
3328 -> 0.0024s
3329== 20161101000001 AddDontRunIfRecentBuildExists: migrated (0.0073s) ===========
3331== 20161201112200 CreateBetaFeatures: migrating ===============================
3332-- create_table(:beta_features, {:id=>:integer})
3333 -> 0.0088s
3334== 20161201112200 CreateBetaFeatures: migrated (0.0088s) ======================
3336== 20161201112600 CreateUserBetaFeatures: migrating ===========================
3337-- create_table(:user_beta_features, {:id=>:integer})
3338 -> 0.0040s
3339-- add_index(:user_beta_features, [:user_id, :beta_feature_id])
3340 -> 0.0023s
3341== 20161201112600 CreateUserBetaFeatures: migrated (0.0066s) ==================
3343== 20161202000000 RemoveDisableByBuildFromCrons: migrating ====================
3344-- remove_column(:crons, :disable_by_build)
3345 -> 0.0010s
3346== 20161202000000 RemoveDisableByBuildFromCrons: migrated (0.0011s) ===========
3348== 20161206155800 AddBillingAdminOnlyToOrganizations: migrating ===============
3349-- add_column(:organizations, :billing_admin_only, :boolean)
3350 -> 0.0011s
3351== 20161206155800 AddBillingAdminOnlyToOrganizations: migrated (0.0011s) ======
3353== 20161221171300 BuildsAddIndexRepositoryIdAndNumber: migrating ==============
3354-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_number ON builds(repository_id, (number::integer))")
3355 -> 0.0046s
3356== 20161221171300 BuildsAddIndexRepositoryIdAndNumber: migrated (0.0046s) =====
3358== 20170211000000 JobsAddStageNumber: migrating ===============================
3359-- add_column(:jobs, :stage_number, :string)
3360 -> 0.0017s
3361== 20170211000000 JobsAddStageNumber: migrated (0.0018s) ======================
3363== 20170211000001 JobsAddStageId: migrating ===================================
3364-- change_table(:jobs)
3365 -> 0.0030s
3366== 20170211000001 JobsAddStageId: migrated (0.0033s) ==========================
3368== 20170211000002 StagesCreate: migrating =====================================
3369-- create_table(:stages, {:id=>:integer})
3370 -> 0.0081s
3371== 20170211000002 StagesCreate: migrated (0.0084s) ============================
3373== 20170211000003 StagesAddStateAndTimestamps: migrating ======================
3374-- change_table(:stages)
3375 -> 0.0017s
3376== 20170211000003 StagesAddStateAndTimestamps: migrated (0.0017s) =============
3378== 20170213124000 AddConstraintForOwnerIdToSubscriptions: migrating ===========
3379-- execute("CREATE UNIQUE INDEX subscriptions_owner ON subscriptions (owner_id, owner_type) WHERE (status = 'subscribed');")
3380 -> 0.0024s
3381== 20170213124000 AddConstraintForOwnerIdToSubscriptions: migrated (0.0024s) ==
3383== 20170316000000 QueueableJobsCreate: migrating ==============================
3384-- create_table(:queueable_jobs, {:id=>:integer})
3385 -> 0.0030s
3386== 20170316000000 QueueableJobsCreate: migrated (0.0030s) =====================
3388== 20170316000001 QueueableJobsIndexJobId: migrating ==========================
3389-- add_index(:queueable_jobs, :job_id, {:algorithm=>:concurrently})
3390 -> 0.0034s
3391== 20170316000001 QueueableJobsIndexJobId: migrated (0.0034s) =================
3393== 20170318000000 PullRequestsCreate: migrating ===============================
3394-- create_table(:pull_requests, {:id=>:integer})
3395 -> 0.0049s
3396== 20170318000000 PullRequestsCreate: migrated (0.0050s) ======================
3398== 20170318000001 RequestsAddPullRequestId: migrating =========================
3399-- change_table(:requests)
3400 -> 0.0008s
3401== 20170318000001 RequestsAddPullRequestId: migrated (0.0008s) ================
3403== 20170318000002 BuildsAddPullRequestId: migrating ===========================
3404-- change_table(:builds)
3405 -> 0.0007s
3406== 20170318000002 BuildsAddPullRequestId: migrated (0.0007s) ==================
3408== 20170322000000 AddIndexOnRequestsRepositoryIdAndIdDesc: migrating ==========
3409-- execute("CREATE INDEX CONCURRENTLY index_requests_on_repository_id_and_id_desc ON requests (repository_id, id DESC);")
3410 -> 0.0037s
3411== 20170322000000 AddIndexOnRequestsRepositoryIdAndIdDesc: migrated (0.0037s) =
3413== 20170331000000 AddIndexRepositoryIdOnPullRequests: migrating ===============
3414-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_pull_requests_on_repository_id_and_number ON pull_requests (repository_id, (number::integer));")
3415 -> 0.0033s
3416== 20170331000000 AddIndexRepositoryIdOnPullRequests: migrated (0.0033s) ======
3418== 20170401000000 OwnerGroupsCreate: migrating ================================
3419-- create_table(:owner_groups, {:id=>:integer})
3420 -> 0.0047s
3421== 20170401000000 OwnerGroupsCreate: migrated (0.0048s) =======================
3423== 20170401000001 OwnerGroupsIndexOwnerIdOwnerType: migrating =================
3424-- execute("CREATE INDEX CONCURRENTLY index_owner_groups_on_owner_type_and_owner_id ON owner_groups (owner_type, owner_id);")
3425 -> 0.0038s
3426== 20170401000001 OwnerGroupsIndexOwnerIdOwnerType: migrated (0.0038s) ========
3428== 20170401000002 OwnerGroupsIndexUuid: migrating =============================
3429-- execute("CREATE INDEX CONCURRENTLY index_owner_groups_on_uuid ON owner_groups (uuid);")
3430 -> 0.0034s
3431== 20170401000002 OwnerGroupsIndexUuid: migrated (0.0034s) ====================
3433== 20170405000000 TagsCreate: migrating =======================================
3434-- create_table(:tags, {:id=>:integer})
3435 -> 0.0046s
3436== 20170405000000 TagsCreate: migrated (0.0047s) ==============================
3438== 20170405000001 RequestsAddBranchIdAndTagId: migrating ======================
3439-- change_table(:requests)
3440 -> 0.0045s
3441== 20170405000001 RequestsAddBranchIdAndTagId: migrated (0.0045s) =============
3443== 20170405000002 CommitsAddBranchIdAndTagId: migrating =======================
3444-- change_table(:commits)
3445 -> 0.0016s
3446== 20170405000002 CommitsAddBranchIdAndTagId: migrated (0.0017s) ==============
3448== 20170405000003 BuildsAddBranchIdAndTagId: migrating ========================
3449-- change_table(:builds)
3450 -> 0.0016s
3451== 20170405000003 BuildsAddBranchIdAndTagId: migrated (0.0017s) ===============
3453== 20170408000000 RequestsAddSenderId: migrating ==============================
3454-- change_table(:requests)
3455 -> 0.0012s
3456== 20170408000000 RequestsAddSenderId: migrated (0.0013s) =====================
3458== 20170408000001 BuildsAddSenderId: migrating ================================
3459-- change_table(:builds)
3460 -> 0.0015s
3461== 20170408000001 BuildsAddSenderId: migrated (0.0015s) =======================
3463== 20170410000000 JobsIndexStageId: migrating =================================
3464-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_stage_id ON jobs (stage_id);")
3465 -> 0.0040s
3466== 20170410000000 JobsIndexStageId: migrated (0.0041s) ========================
3468== 20170411000000 TagsIndexRepoIdAndName: migrating ===========================
3469-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_repository_id_and_name ON tags (repository_id, name);")
3470 -> 0.0039s
3471== 20170411000000 TagsIndexRepoIdAndName: migrated (0.0040s) ==================
3473== 20170419093249 AddSourceToSubscriptions: migrating =========================
3474-- execute(" CREATE TYPE source_type AS ENUM ('manual', 'stripe', 'github', 'unknown');\n")
3475 -> 0.0012s
3476-- add_column(:subscriptions, :source, :source_type, {:default=>"unknown", :null=>false})
3477 -> 0.0013s
3478== 20170419093249 AddSourceToSubscriptions: migrated (0.0027s) ================
3480== 20170531125700 AddIndexOnBuildsSenderTypeAndSenderId: migrating ============
3481-- execute("CREATE INDEX CONCURRENTLY index_builds_on_sender_type_and_sender_id ON builds (sender_type, sender_id);")
3482 -> 0.0050s
3483== 20170531125700 AddIndexOnBuildsSenderTypeAndSenderId: migrated (0.0050s) ===
3485== 20170601163700 DropIndexOnRepositoriesBuildsAndCommits: migrating ==========
3486-- execute("DROP INDEX CONCURRENTLY index_repositories_on_lower_owner_name")
3487 -> 0.0024s
3488-- execute("DROP INDEX CONCURRENTLY index_repositories_on_owner_type")
3489 -> 0.0022s
3490-- execute("DROP INDEX CONCURRENTLY index_commits_on_repository_id")
3491 -> 0.0024s
3492-- execute("DROP INDEX CONCURRENTLY index_builds_on_number")
3493 -> 0.0023s
3494== 20170601163700 DropIndexOnRepositoriesBuildsAndCommits: migrated (0.0096s) =
3496== 20170601164400 AddIndexOnBuildsAndStages: migrating ========================
3497-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_branch_and_event_type_and_id ON builds (repository_id, branch, event_type, id)")
3498 -> 0.0043s
3499-- execute("CREATE INDEX CONCURRENTLY index_stages_on_build_id ON stages (build_id)")
3500 -> 0.0041s
3501== 20170601164400 AddIndexOnBuildsAndStages: migrated (0.0086s) ===============
3503== 20170609174400 DropUnusedIndexesOnJobsAndBuilds: migrating =================
3504-- execute("DROP INDEX CONCURRENTLY index_jobs_on_repository_id")
3505 -> 0.0028s
3506-- execute("DROP INDEX CONCURRENTLY index_jobs_on_queued_at")
3507 -> 0.0027s
3508-- execute("DROP INDEX CONCURRENTLY index_jobs_on_queue")
3509 -> 0.0024s
3510-- execute("DROP INDEX CONCURRENTLY index_jobs_on_owner_id")
3511 -> 0.0024s
3512-- execute("DROP INDEX CONCURRENTLY index_builds_on_branch")
3513 -> 0.0023s
3514-- execute("DROP INDEX CONCURRENTLY index_builds_on_event_type")
3515 -> 0.0023s
3516-- execute("DROP INDEX CONCURRENTLY index_builds_on_owner_id")
3517 -> 0.0024s
3518== 20170609174400 DropUnusedIndexesOnJobsAndBuilds: migrated (0.0177s) ========
3520== 20170613000000 CreateTrials: migrating =====================================
3521-- create_table(:trials, {:id=>:integer})
3522 -> 0.0092s
3523-- execute("CREATE INDEX CONCURRENTLY index_trials_on_owner ON trials(owner_id, owner_type)")
3524 -> 0.0047s
3525== 20170613000000 CreateTrials: migrated (0.0140s) ============================
3527== 20170620144500 AddIndexesOnBuildsAndJobsAndBranches: migrating =============
3528-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_branch_and_id_desc ON builds (repository_id, branch, id DESC)")
3529 -> 0.0041s
3530-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_id_and_owner_type_and_state ON jobs (owner_id, owner_type, state)")
3531 -> 0.0032s
3532-- execute("CREATE INDEX CONCURRENTLY index_branches_on_repository_id ON branches (repository_id)")
3533 -> 0.0030s
3534== 20170620144500 AddIndexesOnBuildsAndJobsAndBranches: migrated (0.0104s) ====
3536== 20170621142300 RemovePlansTable: migrating =================================
3537-- drop_table(:plans)
3538 -> 0.0008s
3539== 20170621142300 RemovePlansTable: migrated (0.0009s) ========================
3541== 20170713162000 AddCcLastDigitsToInvoices: migrating ========================
3542-- change_table(:invoices)
3543 -> 0.0006s
3544== 20170713162000 AddCcLastDigitsToInvoices: migrated (0.0006s) ===============
3546== 20170822171600 CreateMessages: migrating ===================================
3547-- create_table("messages", {:force=>:cascade, :id=>:integer})
3548 -> 0.0059s
3549-- execute("CREATE INDEX CONCURRENTLY index_messages_on_subject_type_and_subject_id ON messages(subject_type, subject_id)")
3550 -> 0.0030s
3551== 20170822171600 CreateMessages: migrated (0.0090s) ==========================
3553== 20170831000000 CreateTrialAllowances: migrating ============================
3554-- create_table(:trial_allowances, {:id=>:integer})
3555 -> 0.0049s
3556-- add_index(:trial_allowances, :trial_id)
3557 -> 0.0019s
3558-- add_index(:trial_allowances, [:creator_id, :creator_type])
3559 -> 0.0018s
3560== 20170831000000 CreateTrialAllowances: migrated (0.0087s) ===================
3562== 20170911172800 AddIndexOnJobsUpdatedAt: migrating ==========================
3563-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_updated_at ON jobs (updated_at)")
3564 -> 0.0037s
3565== 20170911172800 AddIndexOnJobsUpdatedAt: migrated (0.0037s) =================
3567== 20171017104500 AddConcurrencyToSubscriptions: migrating ====================
3568-- change_table(:subscriptions)
3569 -> 0.0007s
3570== 20171017104500 AddConcurrencyToSubscriptions: migrated (0.0007s) ===========
3572== 20171024000000 AddAbuseTable: migrating ====================================
3573-- create_table(:abuses, {:id=>:integer})
3574 -> 0.0060s
3575-- execute("CREATE INDEX CONCURRENTLY index_abuses_on_owner ON abuses(owner_id)")
3576 -> 0.0033s
3577== 20171024000000 AddAbuseTable: migrated (0.0093s) ===========================
3579== 20171025000000 AddUpdatedAtTriggerToBuildsAndJobs: migrating ===============
3580-- execute(" CREATE FUNCTION set_updated_at() RETURNS trigger AS $$\n BEGIN\n IF TG_OP = 'INSERT' OR\n (TG_OP = 'UPDATE' AND NEW.* IS DISTINCT FROM OLD.*) THEN\n NEW.updated_at := statement_timestamp();\n END IF;\n RETURN NEW;\n END;\n $$ LANGUAGE plpgsql;\n\n CREATE TRIGGER set_updated_at_on_builds\n BEFORE INSERT OR UPDATE ON builds\n FOR EACH ROW\n EXECUTE PROCEDURE set_updated_at();\n\n CREATE TRIGGER set_updated_at_on_jobs\n BEFORE INSERT OR UPDATE ON jobs\n FOR EACH ROW\n EXECUTE PROCEDURE set_updated_at();\n")
3581 -> 0.0008s
3582== 20171025000000 AddUpdatedAtTriggerToBuildsAndJobs: migrated (0.0009s) ======
3584== 20171103000000 UpdateIndexOnAbuses: migrating ==============================
3585-- index_exists?(:abuses, :owner, {:name=>"index_abuses_on_owner"})
3586 -> 0.0014s
3587-- index_exists?(:abuses, [:owner_id, :owner_type, :level], {:name=>"index_abuses_on_owner_id_and_owner_type_and_level"})
3588 -> 0.0011s
3589-- add_index(:abuses, [:owner_id, :owner_type, :level], {:unique=>true, :algorithm=>:concurrently})
3590 -> 0.0035s
3591== 20171103000000 UpdateIndexOnAbuses: migrated (0.0062s) =====================
3593== 20171211000000 AddRepositoryIdBranchEventTypeIndexOnBuilds: migrating ======
3594-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_branch_and_event_type ON builds (repository_id, branch, event_type) WHERE state IN ('created', 'queued', 'received')")
3595 -> 0.0037s
3596== 20171211000000 AddRepositoryIdBranchEventTypeIndexOnBuilds: migrated (0.0038s)
3598== 20180212000000 UsersAddSuspended: migrating ================================
3599-- add_column(:users, :suspended, :boolean, {:default=>false})
3600 -> 0.0075s
3601== 20180212000000 UsersAddSuspended: migrated (0.0075s) =======================
3603== 20180213000000 UsersAddSuspendedAt: migrating ==============================
3604-- add_column(:users, :suspended_at, :timestamp, {:precision=>nil})
3605 -> 0.0009s
3606== 20180213000000 UsersAddSuspendedAt: migrated (0.0009s) =====================
3608== 20180222000000 AddComIdAndOrgId: migrating =================================
3609-- add_column(:branches, :org_id, :integer)
3610 -> 0.0008s
3611-- add_column(:builds, :org_id, :integer)
3612 -> 0.0006s
3613-- add_column(:commits, :org_id, :integer)
3614 -> 0.0005s
3615-- add_column(:crons, :org_id, :integer)
3616 -> 0.0005s
3617-- add_column(:jobs, :org_id, :integer)
3618 -> 0.0005s
3619-- add_column(:organizations, :org_id, :integer)
3620 -> 0.0005s
3621-- add_column(:permissions, :org_id, :integer)
3622 -> 0.0004s
3623-- add_column(:pull_requests, :org_id, :integer)
3624 -> 0.0004s
3625-- add_column(:repositories, :org_id, :integer)
3626 -> 0.0005s
3627-- add_column(:requests, :org_id, :integer)
3628 -> 0.0005s
3629-- add_column(:ssl_keys, :org_id, :integer)
3630 -> 0.0004s
3631-- add_column(:stages, :org_id, :integer)
3632 -> 0.0004s
3633-- add_column(:tags, :org_id, :integer)
3634 -> 0.0005s
3635-- add_column(:users, :org_id, :integer)
3636 -> 0.0006s
3637-- add_column(:branches, :com_id, :integer)
3638 -> 0.0005s
3639-- add_column(:builds, :com_id, :integer)
3640 -> 0.0006s
3641-- add_column(:commits, :com_id, :integer)
3642 -> 0.0005s
3643-- add_column(:crons, :com_id, :integer)
3644 -> 0.0005s
3645-- add_column(:jobs, :com_id, :integer)
3646 -> 0.0005s
3647-- add_column(:organizations, :com_id, :integer)
3648 -> 0.0005s
3649-- add_column(:permissions, :com_id, :integer)
3650 -> 0.0005s
3651-- add_column(:pull_requests, :com_id, :integer)
3652 -> 0.0005s
3653-- add_column(:repositories, :com_id, :integer)
3654 -> 0.0005s
3655-- add_column(:requests, :com_id, :integer)
3656 -> 0.0006s
3657-- add_column(:ssl_keys, :com_id, :integer)
3658 -> 0.0005s
3659-- add_column(:stages, :com_id, :integer)
3660 -> 0.0005s
3661-- add_column(:tags, :com_id, :integer)
3662 -> 0.0005s
3663-- add_column(:users, :com_id, :integer)
3664 -> 0.0005s
3665== 20180222000000 AddComIdAndOrgId: migrated (0.0149s) ========================
3667== 20180222000001 AddComIdAndOrgIdIndices: migrating ==========================
3668-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_on_org_id ON branches USING btree (org_id)")
3669 -> 0.0047s
3670-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_builds_on_org_id ON builds USING btree (org_id)")
3671 -> 0.0049s
3672-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_jobs_on_org_id ON jobs USING btree (org_id)")
3673 -> 0.0044s
3674-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_commits_on_org_id ON commits USING btree (org_id)")
3675 -> 0.0037s
3676-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_crons_on_org_id ON crons USING btree (org_id)")
3677 -> 0.0039s
3678-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organizations_on_org_id ON organizations USING btree (org_id)")
3679 -> 0.0040s
3680-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_permissions_on_org_id ON permissions USING btree (org_id)")
3681 -> 0.0040s
3682-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_pull_requests_on_org_id ON pull_requests USING btree (org_id)")
3683 -> 0.0042s
3684-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_repositories_on_org_id ON repositories USING btree (org_id)")
3685 -> 0.0040s
3686-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_requests_on_org_id ON requests USING btree (org_id)")
3687 -> 0.0040s
3688-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_ssl_keys_on_org_id ON ssl_keys USING btree (org_id)")
3689 -> 0.0041s
3690-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_stages_on_org_id ON stages USING btree (org_id)")
3691 -> 0.0041s
3692-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_org_id ON tags USING btree (org_id)")
3693 -> 0.0039s
3694-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_org_id ON users USING btree (org_id)")
3695 -> 0.0041s
3696-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_on_com_id ON branches USING btree (com_id)")
3697 -> 0.0044s
3698-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_builds_on_com_id ON builds USING btree (com_id)")
3699 -> 0.0040s
3700-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_jobs_on_com_id ON jobs USING btree (com_id)")
3701 -> 0.0041s
3702-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_commits_on_com_id ON commits USING btree (com_id)")
3703 -> 0.0033s
3704-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_crons_on_com_id ON crons USING btree (com_id)")
3705 -> 0.0032s
3706-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organizations_on_com_id ON organizations USING btree (com_id)")
3707 -> 0.0031s
3708-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_permissions_on_com_id ON permissions USING btree (com_id)")
3709 -> 0.0032s
3710-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_pull_requests_on_com_id ON pull_requests USING btree (com_id)")
3711 -> 0.0031s
3712-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_repositories_on_com_id ON repositories USING btree (com_id)")
3713 -> 0.0036s
3714-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_requests_on_com_id ON requests USING btree (com_id)")
3715 -> 0.0035s
3716-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_ssl_keys_on_com_id ON ssl_keys USING btree (com_id)")
3717 -> 0.0033s
3718-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_stages_on_com_id ON stages USING btree (com_id)")
3719 -> 0.0031s
3720-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_com_id ON tags USING btree (com_id)")
3721 -> 0.0031s
3722-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_com_id ON users USING btree (com_id)")
3723 -> 0.0034s
3724== 20180222000001 AddComIdAndOrgIdIndices: migrated (0.1077s) =================
3726== 20180222000002 AddMigrating: migrating =====================================
3727-- add_column(:repositories, :migrating, :boolean)
3728 -> 0.0007s
3729-- add_column(:repositories, :migrated_at, :timestamp, {:precision=>nil})
3730 -> 0.0005s
3731-- add_column(:organizations, :migrating, :boolean)
3732 -> 0.0004s
3733-- add_column(:organizations, :migrated_at, :timestamp, {:precision=>nil})
3734 -> 0.0004s
3735-- add_column(:users, :migrating, :boolean)
3736 -> 0.0004s
3737-- add_column(:users, :migrated_at, :timestamp, {:precision=>nil})
3738 -> 0.0004s
3739== 20180222000002 AddMigrating: migrated (0.0028s) ============================
3741== 20180222000003 DropFkRepositoriesCurrentBuildId: migrating =================
3742-- execute("ALTER TABLE repositories DROP CONSTRAINT fk_repositories_current_build_id")
3743 -> 0.0008s
3744== 20180222000003 DropFkRepositoriesCurrentBuildId: migrated (0.0008s) ========
3746== 20180222000009 CreateRepoCounts: migrating =================================
3747-- create_table(:repo_counts, {:id=>false})
3748 -> 0.0029s
3749-- add_index(:repo_counts, :repository_id)
3750 -> 0.0019s
3751== 20180222000009 CreateRepoCounts: migrated (0.0049s) ========================
3753== 20180222000012 CreateRepoCountsTriggers: migrating =========================
3754-- execute("create or replace function count_requests() returns trigger as $$\ndeclare\n c text;\n r record;\nbegin\n if tg_argv[0]::int > 0 then r := new; else r := old; end if;\n if r.repository_id is not null then\n insert into repo_counts(repository_id, requests)\n values(r.repository_id, tg_argv[0]::int);\n end if;\n return r;\nexception when others then\n get stacked diagnostics c = pg_exception_context;\n raise warning '% context: %s', sqlerrm, c;\n return r;\nend;\n$$\nlanguage plpgsql;\ndrop trigger if exists trg_count_request_inserted on requests;\ncreate trigger trg_count_request_inserted after insert on requests\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_requests(1);\ndrop trigger if exists trg_count_request_deleted on requests;\ncreate trigger trg_count_request_deleted after delete on requests\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_requests('-1');\n\ncreate or replace function count_commits() returns trigger as $$\ndeclare\n c text;\n r record;\nbegin\n if tg_argv[0]::int > 0 then r := new; else r := old; end if;\n if r.repository_id is not null then\n insert into repo_counts(repository_id, commits)\n values(r.repository_id, tg_argv[0]::int);\n end if;\n return r;\nexception when others then\n get stacked diagnostics c = pg_exception_context;\n raise warning '% context: %s', sqlerrm, c;\n return r;\nend;\n$$\nlanguage plpgsql;\ndrop trigger if exists trg_count_commit_inserted on commits;\ncreate trigger trg_count_commit_inserted after insert on commits\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_commits(1);\ndrop trigger if exists trg_count_commit_deleted on commits;\ncreate trigger trg_count_commit_deleted after delete on commits\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_commits('-1');\n\ncreate or replace function count_branches() returns trigger as $$\ndeclare\n c text;\n r record;\nbegin\n if tg_argv[0]::int > 0 then r := new; else r := old; end if;\n if r.repository_id is not null then\n insert into repo_counts(repository_id, branches)\n values(r.repository_id, tg_argv[0]::int);\n end if;\n return r;\nexception when others then\n get stacked diagnostics c = pg_exception_context;\n raise warning '% context: %s', sqlerrm, c;\n return r;\nend;\n$$\nlanguage plpgsql;\ndrop trigger if exists trg_count_branch_inserted on branches;\ncreate trigger trg_count_branch_inserted after insert on branches\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_branches(1);\ndrop trigger if exists trg_count_branch_deleted on branches;\ncreate trigger trg_count_branch_deleted after delete on branches\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_branches('-1');\n\ncreate or replace function count_pull_requests() returns trigger as $$\ndeclare\n c text;\n r record;\nbegin\n if tg_argv[0]::int > 0 then r := new; else r := old; end if;\n if r.repository_id is not null then\n insert into repo_counts(repository_id, pull_requests)\n values(r.repository_id, tg_argv[0]::int);\n end if;\n return r;\nexception when others then\n get stacked diagnostics c = pg_exception_context;\n raise warning '% context: %s', sqlerrm, c;\n return r;\nend;\n$$\nlanguage plpgsql;\ndrop trigger if exists trg_count_pull_request_inserted on pull_requests;\ncreate trigger trg_count_pull_request_inserted after insert on pull_requests\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_pull_requests(1);\ndrop trigger if exists trg_count_pull_request_deleted on pull_requests;\ncreate trigger trg_count_pull_request_deleted after delete on pull_requests\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_pull_requests('-1');\n\ncreate or replace function count_tags() returns trigger as $$\ndeclare\n c text;\n r record;\nbegin\n if tg_argv[0]::int > 0 then r := new; else r := old; end if;\n if r.repository_id is not null is not null then\n insert into repo_counts(repository_id, tags)\n values(r.repository_id, tg_argv[0]::int);\n end if;\n return r;\nexception when others then\n get stacked diagnostics c = pg_exception_context;\n raise warning '% context: %s', sqlerrm, c;\n return r;\nend;\n$$\nlanguage plpgsql;\ndrop trigger if exists trg_count_tag_inserted on tags;\ncreate trigger trg_count_tag_inserted after insert on tags\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_tags(1);\ndrop trigger if exists trg_count_tag_deleted on tags;\ncreate trigger trg_count_tag_deleted after delete on tags\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_tags('-1');\n\ncreate or replace function count_builds() returns trigger as $$\ndeclare\n c text;\n r record;\nbegin\n if tg_argv[0]::int > 0 then r := new; else r := old; end if;\n if r.repository_id is not null then\n insert into repo_counts(repository_id, builds)\n values(r.repository_id, tg_argv[0]::int);\n end if;\n return r;\nexception when others then\n get stacked diagnostics c = pg_exception_context;\n raise warning '% context: %s', sqlerrm, c;\n return r;\nend;\n$$\nlanguage plpgsql;\ndrop trigger if exists trg_count_build_inserted on builds;\ncreate trigger trg_count_build_inserted after insert on builds\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_builds(1);\ndrop trigger if exists trg_count_build_deleted on builds;\ncreate trigger trg_count_build_deleted after delete on builds\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_builds('-1');\n\n-- -- todo stages really should have a repository_id\n-- create or replace function count_stages() returns trigger as $$\n-- declare\n-- c text;\n-- r record;\n-- build record;\n-- begin\n-- if tg_argv[0]::int > 0 then r := new; else r := old; end if;\n-- select repository_id from builds as b where b.id = r.build_id into build;\n-- if build.repository_id is not null then\n-- insert into repo_counts(repository_id, stages)\n-- values(build.repository_id, tg_argv[0]::int);\n-- end if;\n-- return r;\n-- exception when others then\n-- get stacked diagnostics c = pg_exception_context;\n-- raise warning '% context: %s', sqlerrm, c;\n-- return r;\n-- end;\n-- $$\n-- language plpgsql;\n-- drop trigger if exists trg_count_stage_inserted on stages;\n-- create trigger trg_count_stage_inserted after insert on stages\n-- for each row when (now() > '2018-01-01 00:00:00') execute procedure count_stages(1);\n-- drop trigger if exists trg_count_stage_deleted on stages;\n-- create trigger trg_count_stage_deleted after delete on stages\n-- for each row when (now() > '2018-01-01 00:00:00') execute procedure count_stages('-1');\n\ncreate or replace function count_jobs() returns trigger as $$\ndeclare\n c text;\n r record;\nbegin\n if tg_argv[0]::int > 0 then r := new; else r := old; end if;\n if r.repository_id is not null then\n insert into repo_counts(repository_id, jobs)\n values(r.repository_id, tg_argv[0]::int);\n end if;\n return r;\nexception when others then\n get stacked diagnostics c = pg_exception_context;\n raise warning '% context: %s', sqlerrm, c;\n return r;\nend;\n$$\nlanguage plpgsql;\ndrop trigger if exists trg_count_job_inserted on jobs;\ncreate trigger trg_count_job_inserted after insert on jobs\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_jobs(1);\ndrop trigger if exists trg_count_job_deleted on jobs;\ncreate trigger trg_count_job_deleted after delete on jobs\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_jobs('-1');\n\ndrop function if exists count_requests(_start int, _end int);\ncreate or replace function count_requests(_start int, _end int)\nreturns table (repository_id int, requests bigint, range varchar) as $$\nbegin\n return query select t.repository_id, count(id) as requests, ('requests' || ':' || _start || ':' || _end)::varchar as range\n from requests as t\n where t.id between _start and _end and t.created_at <= '2018-01-01 00:00:00' and t.repository_id is not null\n group by t.repository_id;\nend;\n$$\nlanguage plpgsql;\n\ndrop function if exists count_commits(_start int, _end int);\ncreate or replace function count_commits(_start int, _end int)\nreturns table (repository_id int, commits bigint, range varchar) as $$\nbegin\n return query select r.id, count(t.id) as commits, ('commits' || ':' || _start || ':' || _end)::varchar as range\n from commits as t\n join repositories as r on t.repository_id = r.id\n where t.id between _start and _end and t.created_at <= '2018-01-01 00:00:00' and t.repository_id is not null\n group by r.id;\nend;\n$$\nlanguage plpgsql;\n\ndrop function if exists count_branches(_start int, _end int);\ncreate or replace function count_branches(_start int, _end int)\nreturns table (repository_id int, branches bigint, range varchar) as $$\nbegin\n return query select r.id, count(t.id) as branches, ('branches' || ':' || _start || ':' || _end)::varchar as range\n from branches as t\n join repositories as r on t.repository_id = r.id\n where t.id between _start and _end and t.created_at <= '2018-01-01 00:00:00' and t.repository_id is not null\n group by r.id;\nend;\n$$\nlanguage plpgsql;\n\ndrop function if exists count_pull_requests(_start int, _end int);\ncreate or replace function count_pull_requests(_start int, _end int)\nreturns table (repository_id int, pull_requests bigint, range varchar) as $$\nbegin\n return query select r.id, count(t.id) as pull_requests, ('pull_requests' || ':' || _start || ':' || _end)::varchar as range\n from pull_requests as t\n join repositories as r on t.repository_id = r.id\n where t.id between _start and _end and t.created_at <= '2018-01-01 00:00:00' and t.repository_id is not null\n group by r.id;\nend;\n$$\nlanguage plpgsql;\n\ndrop function if exists count_tags(_start int, _end int);\ncreate or replace function count_tags(_start int, _end int)\nreturns table (repository_id int, tags bigint, range varchar) as $$\nbegin\n return query select r.id, count(t.id) as tags, ('tags' || ':' || _start || ':' || _end)::varchar as range\n from tags as t\n join repositories as r on t.repository_id = r.id\n where t.id between _start and _end and t.created_at <= '2018-01-01 00:00:00' and t.repository_id is not null\n group by r.id;\nend;\n$$\nlanguage plpgsql;\n\ndrop function if exists count_builds(_start int, _end int);\ncreate or replace function count_builds(_start int, _end int)\nreturns table (repository_id int, builds bigint, range varchar) as $$\nbegin\n return query select t.repository_id, count(id) as builds, ('builds' || ':' || _start || ':' || _end)::varchar as range\n from builds as t\n where t.id between _start and _end and t.created_at <= '2018-01-01 00:00:00' and t.repository_id is not null\n group by t.repository_id;\nend;\n$$\nlanguage plpgsql;\n\n-- drop function if exists count_stages(_start int, _end int);\n-- create or replace function count_stages(_start int, _end int)\n-- returns table (repository_id int, stages bigint, range varchar) as $$\n-- begin\n-- return query select b.repository_id, count(t.id) as stages, ('stages' || ':' || _start || ':' || _end)::varchar as range\n-- from stages as t\n-- join builds as b on t.build_id = b.id\n-- where t.id between _start and _end and b.created_at <= '2018-01-01 00:00:00' and b.repository_id is not null\n-- group by b.repository_id;\n-- end;\n-- $$\n-- language plpgsql;\n\ndrop function if exists count_jobs(_start int, _end int);\ncreate or replace function count_jobs(_start int, _end int)\nreturns table (repository_id int, jobs bigint, range varchar) as $$\nbegin\n return query select t.repository_id, count(id) as jobs, ('jobs' || ':' || _start || ':' || _end)::varchar as range\n from jobs as t\n where t.id between _start and _end and t.created_at <= '2018-01-01 00:00:00' and t.repository_id is not null\n group by t.repository_id;\nend;\n$$\nlanguage plpgsql;\n\ndrop function if exists count_all_requests(_count int, _start int, _end int);\ncreate or replace function count_all_requests(_count int, _start int, _end int) returns boolean as $$\ndeclare max int;\nbegin\n select id + _count from requests order by id desc limit 1 into max;\n for i in _start.._end by _count loop\n if i > max then exit; end if;\n begin\n raise notice 'counting requests %', i;\n insert into repo_counts(repository_id, requests, range)\n select * from count_requests(i, i + _count - 1);\n exception when unique_violation then end;\n end loop;\n\n return true;\nend\n$$\nlanguage plpgsql;\n\ndrop function if exists count_all_commits(_count int, _start int, _end int);\ncreate or replace function count_all_commits(_count int, _start int, _end int) returns boolean as $$\ndeclare max int;\nbegin\n select id + _count from commits order by id desc limit 1 into max;\n\n for i in _start.._end by _count loop\n if i > max then exit; end if;\n begin\n raise notice 'counting commits %', i;\n insert into repo_counts(repository_id, commits, range)\n select * from count_commits(i, i + _count - 1);\n exception when unique_violation then end;\n end loop;\n\n return true;\nend\n$$\nlanguage plpgsql;\n\ndrop function if exists count_all_branches(_count int, _start int, _end int);\ncreate or replace function count_all_branches(_count int, _start int, _end int) returns boolean as $$\ndeclare max int;\nbegin\n select id + _count from branches order by id desc limit 1 into max;\n\n for i in _start.._end by _count loop\n if i > max then exit; end if;\n begin\n raise notice 'counting branches %', i;\n insert into repo_counts(repository_id, branches, range)\n select * from count_branches(i, i + _count - 1);\n exception when unique_violation then end;\n end loop;\n\n return true;\nend\n$$\nlanguage plpgsql;\n\ndrop function if exists count_all_pull_requests(_count int, _start int, _end int);\ncreate or replace function count_all_pull_requests(_count int, _start int, _end int) returns boolean as $$\ndeclare max int;\nbegin\n select id + _count from pull_requests order by id desc limit 1 into max;\n\n for i in _start.._end by _count loop\n if i > max then exit; end if;\n begin\n raise notice 'counting pull_requests %', i;\n insert into repo_counts(repository_id, pull_requests, range)\n select * from count_pull_requests(i, i + _count - 1);\n exception when unique_violation then end;\n end loop;\n\n return true;\nend\n$$\nlanguage plpgsql;\n\ndrop function if exists count_all_tags(_count int, _start int, _end int);\ncreate or replace function count_all_tags(_count int, _start int, _end int) returns boolean as $$\ndeclare max int;\nbegin\n select id + _count from tags order by id desc limit 1 into max;\n\n for i in _start.._end by _count loop\n if i > max then exit; end if;\n begin\n raise notice 'counting tags %', i;\n insert into repo_counts(repository_id, tags, range)\n select * from count_tags(i, i + _count - 1);\n exception when unique_violation then end;\n end loop;\n\n return true;\nend\n$$\nlanguage plpgsql;\n\ndrop function if exists count_all_builds(_count int, _start int, _end int);\ncreate or replace function count_all_builds(_count int, _start int, _end int) returns boolean as $$\ndeclare max int;\nbegin\n select id + _count from builds order by id desc limit 1 into max;\n\n for i in _start.._end by _count loop\n if i > max then exit; end if;\n begin\n raise notice 'counting builds %', i;\n insert into repo_counts(repository_id, builds, range)\n select * from count_builds(i, i + _count - 1);\n exception when unique_violation then end;\n end loop;\n\n return true;\nend\n$$\nlanguage plpgsql;\n\n-- drop function if exists count_all_stages(_count int, _start int, _end int);\n-- create or replace function count_all_stages(_count int, _start int, _end int) returns boolean as $$\n-- declare max int;\n-- begin\n-- select id + _count from stages order by id desc limit 1 into max;\n--\n-- for i in _start.._end by _count loop\n-- if i > max then exit; end if;\n-- begin\n-- raise notice 'counting stages %', i;\n-- insert into repo_counts(repository_id, stages, range)\n-- select * from count_stages(i, i + _count - 1);\n-- exception when unique_violation then end;\n-- end loop;\n--\n-- return true;\n-- end\n-- $$\n-- language plpgsql;\n\ndrop function if exists count_all_jobs(_count int, _start int, _end int);\ncreate or replace function count_all_jobs(_count int, _start int, _end int) returns boolean as $$\ndeclare max int;\nbegin\n select id + _count from jobs order by id desc limit 1 into max;\n\n for i in _start.._end by _count loop\n if i > max then exit; end if;\n begin\n raise notice 'counting jobs %', i;\n insert into repo_counts(repository_id, jobs, range)\n select * from count_jobs(i, i + _count - 1);\n exception when unique_violation then end;\n end loop;\n\n return true;\nend\n$$\nlanguage plpgsql;\n\n\ncreate or replace function agg_all_repo_counts()\nreturns boolean as $$\nbegin\n with src as (\n select cnt.repository_id\n from repo_counts cnt\n group by cnt.repository_id\n having count(1) > 1\n ),\n del as (\n delete from repo_counts cnt\n using src\n where cnt.repository_id = src.repository_id\n returning cnt.*\n ),\n agg as (\n select\n del.repository_id,\n sum(del.requests)::integer as requests,\n sum(del.commits)::integer as commits,\n sum(del.branches)::integer as branches,\n sum(del.pull_requests)::integer as pull_requests,\n sum(del.tags)::integer as tags,\n sum(del.builds)::integer as builds,\n -- sum(del.stages)::integer as stages,\n sum(del.jobs)::integer as jobs\n from del\n group by del.repository_id\n )\n insert into repo_counts(\n repository_id,\n requests,\n commits,\n branches,\n pull_requests,\n tags,\n builds,\n -- stages,\n jobs\n )\n select\n agg.repository_id,\n agg.requests,\n agg.commits,\n agg.branches,\n agg.pull_requests,\n agg.tags,\n agg.builds,\n -- agg.stages,\n agg.jobs\n from agg;\n\n return true;\nend;\n$$\nlanguage plpgsql;\n\ncreate or replace function agg_repo_counts(_repo_id int)\nreturns boolean as $$\nbegin\n with src as (\n select cnt.repository_id\n from repo_counts cnt\n where cnt.repository_id = _repo_id\n group by cnt.repository_id\n having count(1) > 1\n ),\n del as (\n delete from repo_counts cnt\n using src\n where cnt.repository_id = src.repository_id\n returning cnt.*\n ),\n agg as (\n select\n del.repository_id,\n sum(del.requests)::integer as requests,\n sum(del.commits)::integer as commits,\n sum(del.branches)::integer as branches,\n sum(del.pull_requests)::integer as pull_requests,\n sum(del.tags)::integer as tags,\n sum(del.builds)::integer as builds,\n -- sum(del.stages)::integer as stages,\n sum(del.jobs)::integer as jobs\n from del\n group by del.repository_id\n )\n insert into repo_counts(\n repository_id,\n requests,\n commits,\n branches,\n pull_requests,\n tags,\n builds,\n -- stages,\n jobs\n )\n select\n agg.repository_id,\n agg.requests,\n agg.commits,\n agg.branches,\n agg.pull_requests,\n agg.tags,\n agg.builds,\n -- agg.stages,\n agg.jobs\n from agg\n where agg.requests > 0 or agg.builds > 0 or agg.jobs > 0;\n\n return true;\nend;\n$$\nlanguage plpgsql;\n")
3755 -> 0.0211s
3756== 20180222000012 CreateRepoCountsTriggers: migrated (0.0216s) ================
3758== 20180222164100 DropAnnotations: migrating ==================================
3759-- drop_table(:annotations)
3760 -> 0.0026s
3761-- drop_table(:annotation_providers)
3762 -> 0.0025s
3763== 20180222164100 DropAnnotations: migrated (0.0053s) =========================
3765== 20180305143800 IndexBuildsOnRepositoryIdWhereStateNotFinished: migrating ===
3766-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_where_state_not_finished ON builds (repository_id) WHERE state IN ('created', 'queued', 'received', 'started');")
3767 -> 0.0044s
3768== 20180305143800 IndexBuildsOnRepositoryIdWhereStateNotFinished: migrated (0.0045s)
3770== 20180321102400 IndexJobsOnRepositoryIdWhereStateRunning: migrating =========
3771-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_repository_id_where_state_running ON jobs (repository_id) WHERE state IN ('queued', 'received', 'started')")
3772 -> 0.0042s
3773== 20180321102400 IndexJobsOnRepositoryIdWhereStateRunning: migrated (0.0043s)
3775== 20180330000000 CreateRequestPayloads: migrating ============================
3776-- create_table(:request_payloads, {:id=>:integer})
3777 -> 0.0092s
3778-- add_index(:request_payloads, :request_id)
3779 -> 0.0024s
3780-- add_index(:request_payloads, [:created_at, :archived])
3781 -> 0.0023s
3782== 20180330000000 CreateRequestPayloads: migrated (0.0142s) ===================
3784== 20180331000000 CreateConfigs: migrating ====================================
3785-- create_table(:request_configs, {:id=>:integer})
3786 -> 0.0077s
3787-- create_table(:build_configs, {:id=>:integer})
3788 -> 0.0057s
3789-- create_table(:job_configs, {:id=>:integer})
3790 -> 0.0052s
3791-- add_index(:request_configs, [:repository_id, :key])
3792 -> 0.0022s
3793-- add_index(:build_configs, [:repository_id, :key])
3794 -> 0.0021s
3795-- add_index(:job_configs, [:repository_id, :key])
3796 -> 0.0022s
3797-- add_column(:requests, :config_id, :integer)
3798 -> 0.0007s
3799-- add_column(:builds, :config_id, :integer)
3800 -> 0.0006s
3801-- add_column(:jobs, :config_id, :integer)
3802 -> 0.0006s
3803== 20180331000000 CreateConfigs: migrated (0.0278s) ===========================
3805== 20180404000001 CreateInstallations: migrating ==============================
3806-- create_table(:installations, {:id=>:integer})
3807 -> 0.0111s
3808-- change_table(:repositories)
3809 -> 0.0015s
3810== 20180404000001 CreateInstallations: migrated (0.0128s) =====================
3812== 20180410000000 RequestsDropPayload: migrating ==============================
3813-- remove_column(:requests, :payload, :text)
3814 -> 0.0010s
3815== 20180410000000 RequestsDropPayload: migrated (0.0011s) =====================
3817== 20180413000000 IndexBranchesOnRepositoryIdAndNameAndId: migrating ==========
3818-- execute("CREATE INDEX CONCURRENTLY index_branches_on_repository_id_and_name_and_id ON branches (repository_id, name, id)")
3819 -> 0.0039s
3820-- execute("DROP INDEX CONCURRENTLY index_branches_on_repository_id_and_name")
3821 -> 0.0021s
3822== 20180413000000 IndexBranchesOnRepositoryIdAndNameAndId: migrated (0.0062s) =
3824== 20180417000000 IndexBuildsOrganizationsUsersOnUpdatedAt: migrating =========
3825-- execute("CREATE INDEX CONCURRENTLY index_builds_on_updated_at ON builds (updated_at)")
3826 -> 0.0041s
3827-- execute("CREATE INDEX CONCURRENTLY index_users_on_updated_at ON users (updated_at)")
3828 -> 0.0039s
3829-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_updated_at ON repositories (updated_at)")
3830 -> 0.0037s
3831-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_updated_at ON organizations (updated_at)")
3832 -> 0.0039s
3833== 20180417000000 IndexBuildsOrganizationsUsersOnUpdatedAt: migrated (0.0159s)
3835== 20180420000000 ConstraintsAndIndexesForGhApps: migrating ===================
3836-- execute("CREATE UNIQUE INDEX CONCURRENTLY github_id_installations_idx ON installations (github_id)")
3837 -> 0.0038s
3838-- execute("CREATE INDEX CONCURRENTLY managed_repositories_idx ON repositories (managed_by_installation_at)")
3839 -> 0.0037s
3840-- execute("CREATE UNIQUE INDEX CONCURRENTLY owner_installations_idx ON installations (owner_id, owner_type) WHERE removed_by_id IS NULL")
3841 -> 0.0038s
3842== 20180420000000 ConstraintsAndIndexesForGhApps: migrated (0.0115s) ==========
3844== 20180425000000 IndexActiveOnOrg: migrating =================================
3845-- execute("CREATE INDEX CONCURRENTLY index_active_on_org ON repositories (active_on_org)")
3846 -> 0.0039s
3847== 20180425000000 IndexActiveOnOrg: migrated (0.0040s) ========================
3849== 20180425100000 AddRemovedAtOnInstallations: migrating ======================
3850-- add_column(:installations, :removed_at, :timestamp, {:precision=>nil})
3851 -> 0.0010s
3852== 20180425100000 AddRemovedAtOnInstallations: migrated (0.0011s) =============
3854== 20180429000000 IndexRepositoriesOnOwnerNameAndName: migrating ==============
3855-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_name_and_name ON repositories (owner_name, name) WHERE invalidated_at IS NULL")
3856 -> 0.0040s
3857== 20180429000000 IndexRepositoriesOnOwnerNameAndName: migrated (0.0041s) =====
3859== 20180501000000 IndexJobsOnOwnerWhereStateRunning: migrating ================
3860-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_where_state_running ON jobs (owner_id, owner_type) WHERE state IN ('queued', 'received', 'started')")
3861 -> 0.0041s
3862== 20180501000000 IndexJobsOnOwnerWhereStateRunning: migrated (0.0042s) =======
3864== 20180517000000 IndexRequestsConfigId: migrating ============================
3865-- execute("CREATE INDEX CONCURRENTLY index_requests_on_config_id ON requests (config_id)")
3866 -> 0.0037s
3867== 20180517000000 IndexRequestsConfigId: migrated (0.0038s) ===================
3869== 20180517000001 IndexBuildsConfigId: migrating ==============================
3870-- execute("CREATE INDEX CONCURRENTLY index_builds_on_config_id ON requests (config_id)")
3871 -> 0.0039s
3872== 20180517000001 IndexBuildsConfigId: migrated (0.0040s) =====================
3874== 20180517000002 IndexJobsConfigId: migrating ================================
3875-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_config_id ON requests (config_id)")
3876 -> 0.0084s
3877== 20180517000002 IndexJobsConfigId: migrated (0.0085s) =======================
3879== 20180518000000 IndexBuildsOnMultiple: migrating ============================
3880-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_builds_on_repo_branch_event_type_and_private ON builds (repository_id, branch, event_type, private)")
3881 -> 0.0062s
3882== 20180518000000 IndexBuildsOnMultiple: migrated (0.0063s) ===================
3884== 20180522000000 AddActiveFlagToCrons: migrating =============================
3885-- change_table(:crons)
3886 -> 0.0045s
3887-- add_index(:crons, :next_run, {:where=>"(active IS TRUE)", :algorithm=>:concurrently})
3888 -> 0.0046s
3889== 20180522000000 AddActiveFlagToCrons: migrated (0.0093s) ====================
3891== 20180531000000 CreateRequestYamlConfigs: migrating =========================
3892-- create_table(:request_yaml_configs, {:id=>:integer})
3893 -> 0.0095s
3894-- add_index(:request_yaml_configs, [:repository_id, :key])
3895 -> 0.0030s
3896-- add_column(:requests, :yaml_config_id, :integer)
3897 -> 0.0013s
3898== 20180531000000 CreateRequestYamlConfigs: migrated (0.0141s) ================
3900== 20180606000000 IndexCommitsOnRepositoryId: migrating =======================
3901-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_commits_on_repository_id ON commits (repository_id)")
3902 -> 0.0044s
3903== 20180606000000 IndexCommitsOnRepositoryId: migrated (0.0045s) ==============
3905== 20180606000001 IndexJobsOnRepositoryId: migrating ==========================
3906-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_jobs_on_repository_id ON jobs (repository_id)")
3907 -> 0.0041s
3908== 20180606000001 IndexJobsOnRepositoryId: migrated (0.0043s) =================
3910== 20180614000000 DropRequestsConfig: migrating ===============================
3911-- remove_column(:requests, :config)
3912 -> 0.0024s
3913== 20180614000000 DropRequestsConfig: migrated (0.0029s) ======================
3915== 20180614000001 DropBuildsConfig: migrating =================================
3916-- remove_column(:builds, :config)
3917 -> 0.0010s
3918== 20180614000001 DropBuildsConfig: migrated (0.0012s) ========================
3920== 20180614000002 DropJobsConfig: migrating ===================================
3921-- remove_column(:jobs, :config)
3922 -> 0.0010s
3923== 20180614000002 DropJobsConfig: migrated (0.0011s) ==========================
3925== 20180620000000 IndexBuildsOnRepositoryIdEventTypeId: migrating =============
3926-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_builds_on_repository_id_event_type_id ON builds (repository_id, event_type, id DESC)")
3927 -> 0.0055s
3928== 20180620000000 IndexBuildsOnRepositoryIdEventTypeId: migrated (0.0056s) ====
3930== 20180725000000 CreateCancellations: migrating ==============================
3931-- create_table(:cancellations, {:id=>:integer})
3932 -> 0.0121s
3933== 20180725000000 CreateCancellations: migrated (0.0122s) =====================
3935== 20180726000000 CommitsIndexAuthorEmail: migrating ==========================
3936-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_commits_on_author_email ON commits (author_email)")
3937 -> 0.0043s
3938== 20180726000000 CommitsIndexAuthorEmail: migrated (0.0044s) =================
3940== 20180726000001 CommitsIndexCommitterEmail: migrating =======================
3941-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_commits_on_committer_email ON commits (committer_email)")
3942 -> 0.0046s
3943== 20180726000001 CommitsIndexCommitterEmail: migrated (0.0048s) ==============
3945== 20180801000001 UsersAddRedactedAt: migrating ===============================
3946-- change_table(:users)
3947 -> 0.0016s
3948== 20180801000001 UsersAddRedactedAt: migrated (0.0017s) ======================
3950== 20180822000000 CreateEmailUnsubscribes: migrating ==========================
3951-- create_table(:email_unsubscribes, {:id=>:integer})
3952 -> 0.0125s
3953== 20180822000000 CreateEmailUnsubscribes: migrated (0.0126s) =================
3955== 20180823000000 AddPreferences: migrating ===================================
3956-- change_table(:users)
3957 -> 0.0022s
3958== 20180823000000 AddPreferences: migrated (0.0023s) ==========================
3960== 20180828000000 ChangePreferencesDefault: migrating =========================
3961-- change_column_default(:users, :preferences, {})
3962 -> 0.0067s
3963== 20180828000000 ChangePreferencesDefault: migrated (0.0069s) ================
3965== 20180829000000 MakeEmailUnsubscribesIdBigint: migrating ====================
3966-- change_column(:email_unsubscribes, :id, :bigint)
3967 -> 0.0096s
3968== 20180829000000 MakeEmailUnsubscribesIdBigint: migrated (0.0097s) ===========
3970== 20180830000001 JobsAddRestartedAt: migrating ===============================
3971-- change_table(:jobs)
3972 -> 0.0064s
3973== 20180830000001 JobsAddRestartedAt: migrated (0.0064s) ======================
3975== 20180830000002 BuildsAddRestartedAt: migrating =============================
3976-- change_table(:builds)
3977 -> 0.0031s
3978== 20180830000002 BuildsAddRestartedAt: migrated (0.0036s) ====================
3980== 20180830000003 JobVersionsCreate: migrating ================================
3981-- create_table(:job_versions, {:id=>:integer})
3982 -> 0.0083s
3983== 20180830000003 JobVersionsCreate: migrated (0.0086s) =======================
3985== 20180903000000 JobConfigsIndexConfigResourcesGpu: migrating ================
3986-- execute("CREATE OR REPLACE FUNCTION is_json(text) RETURNS boolean LANGUAGE plpgsql immutable AS $$\n BEGIN\n perform $1::json;\n return true;\n EXCEPTION WHEN invalid_text_representation THEN\n return false;\n END\n$$;\n")
3987 -> 0.0012s
3988-- execute("CREATE INDEX CONCURRENTLY index_job_configs_on_config_resources_gpu ON job_configs (((config ->> 'resources')::jsonb ->> 'gpu')) WHERE is_json((config ->> 'resources')::text) AND ((config ->> 'resources')::jsonb ->> 'gpu') IS NOT NULL;\n")
3989 -> 0.0046s
3990== 20180903000000 JobConfigsIndexConfigResourcesGpu: migrated (0.0072s) =======
3992== 20180903000001 FixIndexesOnBuildsAndJobsConfigId: migrating ================
3993-- execute("DROP INDEX index_builds_on_config_id")
3994 -> 0.0014s
3995-- execute("CREATE INDEX CONCURRENTLY index_builds_on_config_id ON builds (config_id)")
3996 -> 0.0040s
3997-- execute("DROP INDEX index_jobs_on_config_id")
3998 -> 0.0012s
3999-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_config_id ON jobs (config_id)")
4000 -> 0.0036s
4001== 20180903000001 FixIndexesOnBuildsAndJobsConfigId: migrated (0.0105s) =======
4003== 20180904000001 CreateJobConfigsGpu: migrating ==============================
4004-- execute("CREATE MATERIALIZED VIEW job_configs_gpu AS\nSELECT id FROM job_configs WHERE\n is_json((config ->> 'resources')::text) AND\n ((config ->> 'resources')::jsonb ->> 'gpu') IS NOT NULL;\n")
4005 -> 0.0024s
4006== 20180904000001 CreateJobConfigsGpu: migrated (0.0024s) =====================
4008== 20180906000000 AddIndexUsersPreferencesBuildEmails: migrating ==============
4009-- execute("CREATE INDEX CONCURRENTLY user_preferences_build_emails_false ON users (id) WHERE preferences->>'build_emails' = 'false';\n")
4010 -> 0.0042s
4011== 20180906000000 AddIndexUsersPreferencesBuildEmails: migrated (0.0043s) =====
4013== 20181002115306 DeleteDuplicateRecordsFromMemberships: migrating ============
4014-- execute("DELETE FROM memberships WHERE id in (\n\tSELECT a.id FROM\n\t\t(SELECT m.id, row_number() OVER (ORDER BY m.id) as rnum\n FROM (SELECT user_id, organization_id\n FROM memberships\n GROUP BY (user_id, organization_id)\n HAVING count(*) > 1) t\n INNER JOIN memberships m ON m.user_id = t.user_id AND m.organization_id = t.organization_id) AS a\n WHERE mod(a.rnum, 2) = 0);\n")
4015 -> 0.0015s
4016== 20181002115306 DeleteDuplicateRecordsFromMemberships: migrated (0.0016s) ===
4018== 20181002115307 AddConstraintOnOrganizationAndUserToMemberships: migrating ==
4019-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organization_id_and_user_id_on_memberships ON memberships USING btree (organization_id, user_id);\n")
4020 -> 0.0035s
4021== 20181002115307 AddConstraintOnOrganizationAndUserToMemberships: migrated (0.0036s)
4023== 20181018000000 IndexBuildsOnCreatedAt: migrating ===========================
4024-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_builds_on_created_at ON builds (created_at)")
4025 -> 0.0034s
4026== 20181018000000 IndexBuildsOnCreatedAt: migrated (0.0035s) ==================
4028== 20181029120000 AddMigrationStatusColumnToRepositories: migrating ===========
4029-- add_column(:repositories, :migration_status, :string)
4030 -> 0.0007s
4031== 20181029120000 AddMigrationStatusColumnToRepositories: migrated (0.0008s) ==
4033== 20181113120000 AddGithubGuidColumnToRequests: migrating ====================
4034-- add_column(:requests, :github_guid, :text)
4035 -> 0.0009s
4036-- add_index(:requests, :github_guid, {:algorithm=>:concurrently, :unique=>true})
4037 -> 0.0034s
4038== 20181113120000 AddGithubGuidColumnToRequests: migrated (0.0044s) ===========
4040== 20181116800000 AddConstraintsToMultipleTables: migrating ===================
4041-- execute("ALTER TABLE repositories ADD CONSTRAINT fk_repositories_on_current_build_id FOREIGN KEY (current_build_id) REFERENCES builds(id) ON DELETE SET NULL NOT VALID")
4042 -> 0.0009s
4043-- execute("ALTER TABLE repositories ADD CONSTRAINT fk_repositories_on_last_build_id FOREIGN KEY (last_build_id) REFERENCES builds(id) ON DELETE SET NULL NOT VALID")
4044 -> 0.0006s
4045-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
4046 -> 0.0006s
4047-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) NOT VALID")
4048 -> 0.0006s
4049-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_request_id FOREIGN KEY (request_id) REFERENCES requests(id) NOT VALID")
4050 -> 0.0006s
4051-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_pull_request_id FOREIGN KEY (pull_request_id) REFERENCES pull_requests(id) NOT VALID")
4052 -> 0.0006s
4053-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")
4054 -> 0.0005s
4055-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) NOT VALID")
4056 -> 0.0006s
4057-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_config_id FOREIGN KEY (config_id) REFERENCES build_configs(id) NOT VALID")
4058 -> 0.0005s
4059-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
4060 -> 0.0006s
4061-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) NOT VALID")
4062 -> 0.0058s
4063-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_stage_id FOREIGN KEY (stage_id) REFERENCES stages(id) NOT VALID")
4064 -> 0.0027s
4065-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_config_id FOREIGN KEY (config_id) REFERENCES job_configs(id) NOT VALID")
4066 -> 0.0046s
4067-- execute("ALTER TABLE branches ADD CONSTRAINT fk_branches_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
4068 -> 0.0007s
4069-- execute("ALTER TABLE branches ADD CONSTRAINT fk_branches_on_last_build_id FOREIGN KEY (last_build_id) REFERENCES builds(id) ON DELETE SET NULL NOT VALID")
4070 -> 0.0006s
4071-- execute("ALTER TABLE tags ADD CONSTRAINT fk_tags_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
4072 -> 0.0016s
4073-- execute("ALTER TABLE tags ADD CONSTRAINT fk_tags_on_last_build_id FOREIGN KEY (last_build_id) REFERENCES builds(id) ON DELETE SET NULL NOT VALID")
4074 -> 0.0010s
4075-- execute("ALTER TABLE commits ADD CONSTRAINT fk_commits_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
4076 -> 0.0012s
4077-- execute("ALTER TABLE commits ADD CONSTRAINT fk_commits_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")
4078 -> 0.0009s
4079-- execute("ALTER TABLE commits ADD CONSTRAINT fk_commits_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) NOT VALID")
4080 -> 0.0007s
4081-- execute("ALTER TABLE crons ADD CONSTRAINT fk_crons_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")
4082 -> 0.0011s
4083-- execute("ALTER TABLE job_configs ADD CONSTRAINT fk_job_configs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
4084 -> 0.0008s
4085-- execute("ALTER TABLE build_configs ADD CONSTRAINT fk_build_configs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
4086 -> 0.0008s
4087-- execute("ALTER TABLE pull_requests ADD CONSTRAINT fk_pull_requests_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
4088 -> 0.0009s
4089-- execute("ALTER TABLE ssl_keys ADD CONSTRAINT fk_ssl_keys_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
4090 -> 0.0008s
4091-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) NOT VALID")
4092 -> 0.0008s
4093-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_pull_request_id FOREIGN KEY (pull_request_id) REFERENCES pull_requests(id) NOT VALID")
4094 -> 0.0007s
4095-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")
4096 -> 0.0008s
4097-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) NOT VALID")
4098 -> 0.0008s
4099-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_config_id FOREIGN KEY (config_id) REFERENCES request_configs(id) NOT VALID")
4100 -> 0.0010s
4101-- execute("ALTER TABLE stages ADD CONSTRAINT fk_stages_on_build_id FOREIGN KEY (build_id) REFERENCES builds(id) NOT VALID")
4102 -> 0.0008s
4103== 20181116800000 AddConstraintsToMultipleTables: migrated (0.0368s) ==========
4105== 20181116800001 ValidateConstraints: migrating ==============================
4106-- execute("ALTER TABLE repositories VALIDATE CONSTRAINT fk_repositories_on_current_build_id")
4107 -> 0.0025s
4108-- execute("ALTER TABLE repositories VALIDATE CONSTRAINT fk_repositories_on_last_build_id")
4109 -> 0.0013s
4110-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_repository_id")
4111 -> 0.0011s
4112-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_commit_id")
4113 -> 0.0013s
4114-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_request_id")
4115 -> 0.0014s
4116-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_pull_request_id")
4117 -> 0.0011s
4118-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_branch_id")
4119 -> 0.0012s
4120-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_tag_id")
4121 -> 0.0012s
4122-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_config_id")
4123 -> 0.0011s
4124-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_repository_id")
4125 -> 0.0014s
4126-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_commit_id")
4127 -> 0.0008s
4128-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_stage_id")
4129 -> 0.0010s
4130-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_config_id")
4131 -> 0.0009s
4132-- execute("ALTER TABLE branches VALIDATE CONSTRAINT fk_branches_on_repository_id")
4133 -> 0.0009s
4134-- execute("ALTER TABLE branches VALIDATE CONSTRAINT fk_branches_on_last_build_id")
4135 -> 0.0009s
4136-- execute("ALTER TABLE tags VALIDATE CONSTRAINT fk_tags_on_repository_id")
4137 -> 0.0008s
4138-- execute("ALTER TABLE tags VALIDATE CONSTRAINT fk_tags_on_last_build_id")
4139 -> 0.0008s
4140-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_commits_on_repository_id")
4141 -> 0.0008s
4142-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_commits_on_branch_id")
4143 -> 0.0008s
4144-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_commits_on_tag_id")
4145 -> 0.0007s
4146-- execute("ALTER TABLE crons VALIDATE CONSTRAINT fk_crons_on_branch_id")
4147 -> 0.0009s
4148-- execute("ALTER TABLE job_configs VALIDATE CONSTRAINT fk_job_configs_on_repository_id")
4149 -> 0.0010s
4150-- execute("ALTER TABLE build_configs VALIDATE CONSTRAINT fk_build_configs_on_repository_id")
4151 -> 0.0007s
4152-- execute("ALTER TABLE pull_requests VALIDATE CONSTRAINT fk_pull_requests_on_repository_id")
4153 -> 0.0008s
4154-- execute("ALTER TABLE ssl_keys VALIDATE CONSTRAINT fk_ssl_keys_on_repository_id")
4155 -> 0.0010s
4156-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_commit_id")
4157 -> 0.0089s
4158-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_pull_request_id")
4159 -> 0.0010s
4160-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_branch_id")
4161 -> 0.0008s
4162-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_tag_id")
4163 -> 0.0007s
4164-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_config_id")
4165 -> 0.0010s
4166-- execute("ALTER TABLE stages VALIDATE CONSTRAINT fk_stages_on_build_id")
4167 -> 0.0009s
4168== 20181116800001 ValidateConstraints: migrated (0.0406s) =====================
4170== 20181126080000 AddIndexesForForeignKeys: migrating =========================
4171-- index_exists?(:builds, :branch_id)
4172 -> 0.0101s
4173-- add_index(:builds, :branch_id, {:algorithm=>:concurrently})
4174 -> 0.0049s
4175-- index_exists?(:builds, :commit_id)
4176 -> 0.0100s
4177-- add_index(:builds, :commit_id, {:algorithm=>:concurrently})
4178 -> 0.0051s
4179-- index_exists?(:builds, :pull_request_id)
4180 -> 0.0157s
4181-- add_index(:builds, :pull_request_id, {:algorithm=>:concurrently})
4182 -> 0.0047s
4183-- index_exists?(:builds, :tag_id)
4184 -> 0.0141s
4185-- add_index(:builds, :tag_id, {:algorithm=>:concurrently})
4186 -> 0.0063s
4187-- index_exists?(:jobs, :commit_id)
4188 -> 0.0113s
4189-- add_index(:jobs, :commit_id, {:algorithm=>:concurrently})
4190 -> 0.0048s
4191-- index_exists?(:branches, :last_build_id)
4192 -> 0.0024s
4193-- add_index(:branches, :last_build_id, {:algorithm=>:concurrently})
4194 -> 0.0036s
4195-- index_exists?(:tags, :repository_id)
4196 -> 0.0018s
4197-- add_index(:tags, :repository_id, {:algorithm=>:concurrently})
4198 -> 0.0031s
4199-- index_exists?(:tags, :last_build_id)
4200 -> 0.0024s
4201-- add_index(:tags, :last_build_id, {:algorithm=>:concurrently})
4202 -> 0.0037s
4203-- index_exists?(:commits, :tag_id)
4204 -> 0.0029s
4205-- add_index(:commits, :tag_id, {:algorithm=>:concurrently})
4206 -> 0.0034s
4207-- index_exists?(:commits, :branch_id)
4208 -> 0.0029s
4209-- add_index(:commits, :branch_id, {:algorithm=>:concurrently})
4210 -> 0.0037s
4211-- index_exists?(:job_configs, :repository_id)
4212 -> 0.0015s
4213-- add_index(:job_configs, :repository_id, {:algorithm=>:concurrently})
4214 -> 0.0034s
4215-- index_exists?(:build_configs, :repository_id)
4216 -> 0.0013s
4217-- add_index(:build_configs, :repository_id, {:algorithm=>:concurrently})
4218 -> 0.0038s
4219-- index_exists?(:pull_requests, :repository_id)
4220 -> 0.0020s
4221-- add_index(:pull_requests, :repository_id, {:algorithm=>:concurrently})
4222 -> 0.0039s
4223-- index_exists?(:requests, :pull_request_id)
4224 -> 0.0150s
4225-- add_index(:requests, :pull_request_id, {:algorithm=>:concurrently})
4226 -> 0.0049s
4227-- index_exists?(:requests, :tag_id)
4228 -> 0.0065s
4229-- add_index(:requests, :tag_id, {:algorithm=>:concurrently})
4230 -> 0.0047s
4231-- index_exists?(:requests, :branch_id)
4232 -> 0.0072s
4233-- add_index(:requests, :branch_id, {:algorithm=>:concurrently})
4234 -> 0.0050s
4235-- index_exists?(:repositories, :current_build_id)
4236 -> 0.0090s
4237-- add_index(:repositories, :current_build_id, {:algorithm=>:concurrently})
4238 -> 0.0054s
4239-- index_exists?(:repositories, :last_build_id)
4240 -> 0.0101s
4241-- add_index(:repositories, :last_build_id, {:algorithm=>:concurrently})
4242 -> 0.0050s
4243-- index_exists?(:crons, :branch_id)
4244 -> 0.0044s
4245-- add_index(:crons, :branch_id, {:algorithm=>:concurrently})
4246 -> 0.0050s
4247== 20181126080000 AddIndexesForForeignKeys: migrated (0.2175s) ================
4249== 20181128120000 AddUniqueIndexToBranchesOnRepositoryIdAndName: migrating ====
4250-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_on_repository_id_and_name ON branches(repository_id, name)")
4251 -> 0.0049s
4252== 20181128120000 AddUniqueIndexToBranchesOnRepositoryIdAndName: migrated (0.0050s)
4254== 20181203075818 AddUniqueNameColumnToBranches: migrating ====================
4255-- add_column(:branches, :unique_name, :text)
4256 -> 0.0050s
4257== 20181203075818 AddUniqueNameColumnToBranches: migrated (0.0050s) ===========
4259== 20181203075819 AddSetUniqueNameTriggerToBranches: migrating ================
4260-- execute("DROP TRIGGER IF EXISTS set_unique_name_on_branches ON branches;\nDROP FUNCTION IF EXISTS set_unique_name();\nCREATE FUNCTION set_unique_name() RETURNS trigger AS $$\nDECLARE\n disable boolean;\nBEGIN\n disable := 'f';\n IF TG_OP = 'INSERT' OR TG_OP = 'UPDATE' THEN\n BEGIN\n disable := current_setting('set_unique_name_on_branches.disable');\n EXCEPTION\n WHEN others THEN\n set set_unique_name_on_branches.disable = 'f';\n END;\n\n IF NOT disable THEN\n NEW.unique_name := NEW.name;\n END IF;\n END IF;\n RETURN NEW;\nEND;\n$$ LANGUAGE plpgsql;\n\nCREATE TRIGGER set_unique_name_on_branches\nBEFORE INSERT OR UPDATE ON branches\nFOR EACH ROW\nEXECUTE PROCEDURE set_unique_name();\n")
4261 -> 0.0012s
4262== 20181203075819 AddSetUniqueNameTriggerToBranches: migrated (0.0013s) =======
4264== 20181203080356 CreateIndexOnBranchesUniqueNameAndRepositoryId: migrating ===
4265-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_repository_id_unique_name ON branches(repository_id, unique_name) WHERE unique_name IS NOT NULL")
4266 -> 0.0043s
4267== 20181203080356 CreateIndexOnBranchesUniqueNameAndRepositoryId: migrated (0.0043s)
4269== 20181205152712 AddUniqueIndexToCronsOnBranchId: migrating ==================
4270-- execute("DROP INDEX CONCURRENTLY index_crons_on_branch_id")
4271 -> 0.0021s
4272-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_crons_on_branch_id ON crons(branch_id)")
4273 -> 0.0033s
4274== 20181205152712 AddUniqueIndexToCronsOnBranchId: migrated (0.0054s) =========
4276== 20190102000000 AddOrganizationPreferences: migrating =======================
4277-- change_table(:organizations)
4278 -> 0.0012s
4279== 20190102000000 AddOrganizationPreferences: migrated (0.0012s) ==============
4281== 20190102000001 ChangeOrganizationPreferencesDefault: migrating =============
4282-- change_column_default(:organizations, :preferences, {})
4283 -> 0.0031s
4284== 20190102000001 ChangeOrganizationPreferencesDefault: migrated (0.0032s) ====
4286== 20190109000000 CreateBetaMigrationRequestTable: migrating ==================
4287-- create_table(:beta_migration_requests, {:id=>:integer})
4288 -> 0.0080s
4289-- add_index(:beta_migration_requests, [:owner_type, :owner_id])
4290 -> 0.0027s
4291== 20190109000000 CreateBetaMigrationRequestTable: migrated (0.0108s) =========
4293== 20190118000000 AddBetaMigrationRequestColumnToOrganizations: migrating =====
4294-- add_column(:organizations, :beta_migration_request_id, :integer)
4295 -> 0.0010s
4296== 20190118000000 AddBetaMigrationRequestColumnToOrganizations: migrated (0.0011s)
4298== 20190204000000 MakeSubscriptionOwnerNotNullable: migrating =================
4299-- change_column_null(:subscriptions, :owner_type, false)
4300 -> 0.0009s
4301-- change_column_null(:subscriptions, :owner_id, false)
4302 -> 0.0004s
4303== 20190204000000 MakeSubscriptionOwnerNotNullable: migrated (0.0014s) ========
4305== 20190313000000 RequestRawConfigsCreate: migrating ==========================
4306-- create_table(:request_raw_configs, {:id=>:integer})
4307 -> 0.0053s
4308-- add_index(:request_raw_configs, [:repository_id, :key])
4309 -> 0.0021s
4310-- create_table(:request_raw_configurations, {:id=>:integer})
4311 -> 0.0053s
4312-- add_index(:request_raw_configurations, :request_id)
4313 -> 0.0021s
4314-- add_index(:request_raw_configurations, :request_raw_config_id)
4315 -> 0.0020s
4316== 20190313000000 RequestRawConfigsCreate: migrated (0.0170s) =================
4318== 20190329093854 CreateGatekeeperWorkers: migrating ==========================
4319-- create_table(:gatekeeper_workers)
4320 -> 0.0032s
4321-- execute("INSERT INTO gatekeeper_workers(id) SELECT generate_series(1,200) as id;")
4322 -> 0.0007s
4323== 20190329093854 CreateGatekeeperWorkers: migrated (0.0040s) =================
4325== 20190409133118 AddUniqueNumberColumnToBuilds: migrating ====================
4326-- add_column(:builds, :unique_number, :int)
4327 -> 0.0008s
4328== 20190409133118 AddUniqueNumberColumnToBuilds: migrated (0.0008s) ===========
4330== 20190409133320 AddSetUniqueNumberTriggerToBuilds: migrating ================
4331-- execute("DROP TRIGGER IF EXISTS set_unique_number_on_builds ON builds;\nDROP FUNCTION IF EXISTS set_unique_number();\nCREATE FUNCTION set_unique_number() RETURNS trigger AS $$\nDECLARE\n disable boolean;\nBEGIN\n disable := 'f';\n IF TG_OP = 'INSERT' OR TG_OP = 'UPDATE' THEN\n BEGIN\n disable := current_setting('set_unique_number_on_builds.disable');\n EXCEPTION\n WHEN others THEN\n set set_unique_number_on_builds.disable = 'f';\n END;\n\n IF NOT disable THEN\n IF NEW.unique_number IS NULL OR NEW.unique_number > 0 THEN\n NEW.unique_number := NEW.number;\n END IF;\n END IF;\n END IF;\n RETURN NEW;\nEND;\n$$ LANGUAGE plpgsql;\n\nCREATE TRIGGER set_unique_number_on_builds\nBEFORE INSERT OR UPDATE ON builds\nFOR EACH ROW\nEXECUTE PROCEDURE set_unique_number();\n")
4332 -> 0.0009s
4333== 20190409133320 AddSetUniqueNumberTriggerToBuilds: migrated (0.0010s) =======
4335== 20190409133444 CreateUniqueIndexOnRepositoryIdAndNumberOnBuilds: migrating =
4336-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_builds_repository_id_unique_number ON builds(repository_id, unique_number) WHERE unique_number IS NOT NULL")
4337 -> 0.0039s
4338== 20190409133444 CreateUniqueIndexOnRepositoryIdAndNumberOnBuilds: migrated (0.0039s)
4340== 20190410121039 MakeSetUniqueNumberTriggerRunOnlyOnInsert: migrating ========
4341-- execute(" DROP TRIGGER set_unique_number_on_builds ON builds;\n CREATE TRIGGER set_unique_number_on_builds\n BEFORE INSERT ON builds\n FOR EACH ROW\n EXECUTE PROCEDURE set_unique_number();\n")
4342 -> 0.0008s
4343== 20190410121039 MakeSetUniqueNumberTriggerRunOnlyOnInsert: migrated (0.0008s)
4345== 20190416071629 RemoveUniqueNameFromBranches: migrating =====================
4346-- execute("drop index concurrently index_branches_repository_id_unique_name;")
4347 -> 0.0022s
4348-- execute("DROP TRIGGER IF EXISTS set_unique_name_on_branches ON branches;\nDROP FUNCTION IF EXISTS set_unique_name();\n\n")
4349 -> 0.0008s
4350-- remove_column(:branches, :unique_name)
4351 -> 0.0009s
4352== 20190416071629 RemoveUniqueNameFromBranches: migrated (0.0040s) ============
4354== 20190417072423 AlterBuildsUniqueNumberIndex: migrating =====================
4355-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_builds_repository_id_unique_number_new ON builds(repository_id, unique_number) WHERE unique_number IS NOT NULL AND unique_number > 0")
4356 -> 0.0039s
4357-- execute("DROP INDEX CONCURRENTLY index_builds_repository_id_unique_number")
4358 -> 0.0020s
4359-- execute("ALTER INDEX index_builds_repository_id_unique_number_new RENAME TO index_builds_repository_id_unique_number")
4360 -> 0.0008s
4361== 20190417072423 AlterBuildsUniqueNumberIndex: migrated (0.0068s) ============
4363== 20190417072838 ReinstallSetUniqueNumberTrigger: migrating ==================
4364-- execute("DROP TRIGGER IF EXISTS set_unique_number_on_builds ON builds;\nDROP FUNCTION IF EXISTS set_unique_number();\n")
4365 -> 0.0063s
4366-- execute("DROP TRIGGER IF EXISTS set_unique_number_on_builds ON builds;\nDROP FUNCTION IF EXISTS set_unique_number();\nCREATE FUNCTION set_unique_number() RETURNS trigger AS $$\nDECLARE\n disable boolean;\nBEGIN\n disable := 'f';\n IF TG_OP = 'INSERT' OR TG_OP = 'UPDATE' THEN\n BEGIN\n disable := current_setting('set_unique_number_on_builds.disable');\n EXCEPTION\n WHEN others THEN\n set set_unique_number_on_builds.disable = 'f';\n END;\n\n IF NOT disable THEN\n IF NEW.unique_number IS NULL OR NEW.unique_number > 0 THEN\n NEW.unique_number := NEW.number;\n END IF;\n END IF;\n END IF;\n RETURN NEW;\nEND;\n$$ LANGUAGE plpgsql;\n\nCREATE TRIGGER set_unique_number_on_builds\nBEFORE INSERT OR UPDATE ON builds\nFOR EACH ROW\nEXECUTE PROCEDURE set_unique_number();\n")
4367 -> 0.0019s
4368== 20190417072838 ReinstallSetUniqueNumberTrigger: migrated (0.0095s) =========
4370== 20190502175059 AddMergeableStateToPullRequests: migrating ==================
4371-- add_column(:pull_requests, :mergeable_state, :string)
4372 -> 0.0029s
4373== 20190502175059 AddMergeableStateToPullRequests: migrated (0.0032s) =========
4375== 20190510121000 AddReposIndexOnLowerOwnerNameAndName: migrating =============
4376-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_repositories_on_lower_owner_name_and_name ON repositories (LOWER(owner_name), LOWER(name)) WHERE invalidated_at IS NULL")
4377 -> 0.0050s
4378== 20190510121000 AddReposIndexOnLowerOwnerNameAndName: migrated (0.0052s) ====
4380== 20190605121000 AddHistoryMigrationStatusToRepositories: migrating ==========
4381-- add_column(:repositories, :history_migration_status, :string)
4382 -> 0.0030s
4383== 20190605121000 AddHistoryMigrationStatusToRepositories: migrated (0.0033s) =
4385== 20190605155459 AddPullRequestMergeableToRequests: migrating ================
4386-- add_column(:requests, :pull_request_mergeable, :string)
4387 -> 0.0027s
4388== 20190605155459 AddPullRequestMergeableToRequests: migrated (0.0030s) =======
4390== 20190613120000 SoftDeleteRepositoryAlongWithItsData: migrating =============
4391-- execute("create table if not exists deleted_builds (like builds)")
4392 -> 0.0056s
4393-- execute("create table if not exists deleted_stages (like stages)")
4394 -> 0.0030s
4395-- execute("create table if not exists deleted_jobs (like jobs)")
4396 -> 0.0032s
4397-- execute("create table if not exists deleted_requests (like requests)")
4398 -> 0.0033s
4399-- execute("create table if not exists deleted_commits (like commits)")
4400 -> 0.0028s
4401-- execute("create table if not exists deleted_pull_requests (like pull_requests)")
4402 -> 0.0030s
4403-- execute("create table if not exists deleted_job_configs (like job_configs)")
4404 -> 0.0025s
4405-- execute("create table if not exists deleted_build_configs (like build_configs)")
4406 -> 0.0023s
4407-- execute("create table if not exists deleted_request_configs (like request_configs)")
4408 -> 0.0020s
4409-- execute("create table if not exists deleted_request_payloads (like request_payloads)")
4410 -> 0.0022s
4411-- execute("create table if not exists deleted_ssl_keys (like ssl_keys)")
4412 -> 0.0021s
4413-- execute("create table if not exists deleted_tags (like tags)")
4414 -> 0.0022s
4415-- execute("DROP FUNCTION IF EXISTS soft_delete_repo_data(bigint);\nCREATE FUNCTION soft_delete_repo_data(r_id bigint) RETURNS void AS $$\nDECLARE\n request_raw_config_ids bigint[];\n request_raw_configuration_ids bigint[];\n request_yaml_config_ids bigint[];\n request_config_ids bigint[];\n tag_ids bigint[];\n ssl_key_ids bigint[];\n build_config_ids bigint[];\n job_config_ids bigint[];\n build_ids bigint[];\n pull_request_ids bigint[];\n commit_ids bigint[];\n request_ids bigint[];\n request_payload_ids bigint[];\n stage_ids bigint[];\n job_ids bigint[];\nBEGIN\n SELECT INTO job_ids array_agg(id) FROM jobs WHERE repository_id = r_id;\n SELECT INTO stage_ids array_agg(id) FROM stages WHERE build_id IN (SELECT id FROM builds WHERE repository_id = r_id);\n SELECT INTO request_payload_ids array_agg(id) FROM request_payloads WHERE request_id IN (SELECT id FROM requests WHERE repository_id = r_id);\n SELECT INTO request_ids array_agg(id) FROM requests WHERE repository_id = r_id;\n SELECT INTO commit_ids array_agg(id) FROM commits WHERE repository_id = r_id;\n SELECT INTO pull_request_ids array_agg(id) FROM pull_requests WHERE repository_id = r_id;\n SELECT INTO build_ids array_agg(id) FROM builds WHERE repository_id = r_id;\n SELECT INTO job_config_ids array_agg(id) FROM job_configs WHERE repository_id = r_id;\n SELECT INTO build_config_ids array_agg(id) FROM build_configs WHERE repository_id = r_id;\n SELECT INTO ssl_key_ids array_agg(id) FROM ssl_keys WHERE repository_id = r_id;\n SELECT INTO tag_ids array_agg(id) FROM tags WHERE repository_id = r_id;\n SELECT INTO request_config_ids array_agg(id) FROM request_configs WHERE repository_id = r_id;\n SELECT INTO request_yaml_config_ids array_agg(id) FROM request_yaml_configs WHERE repository_id = r_id;\n SELECT INTO request_raw_configuration_ids array_agg(id) FROM request_raw_configurations WHERE request_id = ANY(request_ids);\n SELECT INTO request_raw_config_ids array_agg(id) FROM request_raw_configs WHERE id IN (SELECT request_raw_config_id FROM request_raw_configurations WHERE request_id = ANY(request_ids));\n\n INSERT INTO deleted_jobs SELECT * FROM jobs WHERE id = ANY(job_ids);\n INSERT INTO deleted_stages SELECT * FROM stages WHERE id = ANY(stage_ids);\n INSERT INTO deleted_request_payloads SELECT * FROM request_payloads WHERE id = ANY(request_payload_ids);\n INSERT INTO deleted_requests SELECT * FROM requests WHERE id = ANY(request_ids);\n INSERT INTO deleted_commits SELECT * FROM commits WHERE id = ANY(commit_ids);\n INSERT INTO deleted_pull_requests SELECT * FROM pull_requests WHERE id = ANY(pull_request_ids);\n INSERT INTO deleted_builds SELECT * FROM builds WHERE id = ANY(build_ids);\n INSERT INTO deleted_job_configs SELECT * FROM job_configs WHERE id = ANY(job_config_ids);\n INSERT INTO deleted_build_configs SELECT * FROM build_configs WHERE id = ANY(build_config_ids);\n INSERT INTO deleted_ssl_keys SELECT * FROM ssl_keys WHERE id = ANY(ssl_key_ids);\n INSERT INTO deleted_tags SELECT * FROM tags WHERE id = ANY(tag_ids);\n INSERT INTO deleted_request_configs SELECT * FROM request_configs WHERE id = ANY(request_config_ids);\n INSERT INTO deleted_request_yaml_configs SELECT * FROM request_yaml_configs WHERE id = ANY(request_yaml_config_ids);\n INSERT INTO deleted_request_raw_configurations SELECT * FROM request_raw_configurations WHERE id = ANY(request_raw_configuration_ids);\n INSERT INTO deleted_request_raw_configs SELECT * FROM request_raw_configs WHERE id = ANY(request_raw_config_ids);\n\n DELETE FROM jobs WHERE id = ANY(job_ids);\n DELETE FROM stages WHERE id = ANY(stage_ids);\n DELETE FROM request_payloads WHERE id = ANY(request_payload_ids);\n DELETE FROM requests WHERE id = ANY(request_ids);\n DELETE FROM commits WHERE id = ANY(commit_ids);\n DELETE FROM pull_requests WHERE id = ANY(pull_request_ids);\n DELETE FROM builds WHERE id = ANY(build_ids);\n DELETE FROM job_configs WHERE id = ANY(job_config_ids);\n DELETE FROM build_configs WHERE id = ANY(build_config_ids);\n DELETE FROM ssl_keys WHERE id = ANY(ssl_key_ids);\n DELETE FROM tags WHERE id = ANY(tag_ids);\n DELETE FROM request_configs WHERE id = ANY(request_config_ids);\n DELETE FROM request_yaml_configs WHERE id = ANY(request_yaml_config_ids);\n DELETE FROM request_raw_configurations WHERE id = ANY(request_raw_configuration_ids);\n DELETE FROM request_raw_configs WHERE id = ANY(request_raw_config_ids);\nEND;\n$$ LANGUAGE plpgsql;\n")
4416 -> 0.0012s
4417== 20190613120000 SoftDeleteRepositoryAlongWithItsData: migrated (0.0363s) ====
4419== 20190618082559 AddVcsTypeToUser: migrating =================================
4420-- add_column(:users, :vcs_type, :string, {:default=>nil})
4421 -> 0.0011s
4422-- execute("ALTER TABLE users ALTER COLUMN vcs_type SET DEFAULT 'GithubUser'")
4423 -> 0.0003s
4424-- select_value("SELECT id FROM users ORDER BY id DESC LIMIT 1")
4425 -> 0.0007s
4426-- execute("UPDATE users SET vcs_type = 'GithubUser' WHERE id BETWEEN 0 AND 5000")
4427 -> 0.0023s
4428== 20190618082559 AddVcsTypeToUser: migrated (0.0087s) ========================
4430== 20190701082559 AddVcsTypeToRepository: migrating ===========================
4431-- add_column(:repositories, :vcs_type, :string, {:default=>nil})
4432 -> 0.0045s
4433-- execute("ALTER TABLE repositories ALTER COLUMN vcs_type SET DEFAULT 'GithubRepository'")
4434 -> 0.0016s
4435-- select_value("SELECT id FROM repositories ORDER BY id DESC LIMIT 1")
4436 -> 0.0014s
4437-- execute("UPDATE repositories SET vcs_type = 'GithubRepository' WHERE id BETWEEN 0 AND 5000")
4438 -> 0.0020s
4439== 20190701082559 AddVcsTypeToRepository: migrated (0.0131s) ==================
4441== 20190704082559 AddVcsTypeToOrganization: migrating =========================
4442-- add_column(:organizations, :vcs_type, :string, {:default=>nil})
4443 -> 0.0037s
4444-- execute("ALTER TABLE organizations ALTER COLUMN vcs_type SET DEFAULT 'GithubOrganization'")
4445 -> 0.0014s
4446-- select_value("SELECT id FROM organizations ORDER BY id DESC LIMIT 1")
4447 -> 0.0015s
4448-- execute("UPDATE organizations SET vcs_type = 'GithubOrganization' WHERE id BETWEEN 0 AND 5000")
4449 -> 0.0023s
4450== 20190704082559 AddVcsTypeToOrganization: migrated (0.0120s) ================
4452== 20190718092750 AddDeleteCascadeToForeignKeys: migrating ====================
4453-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4454 -> 0.0031s
4455-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) ON DELETE CASCADE NOT VALID")
4456 -> 0.0016s
4457-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_request_id FOREIGN KEY (request_id) REFERENCES requests(id) ON DELETE CASCADE NOT VALID")
4458 -> 0.0018s
4459-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_pull_request_id FOREIGN KEY (pull_request_id) REFERENCES pull_requests(id) ON DELETE CASCADE NOT VALID")
4460 -> 0.0015s
4461-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")
4462 -> 0.0015s
4463-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE NOT VALID")
4464 -> 0.0018s
4465-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_config_id FOREIGN KEY (config_id) REFERENCES build_configs(id) ON DELETE CASCADE NOT VALID")
4466 -> 0.0012s
4467-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_new_jobs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4468 -> 0.0012s
4469-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_new_jobs_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) ON DELETE CASCADE NOT VALID")
4470 -> 0.0051s
4471-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_new_jobs_on_stage_id FOREIGN KEY (stage_id) REFERENCES stages(id) ON DELETE CASCADE NOT VALID")
4472 -> 0.0007s
4473-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_new_jobs_on_config_id FOREIGN KEY (config_id) REFERENCES job_configs(id) ON DELETE CASCADE NOT VALID")
4474 -> 0.0006s
4475-- execute("ALTER TABLE branches ADD CONSTRAINT fk_new_branches_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4476 -> 0.0006s
4477-- execute("ALTER TABLE tags ADD CONSTRAINT fk_new_tags_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4478 -> 0.0006s
4479-- execute("ALTER TABLE commits ADD CONSTRAINT fk_new_commits_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4480 -> 0.0006s
4481-- execute("ALTER TABLE commits ADD CONSTRAINT fk_new_commits_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")
4482 -> 0.0005s
4483-- execute("ALTER TABLE commits ADD CONSTRAINT fk_new_commits_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE NOT VALID")
4484 -> 0.0005s
4485-- execute("ALTER TABLE crons ADD CONSTRAINT fk_new_crons_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")
4486 -> 0.0005s
4487-- execute("ALTER TABLE job_configs ADD CONSTRAINT fk_new_job_configs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4488 -> 0.0005s
4489-- execute("ALTER TABLE build_configs ADD CONSTRAINT fk_new_build_configs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4490 -> 0.0005s
4491-- execute("ALTER TABLE pull_requests ADD CONSTRAINT fk_new_pull_requests_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4492 -> 0.0005s
4493-- execute("ALTER TABLE ssl_keys ADD CONSTRAINT fk_new_ssl_keys_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4494 -> 0.0005s
4495-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) ON DELETE CASCADE NOT VALID")
4496 -> 0.0005s
4497-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_pull_request_id FOREIGN KEY (pull_request_id) REFERENCES pull_requests(id) ON DELETE CASCADE NOT VALID")
4498 -> 0.0005s
4499-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")
4500 -> 0.0005s
4501-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE NOT VALID")
4502 -> 0.0005s
4503-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_config_id FOREIGN KEY (config_id) REFERENCES request_configs(id) ON DELETE CASCADE NOT VALID")
4504 -> 0.0005s
4505-- execute("ALTER TABLE stages ADD CONSTRAINT fk_new_stages_on_build_id FOREIGN KEY (build_id) REFERENCES builds(id) ON DELETE CASCADE NOT VALID")
4506 -> 0.0006s
4507-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_repository_id")
4508 -> 0.0010s
4509-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_commit_id")
4510 -> 0.0008s
4511-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_request_id")
4512 -> 0.0008s
4513-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_pull_request_id")
4514 -> 0.0007s
4515-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_branch_id")
4516 -> 0.0007s
4517-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_tag_id")
4518 -> 0.0007s
4519-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_config_id")
4520 -> 0.0006s
4521-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_repository_id")
4522 -> 0.0007s
4523-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_commit_id")
4524 -> 0.0006s
4525-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_stage_id")
4526 -> 0.0006s
4527-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_config_id")
4528 -> 0.0006s
4529-- execute("ALTER TABLE branches VALIDATE CONSTRAINT fk_new_branches_on_repository_id")
4530 -> 0.0006s
4531-- execute("ALTER TABLE tags VALIDATE CONSTRAINT fk_new_tags_on_repository_id")
4532 -> 0.0006s
4533-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_new_commits_on_repository_id")
4534 -> 0.0006s
4535-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_new_commits_on_branch_id")
4536 -> 0.0005s
4537-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_new_commits_on_tag_id")
4538 -> 0.0005s
4539-- execute("ALTER TABLE crons VALIDATE CONSTRAINT fk_new_crons_on_branch_id")
4540 -> 0.0005s
4541-- execute("ALTER TABLE job_configs VALIDATE CONSTRAINT fk_new_job_configs_on_repository_id")
4542 -> 0.0006s
4543-- execute("ALTER TABLE build_configs VALIDATE CONSTRAINT fk_new_build_configs_on_repository_id")
4544 -> 0.0006s
4545-- execute("ALTER TABLE pull_requests VALIDATE CONSTRAINT fk_new_pull_requests_on_repository_id")
4546 -> 0.0006s
4547-- execute("ALTER TABLE ssl_keys VALIDATE CONSTRAINT fk_new_ssl_keys_on_repository_id")
4548 -> 0.0006s
4549-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_commit_id")
4550 -> 0.0007s
4551-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_pull_request_id")
4552 -> 0.0012s
4553-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_branch_id")
4554 -> 0.0009s
4555-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_tag_id")
4556 -> 0.0008s
4557-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_config_id")
4558 -> 0.0007s
4559-- execute("ALTER TABLE stages VALIDATE CONSTRAINT fk_new_stages_on_build_id")
4560 -> 0.0010s
4561-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_repository_id")
4562 -> 0.0012s
4563-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_commit_id")
4564 -> 0.0011s
4565-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_request_id")
4566 -> 0.0011s
4567-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_pull_request_id")
4568 -> 0.0010s
4569-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_branch_id")
4570 -> 0.0011s
4571-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_tag_id")
4572 -> 0.0011s
4573-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_config_id")
4574 -> 0.0013s
4575-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_repository_id")
4576 -> 0.0021s
4577-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_commit_id")
4578 -> 0.0012s
4579-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_stage_id")
4580 -> 0.0005s
4581-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_config_id")
4582 -> 0.0005s
4583-- execute("ALTER TABLE branches DROP CONSTRAINT fk_branches_on_repository_id")
4584 -> 0.0006s
4585-- execute("ALTER TABLE tags DROP CONSTRAINT fk_tags_on_repository_id")
4586 -> 0.0006s
4587-- execute("ALTER TABLE commits DROP CONSTRAINT fk_commits_on_repository_id")
4588 -> 0.0006s
4589-- execute("ALTER TABLE commits DROP CONSTRAINT fk_commits_on_branch_id")
4590 -> 0.0006s
4591-- execute("ALTER TABLE commits DROP CONSTRAINT fk_commits_on_tag_id")
4592 -> 0.0009s
4593-- execute("ALTER TABLE crons DROP CONSTRAINT fk_crons_on_branch_id")
4594 -> 0.0010s
4595-- execute("ALTER TABLE job_configs DROP CONSTRAINT fk_job_configs_on_repository_id")
4596 -> 0.0010s
4597-- execute("ALTER TABLE build_configs DROP CONSTRAINT fk_build_configs_on_repository_id")
4598 -> 0.0009s
4599-- execute("ALTER TABLE pull_requests DROP CONSTRAINT fk_pull_requests_on_repository_id")
4600 -> 0.0013s
4601-- execute("ALTER TABLE ssl_keys DROP CONSTRAINT fk_ssl_keys_on_repository_id")
4602 -> 0.0011s
4603-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_commit_id")
4604 -> 0.0012s
4605-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_pull_request_id")
4606 -> 0.0012s
4607-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_branch_id")
4608 -> 0.0014s
4609-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_tag_id")
4610 -> 0.0011s
4611-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_config_id")
4612 -> 0.0011s
4613-- execute("ALTER TABLE stages DROP CONSTRAINT fk_stages_on_build_id")
4614 -> 0.0011s
4615-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_repository_id TO fk_builds_on_repository_id")
4616 -> 0.0006s
4617-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_commit_id TO fk_builds_on_commit_id")
4618 -> 0.0005s
4619-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_request_id TO fk_builds_on_request_id")
4620 -> 0.0005s
4621-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_pull_request_id TO fk_builds_on_pull_request_id")
4622 -> 0.0004s
4623-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_branch_id TO fk_builds_on_branch_id")
4624 -> 0.0004s
4625-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_tag_id TO fk_builds_on_tag_id")
4626 -> 0.0005s
4627-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_config_id TO fk_builds_on_config_id")
4628 -> 0.0005s
4629-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_repository_id TO fk_jobs_on_repository_id")
4630 -> 0.0003s
4631-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_commit_id TO fk_jobs_on_commit_id")
4632 -> 0.0005s
4633-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_stage_id TO fk_jobs_on_stage_id")
4634 -> 0.0005s
4635-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_config_id TO fk_jobs_on_config_id")
4636 -> 0.0007s
4637-- execute("ALTER TABLE branches RENAME CONSTRAINT fk_new_branches_on_repository_id TO fk_branches_on_repository_id")
4638 -> 0.0004s
4639-- execute("ALTER TABLE tags RENAME CONSTRAINT fk_new_tags_on_repository_id TO fk_tags_on_repository_id")
4640 -> 0.0004s
4641-- execute("ALTER TABLE commits RENAME CONSTRAINT fk_new_commits_on_repository_id TO fk_commits_on_repository_id")
4642 -> 0.0003s
4643-- execute("ALTER TABLE commits RENAME CONSTRAINT fk_new_commits_on_branch_id TO fk_commits_on_branch_id")
4644 -> 0.0003s
4645-- execute("ALTER TABLE commits RENAME CONSTRAINT fk_new_commits_on_tag_id TO fk_commits_on_tag_id")
4646 -> 0.0003s
4647-- execute("ALTER TABLE crons RENAME CONSTRAINT fk_new_crons_on_branch_id TO fk_crons_on_branch_id")
4648 -> 0.0003s
4649-- execute("ALTER TABLE job_configs RENAME CONSTRAINT fk_new_job_configs_on_repository_id TO fk_job_configs_on_repository_id")
4650 -> 0.0004s
4651-- execute("ALTER TABLE build_configs RENAME CONSTRAINT fk_new_build_configs_on_repository_id TO fk_build_configs_on_repository_id")
4652 -> 0.0003s
4653-- execute("ALTER TABLE pull_requests RENAME CONSTRAINT fk_new_pull_requests_on_repository_id TO fk_pull_requests_on_repository_id")
4654 -> 0.0004s
4655-- execute("ALTER TABLE ssl_keys RENAME CONSTRAINT fk_new_ssl_keys_on_repository_id TO fk_ssl_keys_on_repository_id")
4656 -> 0.0003s
4657-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_commit_id TO fk_requests_on_commit_id")
4658 -> 0.0003s
4659-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_pull_request_id TO fk_requests_on_pull_request_id")
4660 -> 0.0005s
4661-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_branch_id TO fk_requests_on_branch_id")
4662 -> 0.0005s
4663-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_tag_id TO fk_requests_on_tag_id")
4664 -> 0.0004s
4665-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_config_id TO fk_requests_on_config_id")
4666 -> 0.0007s
4667-- execute("ALTER TABLE stages RENAME CONSTRAINT fk_new_stages_on_build_id TO fk_stages_on_build_id")
4668 -> 0.0004s
4669== 20190718092750 AddDeleteCascadeToForeignKeys: migrated (0.1007s) ===========
4671== 20190718100426 UpdateSoftDeleteProcedure: migrating ========================
4672-- execute("DROP FUNCTION IF EXISTS soft_delete_repo_data(bigint);\nCREATE FUNCTION soft_delete_repo_data(r_id bigint) RETURNS void AS $$\nDECLARE\n request_raw_config_ids bigint[];\n request_raw_configuration_ids bigint[];\n request_yaml_config_ids bigint[];\n request_config_ids bigint[];\n tag_ids bigint[];\n ssl_key_ids bigint[];\n build_config_ids bigint[];\n job_config_ids bigint[];\n build_ids bigint[];\n pull_request_ids bigint[];\n commit_ids bigint[];\n request_ids bigint[];\n request_payload_ids bigint[];\n stage_ids bigint[];\n job_ids bigint[];\nBEGIN\n SELECT INTO job_ids array_agg(id) FROM jobs WHERE repository_id = r_id;\n SELECT INTO stage_ids array_agg(id) FROM stages WHERE build_id IN (SELECT id FROM builds WHERE repository_id = r_id);\n SELECT INTO request_payload_ids array_agg(id) FROM request_payloads WHERE request_id IN (SELECT id FROM requests WHERE repository_id = r_id);\n SELECT INTO request_ids array_agg(id) FROM requests WHERE repository_id = r_id;\n SELECT INTO commit_ids array_agg(id) FROM commits WHERE repository_id = r_id;\n SELECT INTO pull_request_ids array_agg(id) FROM pull_requests WHERE repository_id = r_id;\n SELECT INTO build_ids array_agg(id) FROM builds WHERE repository_id = r_id;\n SELECT INTO job_config_ids array_agg(id) FROM job_configs WHERE repository_id = r_id;\n SELECT INTO build_config_ids array_agg(id) FROM build_configs WHERE repository_id = r_id;\n SELECT INTO ssl_key_ids array_agg(id) FROM ssl_keys WHERE repository_id = r_id;\n SELECT INTO tag_ids array_agg(id) FROM tags WHERE repository_id = r_id;\n SELECT INTO request_config_ids array_agg(id) FROM request_configs WHERE repository_id = r_id;\n SELECT INTO request_yaml_config_ids array_agg(id) FROM request_yaml_configs WHERE repository_id = r_id;\n SELECT INTO request_raw_configuration_ids array_agg(id) FROM request_raw_configurations WHERE request_id = ANY(request_ids);\n SELECT INTO request_raw_config_ids array_agg(id) FROM request_raw_configs WHERE id IN (SELECT request_raw_config_id FROM request_raw_configurations WHERE request_id = ANY(request_ids));\n\n INSERT INTO deleted_jobs SELECT * FROM jobs WHERE id = ANY(job_ids);\n INSERT INTO deleted_stages SELECT * FROM stages WHERE id = ANY(stage_ids);\n INSERT INTO deleted_request_payloads SELECT * FROM request_payloads WHERE id = ANY(request_payload_ids);\n INSERT INTO deleted_requests SELECT * FROM requests WHERE id = ANY(request_ids);\n INSERT INTO deleted_commits SELECT * FROM commits WHERE id = ANY(commit_ids);\n INSERT INTO deleted_pull_requests SELECT * FROM pull_requests WHERE id = ANY(pull_request_ids);\n INSERT INTO deleted_builds SELECT * FROM builds WHERE id = ANY(build_ids);\n INSERT INTO deleted_job_configs SELECT * FROM job_configs WHERE id = ANY(job_config_ids);\n INSERT INTO deleted_build_configs SELECT * FROM build_configs WHERE id = ANY(build_config_ids);\n INSERT INTO deleted_ssl_keys SELECT * FROM ssl_keys WHERE id = ANY(ssl_key_ids);\n INSERT INTO deleted_tags SELECT * FROM tags WHERE id = ANY(tag_ids);\n INSERT INTO deleted_request_configs SELECT * FROM request_configs WHERE id = ANY(request_config_ids);\n INSERT INTO deleted_request_yaml_configs SELECT * FROM request_yaml_configs WHERE id = ANY(request_yaml_config_ids);\n INSERT INTO deleted_request_raw_configurations SELECT * FROM request_raw_configurations WHERE id = ANY(request_raw_configuration_ids);\n INSERT INTO deleted_request_raw_configs SELECT * FROM request_raw_configs WHERE id = ANY(request_raw_config_ids);\n\n DELETE FROM jobs WHERE id = ANY(job_ids);\n DELETE FROM stages WHERE id = ANY(stage_ids);\n DELETE FROM request_payloads WHERE id = ANY(request_payload_ids);\n DELETE FROM requests WHERE id = ANY(request_ids);\n DELETE FROM commits WHERE id = ANY(commit_ids);\n DELETE FROM pull_requests WHERE id = ANY(pull_request_ids);\n DELETE FROM builds WHERE id = ANY(build_ids);\n DELETE FROM job_configs WHERE id = ANY(job_config_ids);\n DELETE FROM build_configs WHERE id = ANY(build_config_ids);\n DELETE FROM ssl_keys WHERE id = ANY(ssl_key_ids);\n DELETE FROM tags WHERE id = ANY(tag_ids);\n DELETE FROM request_configs WHERE id = ANY(request_config_ids);\n DELETE FROM request_yaml_configs WHERE id = ANY(request_yaml_config_ids);\n DELETE FROM request_raw_configurations WHERE id = ANY(request_raw_configuration_ids);\n DELETE FROM request_raw_configs WHERE id = ANY(request_raw_config_ids);\nEND;\n$$ LANGUAGE plpgsql;\n")
4673 -> 0.0024s
4674== 20190718100426 UpdateSoftDeleteProcedure: migrated (0.0026s) ===============
4676== 20190725103113 UpdateSoftDelete: migrating =================================
4677-- execute("create table deleted_request_yaml_configs (like request_yaml_configs)")
4678 -> 0.0041s
4679-- execute("DROP FUNCTION IF EXISTS soft_delete_repo_data(bigint);\nCREATE FUNCTION soft_delete_repo_data(r_id bigint) RETURNS void AS $$\nDECLARE\n request_raw_config_ids bigint[];\n request_raw_configuration_ids bigint[];\n request_yaml_config_ids bigint[];\n request_config_ids bigint[];\n tag_ids bigint[];\n ssl_key_ids bigint[];\n build_config_ids bigint[];\n job_config_ids bigint[];\n build_ids bigint[];\n pull_request_ids bigint[];\n commit_ids bigint[];\n request_ids bigint[];\n request_payload_ids bigint[];\n stage_ids bigint[];\n job_ids bigint[];\nBEGIN\n SELECT INTO job_ids array_agg(id) FROM jobs WHERE repository_id = r_id;\n SELECT INTO stage_ids array_agg(id) FROM stages WHERE build_id IN (SELECT id FROM builds WHERE repository_id = r_id);\n SELECT INTO request_payload_ids array_agg(id) FROM request_payloads WHERE request_id IN (SELECT id FROM requests WHERE repository_id = r_id);\n SELECT INTO request_ids array_agg(id) FROM requests WHERE repository_id = r_id;\n SELECT INTO commit_ids array_agg(id) FROM commits WHERE repository_id = r_id;\n SELECT INTO pull_request_ids array_agg(id) FROM pull_requests WHERE repository_id = r_id;\n SELECT INTO build_ids array_agg(id) FROM builds WHERE repository_id = r_id;\n SELECT INTO job_config_ids array_agg(id) FROM job_configs WHERE repository_id = r_id;\n SELECT INTO build_config_ids array_agg(id) FROM build_configs WHERE repository_id = r_id;\n SELECT INTO ssl_key_ids array_agg(id) FROM ssl_keys WHERE repository_id = r_id;\n SELECT INTO tag_ids array_agg(id) FROM tags WHERE repository_id = r_id;\n SELECT INTO request_config_ids array_agg(id) FROM request_configs WHERE repository_id = r_id;\n SELECT INTO request_yaml_config_ids array_agg(id) FROM request_yaml_configs WHERE repository_id = r_id;\n SELECT INTO request_raw_configuration_ids array_agg(id) FROM request_raw_configurations WHERE request_id = ANY(request_ids);\n SELECT INTO request_raw_config_ids array_agg(id) FROM request_raw_configs WHERE id IN (SELECT request_raw_config_id FROM request_raw_configurations WHERE request_id = ANY(request_ids));\n\n INSERT INTO deleted_jobs SELECT * FROM jobs WHERE id = ANY(job_ids);\n INSERT INTO deleted_stages SELECT * FROM stages WHERE id = ANY(stage_ids);\n INSERT INTO deleted_request_payloads SELECT * FROM request_payloads WHERE id = ANY(request_payload_ids);\n INSERT INTO deleted_requests SELECT * FROM requests WHERE id = ANY(request_ids);\n INSERT INTO deleted_commits SELECT * FROM commits WHERE id = ANY(commit_ids);\n INSERT INTO deleted_pull_requests SELECT * FROM pull_requests WHERE id = ANY(pull_request_ids);\n INSERT INTO deleted_builds SELECT * FROM builds WHERE id = ANY(build_ids);\n INSERT INTO deleted_job_configs SELECT * FROM job_configs WHERE id = ANY(job_config_ids);\n INSERT INTO deleted_build_configs SELECT * FROM build_configs WHERE id = ANY(build_config_ids);\n INSERT INTO deleted_ssl_keys SELECT * FROM ssl_keys WHERE id = ANY(ssl_key_ids);\n INSERT INTO deleted_tags SELECT * FROM tags WHERE id = ANY(tag_ids);\n INSERT INTO deleted_request_configs SELECT * FROM request_configs WHERE id = ANY(request_config_ids);\n INSERT INTO deleted_request_yaml_configs SELECT * FROM request_yaml_configs WHERE id = ANY(request_yaml_config_ids);\n INSERT INTO deleted_request_raw_configurations SELECT * FROM request_raw_configurations WHERE id = ANY(request_raw_configuration_ids);\n INSERT INTO deleted_request_raw_configs SELECT * FROM request_raw_configs WHERE id = ANY(request_raw_config_ids);\n\n DELETE FROM jobs WHERE id = ANY(job_ids);\n DELETE FROM stages WHERE id = ANY(stage_ids);\n DELETE FROM request_payloads WHERE id = ANY(request_payload_ids);\n DELETE FROM requests WHERE id = ANY(request_ids);\n DELETE FROM commits WHERE id = ANY(commit_ids);\n DELETE FROM pull_requests WHERE id = ANY(pull_request_ids);\n DELETE FROM builds WHERE id = ANY(build_ids);\n DELETE FROM job_configs WHERE id = ANY(job_config_ids);\n DELETE FROM build_configs WHERE id = ANY(build_config_ids);\n DELETE FROM ssl_keys WHERE id = ANY(ssl_key_ids);\n DELETE FROM tags WHERE id = ANY(tag_ids);\n DELETE FROM request_configs WHERE id = ANY(request_config_ids);\n DELETE FROM request_yaml_configs WHERE id = ANY(request_yaml_config_ids);\n DELETE FROM request_raw_configurations WHERE id = ANY(request_raw_configuration_ids);\n DELETE FROM request_raw_configs WHERE id = ANY(request_raw_config_ids);\nEND;\n$$ LANGUAGE plpgsql;\n")
4680 -> 0.0023s
4681== 20190725103113 UpdateSoftDelete: migrated (0.0066s) ========================
4683== 20190725105934 AddOrgIdToConfigs: migrating ================================
4684-- add_column(:job_configs, :org_id, :bigint)
4685 -> 0.0014s
4686-- add_column(:deleted_job_configs, :org_id, :bigint)
4687 -> 0.0013s
4688-- add_column(:build_configs, :org_id, :bigint)
4689 -> 0.0016s
4690-- add_column(:deleted_build_configs, :org_id, :bigint)
4691 -> 0.0010s
4692-- add_column(:request_configs, :org_id, :bigint)
4693 -> 0.0011s
4694-- add_column(:deleted_request_configs, :org_id, :bigint)
4695 -> 0.0011s
4696-- add_column(:request_yaml_configs, :org_id, :bigint)
4697 -> 0.0009s
4698-- add_column(:deleted_request_yaml_configs, :org_id, :bigint)
4699 -> 0.0010s
4700-- add_column(:request_payloads, :org_id, :bigint)
4701 -> 0.0009s
4702-- add_column(:deleted_request_payloads, :org_id, :bigint)
4703 -> 0.0008s
4704-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_job_configs_on_org_id ON job_configs (org_id)")
4705 -> 0.0046s
4706-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_build_configs_on_org_id ON build_configs (org_id)")
4707 -> 0.0047s
4708-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_configs_on_org_id ON request_configs (org_id)")
4709 -> 0.0049s
4710-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_yaml_configs_on_org_id ON request_yaml_configs (org_id)")
4711 -> 0.0047s
4712-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_payloads_on_org_id ON request_payloads (org_id)")
4713 -> 0.0054s
4714== 20190725105934 AddOrgIdToConfigs: migrated (0.0360s) =======================
4716== 20190729105934 AddOrgAndComIdsToRawConfigs: migrating ======================
4717-- add_column(:request_raw_configs, :org_id, :bigint)
4718 -> 0.0011s
4719-- add_column(:request_raw_configurations, :org_id, :bigint)
4720 -> 0.0011s
4721-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_raw_configs_on_org_id ON request_raw_configs (org_id)")
4722 -> 0.0041s
4723-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_raw_configurations_on_org_id ON request_raw_configurations (org_id)")
4724 -> 0.0045s
4725== 20190729105934 AddOrgAndComIdsToRawConfigs: migrated (0.0110s) =============
4727== 20190801120510 AddMoreDeletedTables: migrating =============================
4728-- execute("create table if not exists deleted_request_raw_configs (like request_raw_configs)")
4729 -> 0.0046s
4730-- execute("create table if not exists deleted_request_raw_configurations (like request_raw_configurations)")
4731 -> 0.0037s
4732-- execute("DROP FUNCTION IF EXISTS soft_delete_repo_data(bigint);\nCREATE FUNCTION soft_delete_repo_data(r_id bigint) RETURNS void AS $$\nDECLARE\n request_raw_config_ids bigint[];\n request_raw_configuration_ids bigint[];\n request_yaml_config_ids bigint[];\n request_config_ids bigint[];\n tag_ids bigint[];\n ssl_key_ids bigint[];\n build_config_ids bigint[];\n job_config_ids bigint[];\n build_ids bigint[];\n pull_request_ids bigint[];\n commit_ids bigint[];\n request_ids bigint[];\n request_payload_ids bigint[];\n stage_ids bigint[];\n job_ids bigint[];\nBEGIN\n SELECT INTO job_ids array_agg(id) FROM jobs WHERE repository_id = r_id;\n SELECT INTO stage_ids array_agg(id) FROM stages WHERE build_id IN (SELECT id FROM builds WHERE repository_id = r_id);\n SELECT INTO request_payload_ids array_agg(id) FROM request_payloads WHERE request_id IN (SELECT id FROM requests WHERE repository_id = r_id);\n SELECT INTO request_ids array_agg(id) FROM requests WHERE repository_id = r_id;\n SELECT INTO commit_ids array_agg(id) FROM commits WHERE repository_id = r_id;\n SELECT INTO pull_request_ids array_agg(id) FROM pull_requests WHERE repository_id = r_id;\n SELECT INTO build_ids array_agg(id) FROM builds WHERE repository_id = r_id;\n SELECT INTO job_config_ids array_agg(id) FROM job_configs WHERE repository_id = r_id;\n SELECT INTO build_config_ids array_agg(id) FROM build_configs WHERE repository_id = r_id;\n SELECT INTO ssl_key_ids array_agg(id) FROM ssl_keys WHERE repository_id = r_id;\n SELECT INTO tag_ids array_agg(id) FROM tags WHERE repository_id = r_id;\n SELECT INTO request_config_ids array_agg(id) FROM request_configs WHERE repository_id = r_id;\n SELECT INTO request_yaml_config_ids array_agg(id) FROM request_yaml_configs WHERE repository_id = r_id;\n SELECT INTO request_raw_configuration_ids array_agg(id) FROM request_raw_configurations WHERE request_id = ANY(request_ids);\n SELECT INTO request_raw_config_ids array_agg(id) FROM request_raw_configs WHERE id IN (SELECT request_raw_config_id FROM request_raw_configurations WHERE request_id = ANY(request_ids));\n\n INSERT INTO deleted_jobs SELECT * FROM jobs WHERE id = ANY(job_ids);\n INSERT INTO deleted_stages SELECT * FROM stages WHERE id = ANY(stage_ids);\n INSERT INTO deleted_request_payloads SELECT * FROM request_payloads WHERE id = ANY(request_payload_ids);\n INSERT INTO deleted_requests SELECT * FROM requests WHERE id = ANY(request_ids);\n INSERT INTO deleted_commits SELECT * FROM commits WHERE id = ANY(commit_ids);\n INSERT INTO deleted_pull_requests SELECT * FROM pull_requests WHERE id = ANY(pull_request_ids);\n INSERT INTO deleted_builds SELECT * FROM builds WHERE id = ANY(build_ids);\n INSERT INTO deleted_job_configs SELECT * FROM job_configs WHERE id = ANY(job_config_ids);\n INSERT INTO deleted_build_configs SELECT * FROM build_configs WHERE id = ANY(build_config_ids);\n INSERT INTO deleted_ssl_keys SELECT * FROM ssl_keys WHERE id = ANY(ssl_key_ids);\n INSERT INTO deleted_tags SELECT * FROM tags WHERE id = ANY(tag_ids);\n INSERT INTO deleted_request_configs SELECT * FROM request_configs WHERE id = ANY(request_config_ids);\n INSERT INTO deleted_request_yaml_configs SELECT * FROM request_yaml_configs WHERE id = ANY(request_yaml_config_ids);\n INSERT INTO deleted_request_raw_configurations SELECT * FROM request_raw_configurations WHERE id = ANY(request_raw_configuration_ids);\n INSERT INTO deleted_request_raw_configs SELECT * FROM request_raw_configs WHERE id = ANY(request_raw_config_ids);\n\n DELETE FROM jobs WHERE id = ANY(job_ids);\n DELETE FROM stages WHERE id = ANY(stage_ids);\n DELETE FROM request_payloads WHERE id = ANY(request_payload_ids);\n DELETE FROM requests WHERE id = ANY(request_ids);\n DELETE FROM commits WHERE id = ANY(commit_ids);\n DELETE FROM pull_requests WHERE id = ANY(pull_request_ids);\n DELETE FROM builds WHERE id = ANY(build_ids);\n DELETE FROM job_configs WHERE id = ANY(job_config_ids);\n DELETE FROM build_configs WHERE id = ANY(build_config_ids);\n DELETE FROM ssl_keys WHERE id = ANY(ssl_key_ids);\n DELETE FROM tags WHERE id = ANY(tag_ids);\n DELETE FROM request_configs WHERE id = ANY(request_config_ids);\n DELETE FROM request_yaml_configs WHERE id = ANY(request_yaml_config_ids);\n DELETE FROM request_raw_configurations WHERE id = ANY(request_raw_configuration_ids);\n DELETE FROM request_raw_configs WHERE id = ANY(request_raw_config_ids);\nEND;\n$$ LANGUAGE plpgsql;\n")
4733 -> 0.0020s
4734== 20190801120510 AddMoreDeletedTables: migrated (0.0106s) ====================
4736== 20190815152336 AddComIdToMoreTables: migrating =============================
4737-- add_column(:request_configs, :com_id, :bigint)
4738 -> 0.0016s
4739-- add_column(:request_yaml_configs, :com_id, :bigint)
4740 -> 0.0012s
4741-- add_column(:deleted_request_configs, :com_id, :bigint)
4742 -> 0.0013s
4743-- add_column(:deleted_request_yaml_configs, :com_id, :bigint)
4744 -> 0.0012s
4745-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_configs_on_com_id ON request_configs (com_id)")
4746 -> 0.0039s
4747-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_yaml_configs_on_com_id ON request_yaml_configs (com_id)")
4748 -> 0.0035s
4749== 20190815152336 AddComIdToMoreTables: migrated (0.0132s) ====================
4751== 20190815164320 AddComIdToBuildConfigs: migrating ===========================
4752-- add_column(:build_configs, :com_id, :bigint)
4753 -> 0.0011s
4754-- add_column(:deleted_build_configs, :com_id, :bigint)
4755 -> 0.0013s
4756-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_build_configs_on_com_id ON build_configs (com_id)")
4757 -> 0.0036s
4758== 20190815164320 AddComIdToBuildConfigs: migrated (0.0063s) ==================
4760== 20190815172205 AddComIdToJobConfigs: migrating =============================
4761-- add_column(:job_configs, :com_id, :bigint)
4762 -> 0.0016s
4763-- add_column(:deleted_job_configs, :com_id, :bigint)
4764 -> 0.0014s
4765-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_job_configs_on_com_id ON job_configs (com_id)")
4766 -> 0.0033s
4767== 20190815172205 AddComIdToJobConfigs: migrated (0.0065s) ====================
4769== 20190819082558 AddVcsIdToUser: migrating ===================================
4770-- add_column(:users, :vcs_id, :string, {:default=>nil})
4771 -> 0.0022s
4772-- execute("CREATE INDEX CONCURRENTLY index_users_on_vcs_id_and_vcs_type ON users (vcs_id, vcs_type);")
4773 -> 0.0037s
4774== 20190819082558 AddVcsIdToUser: migrated (0.0062s) ==========================
4776== 20190819082559 AddVcsIdToRepository: migrating =============================
4777-- add_column(:repositories, :vcs_id, :string, {:default=>nil})
4778 -> 0.0023s
4779-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_vcs_id_and_vcs_type ON repositories (vcs_id, vcs_type);")
4780 -> 0.0043s
4781== 20190819082559 AddVcsIdToRepository: migrated (0.0068s) ====================
4783== 20190820082431 AddVcsIdToOrganization: migrating ===========================
4784-- add_column(:organizations, :vcs_id, :string, {:default=>nil})
4785 -> 0.0017s
4786-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_vcs_id_and_vcs_type ON organizations (vcs_id, vcs_type);")
4787 -> 0.0040s
4788== 20190820082431 AddVcsIdToOrganization: migrated (0.0058s) ==================
4790== 20190913092543 CopyVcsIdForRepository: migrating ===========================
4791-- select_value("SELECT id FROM repositories ORDER BY id DESC LIMIT 1")
4792 -> 0.0010s
4793-- execute("UPDATE \"repositories\" SET vcs_id = github_id WHERE id BETWEEN 0 AND 5000")
4794 -> 0.0009s
4795== 20190913092543 CopyVcsIdForRepository: migrated (0.0024s) ==================
4797== 20190913092554 CopyVcsIdForUser: migrating =================================
4798-- select_value("SELECT id FROM users ORDER BY id DESC LIMIT 1")
4799 -> 0.0007s
4800-- execute("UPDATE \"users\" SET vcs_id = github_id WHERE id BETWEEN 0 AND 5000")
4801 -> 0.0007s
4802== 20190913092554 CopyVcsIdForUser: migrated (0.0017s) ========================
4804== 20190913092565 CopyVcsIdForOrganization: migrating =========================
4805-- select_value("SELECT id FROM organizations ORDER BY id DESC LIMIT 1")
4806 -> 0.0006s
4807-- execute("UPDATE \"organizations\" SET vcs_id = github_id WHERE id BETWEEN 0 AND 5000")
4808 -> 0.0007s
4809== 20190913092565 CopyVcsIdForOrganization: migrated (0.0016s) ================
4811== 20190920160300 MessagesAddTypeSourceLine: migrating ========================
4812-- add_column(:messages, :type, :string, {:default=>nil})
4813 -> 0.0013s
4814-- add_column(:messages, :src, :string, {:default=>nil})
4815 -> 0.0013s
4816-- add_column(:messages, :line, :integer, {:default=>nil})
4817 -> 0.0013s
4818== 20190920160300 MessagesAddTypeSourceLine: migrated (0.0039s) ===============
4820== 20191112000000 ReposAddFork: migrating =====================================
4821-- add_column(:repositories, :fork, :boolean, {:default=>nil})
4822 -> 0.0016s
4823== 20191112000000 ReposAddFork: migrated (0.0017s) ============================
4825== 20191112172015 AddVcsIndexToRepositories: migrating ========================
4826-- add_index(:repositories, [:vcs_type, :vcs_id], {:algorithm=>:concurrently})
4827 -> 0.0049s
4828== 20191112172015 AddVcsIndexToRepositories: migrated (0.0050s) ===============
4830== 20191112172332 AddVcsIndexToUsers: migrating ===============================
4831-- add_index(:users, [:vcs_type, :vcs_id], {:algorithm=>:concurrently})
4832 -> 0.0051s
4833== 20191112172332 AddVcsIndexToUsers: migrated (0.0052s) ======================
4835== 20191219091445 AddHeadRepoVcsIdToPullRequest: migrating ====================
4836-- add_column(:pull_requests, :head_repo_vcs_id, :string, {:default=>nil})
4837 -> 0.0016s
4838-- execute("CREATE INDEX CONCURRENTLY index_pull_requests_on_head_repo_vcs_id ON pull_requests (head_repo_vcs_id);")
4839 -> 0.0035s
4840== 20191219091445 AddHeadRepoVcsIdToPullRequest: migrated (0.0053s) ===========
4842== 20191219091446 AddHeadRepoVcsIdToDeletedPullRequest: migrating =============
4843-- add_column(:deleted_pull_requests, :head_repo_vcs_id, :string, {:default=>nil})
4844 -> 0.0017s
4845-- execute("CREATE INDEX CONCURRENTLY index_deleted_pull_requests_on_head_repo_vcs_id ON deleted_pull_requests (head_repo_vcs_id);")
4846 -> 0.0036s
4847== 20191219091446 AddHeadRepoVcsIdToDeletedPullRequest: migrated (0.0055s) ====
4849== 20200122000000 AddConfigsJson: migrating ===================================
4850-- add_column(:request_configs, :config_json, :json)
4851 -> 0.0010s
4852-- add_column(:build_configs, :config_json, :json)
4853 -> 0.0007s
4854-- add_column(:job_configs, :config_json, :json)
4855 -> 0.0005s
4856-- add_column(:deleted_request_configs, :config_json, :json)
4857 -> 0.0006s
4858-- add_column(:deleted_build_configs, :config_json, :json)
4859 -> 0.0005s
4860-- add_column(:deleted_job_configs, :config_json, :json)
4861 -> 0.0005s
4862== 20200122000000 AddConfigsJson: migrated (0.0042s) ==========================
4864== 20200127000000 DropJobConfigsGpu: migrating ================================
4865-- execute("DROP MATERIALIZED VIEW job_configs_gpu\n")
4866 -> 0.0011s
4867== 20200127000000 DropJobConfigsGpu: migrated (0.0012s) =======================
4869== 20200127000001 RenameConfigsJson: migrating ================================
4870-- remove_column(:request_configs, :config)
4871 -> 0.0009s
4872-- rename_column(:request_configs, :config_json, :config)
4873 -> 0.0035s
4874-- remove_column(:build_configs, :config)
4875 -> 0.0006s
4876-- rename_column(:build_configs, :config_json, :config)
4877 -> 0.0035s
4878-- remove_column(:job_configs, :config)
4879 -> 0.0007s
4880-- rename_column(:job_configs, :config_json, :config)
4881 -> 0.0035s
4882-- remove_column(:deleted_request_configs, :config)
4883 -> 0.0005s
4884-- rename_column(:deleted_request_configs, :config_json, :config)
4885 -> 0.0014s
4886-- remove_column(:deleted_build_configs, :config)
4887 -> 0.0005s
4888-- rename_column(:deleted_build_configs, :config_json, :config)
4889 -> 0.0013s
4890-- remove_column(:deleted_job_configs, :config)
4891 -> 0.0005s
4892-- rename_column(:deleted_job_configs, :config_json, :config)
4893 -> 0.0013s
4894== 20200127000001 RenameConfigsJson: migrated (0.0188s) =======================
4896== 20200214144655 AddIndexToJobVersionsOnJobId: migrating =====================
4897-- add_index(:job_versions, :job_id, {:algorithm=>:concurrently})
4898 -> 0.0041s
4899== 20200214144655 AddIndexToJobVersionsOnJobId: migrated (0.0041s) ============
4901== 20200225085734 AddVcsSlugToRepository: migrating ===========================
4902-- add_column(:repositories, :vcs_slug, :string, {:default=>nil})
4903 -> 0.0017s
4904== 20200225085734 AddVcsSlugToRepository: migrated (0.0018s) ==================
4906== 20200227085734 AddVcsSourceHostToRepository: migrating =====================
4907-- add_column(:repositories, :vcs_source_host, :string, {:default=>nil})
4908 -> 0.0017s
4909== 20200227085734 AddVcsSourceHostToRepository: migrated (0.0018s) ============
4911== 20200227085736 AddVcsIndexes: migrating ====================================
4912-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_slug_or_on_lower_owner_name ON repositories (LOWER(vcs_slug), LOWER(owner_name), LOWER(name), LOWER(vcs_type)) WHERE invalidated_at IS NULL")
4913 -> 0.0045s
4914== 20200227085736 AddVcsIndexes: migrated (0.0046s) ===========================
4916== 20200227085737 AddRepositoryNameAndSlugIndex: migrating ====================
4917-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_slug_or_names ON repositories (vcs_slug, owner_name, name) WHERE invalidated_at IS NULL")
4918 -> 0.0041s
4919== 20200227085737 AddRepositoryNameAndSlugIndex: migrated (0.0041s) ===========
4921== 20200227085742 AddPullRequestSourceData: migrating =========================
4922-- add_column(:pull_requests, :base_repo_slug, :string, {:default=>nil})
4923 -> 0.0015s
4924-- add_column(:pull_requests, :base_repo_vcs_id, :string, {:default=>nil})
4925 -> 0.0016s
4926-- add_column(:pull_requests, :base_ref, :string, {:default=>nil})
4927 -> 0.0015s
4928-- add_column(:deleted_pull_requests, :base_repo_slug, :string, {:default=>nil})
4929 -> 0.0014s
4930-- add_column(:deleted_pull_requests, :base_repo_vcs_id, :string, {:default=>nil})
4931 -> 0.0013s
4932-- add_column(:deleted_pull_requests, :base_ref, :string, {:default=>nil})
4933 -> 0.0014s
4934== 20200227085742 AddPullRequestSourceData: migrated (0.0091s) ================
4936== 20200312184018 AddUserUtmParamsTable: migrating ============================
4937-- create_table(:user_utm_params)
4938 -> 0.0100s
4939== 20200312184018 AddUserUtmParamsTable: migrated (0.0101s) ===================
4941== 20200316085738 AddRepositoryVcsSlugIndex: migrating ========================
4942-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_vcs_slug ON repositories (LOWER(vcs_slug))")
4943 -> 0.0044s
4944-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_vcs_slug_valid ON repositories (LOWER(vcs_slug)) WHERE invalidated_at IS NULL")
4945 -> 0.0041s
4946== 20200316085738 AddRepositoryVcsSlugIndex: migrated (0.0086s) ===============
4948== 20200325115329 AddMultipleJobStateIndexesOrderByNewest: migrating ==========
4949-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_booting_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc) where state = 'booting'")
4950 -> 0.0042s
4951-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_canceled_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc) where state = 'canceled'")
4952 -> 0.0039s
4953-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_created_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc) where state = 'created'")
4954 -> 0.0041s
4955-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_errored_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc) where state = 'errored'")
4956 -> 0.0040s
4957-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_failed_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc) where state = 'failed'")
4958 -> 0.0046s
4959-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_passed_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc) where state = 'passed'")
4960 -> 0.0048s
4961-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_queued_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc) where state = 'queued'")
4962 -> 0.0043s
4963-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_received_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc) where state = 'received'")
4964 -> 0.0044s
4965-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_started_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc) where state = 'started'")
4966 -> 0.0043s
4967== 20200325115329 AddMultipleJobStateIndexesOrderByNewest: migrated (0.0393s) =
4969== 20200325130013 AddFunctionMostRecentJobIdsForUserRepositoriesByStates: migrating
4970-- execute("\n CREATE OR REPLACE FUNCTION\n most_recent_job_ids_for_user_repositories_by_states(uid int, states varchar default '') RETURNS table (id bigint) AS\n $BODY$\n DECLARE\n rid int;\n BEGIN\n SET LOCAL work_mem = '16MB';\n IF states <> '' THEN\n RETURN QUERY WITH matrix AS (\n SELECT repository_id, replace(replace(job_state::varchar, '(', ''), ')', '') as job_state\n FROM permissions p\n CROSS JOIN (\n SELECT unnest(regexp_split_to_array(states, ','))\n ) AS job_state\n WHERE p.user_id = uid\n )\n SELECT recent.id\n FROM matrix m\n CROSS JOIN LATERAL (\n SELECT job_id AS id, repository_id\n FROM most_recent_job_ids_for_repository_by_state(m.repository_id, m.job_state::varchar)\n ) AS recent\n ORDER BY id desc;\n ELSE\n for rid in\n SELECT repository_id\n FROM permissions\n WHERE user_id = uid\n LOOP\n RETURN QUERY select j.id from jobs j where repository_id = rid order by j.id desc limit 100;\n END LOOP;\n END IF;\n END\n $BODY$\n LANGUAGE plpgsql;\n ")
4971 -> 0.0013s
4972== 20200325130013 AddFunctionMostRecentJobIdsForUserRepositoriesByStates: migrated (0.0014s)
4974== 20200330110527 AddFunctionMostRecentJobIdsForRepositoryByState: migrating ==
4975-- execute("\n CREATE OR REPLACE FUNCTION\n most_recent_job_ids_for_repository_by_state(rid int, st varchar) RETURNS table (job_id bigint, repository_id int) AS\n $BODY$\n DECLARE\n BEGIN\n RETURN QUERY select j.id, j.repository_id from jobs j where j.repository_id = rid and j.state = st order by j.id desc limit 100;\n END\n $BODY$\n LANGUAGE plpgsql;\n ")
4976 -> 0.0010s
4977== 20200330110527 AddFunctionMostRecentJobIdsForRepositoryByState: migrated (0.0011s)
4979== 20200406121218 AddIndexJobsOnRepositoryIdOrderByNewest: migrating ==========
4980-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc)")
4981 -> 0.0043s
4982== 20200406121218 AddIndexJobsOnRepositoryIdOrderByNewest: migrated (0.0043s) =
4984== 20200424000000 RequestRawConfigurationsAddMergeMode: migrating =============
4985-- add_column(:request_raw_configurations, :merge_mode, :string, {:default=>nil})
4986 -> 0.0016s
4987-- add_column(:deleted_request_raw_configurations, :merge_mode, :string, {:default=>nil})
4988 -> 0.0026s
4989== 20200424000000 RequestRawConfigurationsAddMergeMode: migrated (0.0044s) ====
4991== 20200527123653 AddColumnPriorityToTableJobsAndDeletedJobs: migrating =======
4992-- add_column(:jobs, :priority, :integer, {:default=>nil})
4993 -> 0.0017s
4994-- add_column(:deleted_jobs, :priority, :integer, {:default=>nil})
4995 -> 0.0016s
4996== 20200527123653 AddColumnPriorityToTableJobsAndDeletedJobs: migrated (0.0034s)
4998== 20200928143126 AddBuildTriggerPermissions: migrating =======================
4999-- add_column(:memberships, :build_permission, :boolean, {:default=>nil})
5000 -> 0.0015s
5001-- add_column(:permissions, :build, :boolean, {:default=>nil})
5002 -> 0.0014s
5003== 20200928143126 AddBuildTriggerPermissions: migrated (0.0031s) ==============
5005== 20202427123653 AddColumnHasLocalRegistrationToTableSubscriptions: migrating
5006-- add_column(:subscriptions, :has_local_registration, :boolean, {:default=>nil})
5007 -> 0.0016s
5008== 20202427123653 AddColumnHasLocalRegistrationToTableSubscriptions: migrated (0.0017s)
5010== 20210203130200 CreateBuildBackupsTable: migrating ==========================
5011-- create_table(:build_backups, {:id=>:integer})
5012 -> 0.0065s
5013== 20210203130200 CreateBuildBackupsTable: migrated (0.0066s) =================
5015== 20210203143155 AddConfirmationFieldsToUser: migrating ======================
5016-- add_column(:users, :confirmed_at, :timestamp, {:precision=>nil})
5017 -> 0.0053s
5018-- add_column(:users, :token_expires_at, :timestamp, {:precision=>nil})
5019 -> 0.0022s
5020-- add_column(:users, :confirmation_token, :string)
5021 -> 0.0017s
5022-- add_index(:users, :confirmation_token)
5023 -> 0.0035s
5024== 20210203143155 AddConfirmationFieldsToUser: migrated (0.0131s) =============
5026== 20210203143406 ConfirmCurrentUsers: migrating ==============================
5027== 20210203143406 ConfirmCurrentUsers: migrated (0.0000s) =====================
5029== 20210614140633 AddServerTypeToRepositories: migrating ======================
5030-- add_column(:repositories, :server_type, :string, {:limit=>20})
5031 -> 0.0024s
5032== 20210614140633 AddServerTypeToRepositories: migrated (0.0027s) =============
5034== 20220610092916 MostRecentJobIdsForUserRepositoriesByStatesLw: migrating ====
5035-- execute("\n CREATE OR REPLACE FUNCTION\n most_recent_job_ids_for_user_repositories_by_states_lw(uid int, states varchar default '') RETURNS table (id bigint)\n LANGUAGE plpgsql\n AS $$\n DECLARE\n rid int;\n BEGIN\n SET LOCAL work_mem = '16MB';\n IF states <> '' THEN\n for rid in\n SELECT repository_id\n FROM permissions\n WHERE user_id = uid\n LOOP\n RETURN QUERY select j.id from jobs j where repository_id = rid and state in (SELECT unnest(regexp_split_to_array(states, ','))) order by j.id desc limit 100;\n END LOOP;\n ELSE\n for rid in\n SELECT repository_id\n FROM permissions\n WHERE user_id = uid\n LOOP\n RETURN QUERY select j.id from jobs j where repository_id = rid order by j.id desc limit 100;\n END LOOP;\n END IF;\n END\n $$;\n ")
5036 -> 0.0020s
5037== 20220610092916 MostRecentJobIdsForUserRepositoriesByStatesLw: migrated (0.0023s)
5039== 20220621151453 AddColumnRestartedByToTableJobs: migrating ==================
5040-- add_column(:jobs, :restarted_by, :integer, {:default=>nil})
5041 -> 0.0023s
5042-- add_column(:deleted_jobs, :restarted_by, :integer, {:default=>nil})
5043 -> 0.0016s
5044== 20220621151453 AddColumnRestartedByToTableJobs: migrated (0.0042s) =========
5046== 20220722162400 CreateAuditsTable: migrating ================================
5047-- create_table(:audits)
5048 -> 0.0064s
5049== 20220722162400 CreateAuditsTable: migrated (0.0065s) =======================
5051== 20220825140522 CreateCustomKeysTable: migrating ============================
5052-- create_table(:custom_keys)
5053 -> 0.0065s
5054== 20220825140522 CreateCustomKeysTable: migrated (0.0066s) ===================
5056== 20220905144600 AddScanFailedAtToRepositories: migrating ====================
5057-- add_column(:repositories, :scan_failed_at, :timestamp)
5058 -> 0.0012s
5059== 20220905144600 AddScanFailedAtToRepositories: migrated (0.0013s) ===========
5061== 20221214171030 AddPurposeColumnToTokens: migrating =========================
5062-- add_column(:tokens, :purpose, :integer, {:limit=>4, :default=>0})
5063 -> 0.0015s
5064== 20221214171030 AddPurposeColumnToTokens: migrated (0.0016s) ================
5066== 20230208161446 AddCloneUrlToRepositories: migrating ========================
5067-- add_column(:repositories, :clone_url, :string)
5068 -> 0.0011s
5069== 20230208161446 AddCloneUrlToRepositories: migrated (0.0011s) ===============
5071== 20230505055250 RolifyCreateRoles: migrating ================================
5072-- create_table(:roles)
5073 -> 0.0094s
5074-- create_table(:role_names)
5075 -> 0.0057s
5076-- create_table(:users_roles, {:id=>false})
5077 -> 0.0051s
5078-- add_index(:roles, :name)
5079 -> 0.0020s
5080-- add_index(:role_names, :name)
5081 -> 0.0020s
5082-- add_index(:roles, [:name, :resource_type, :resource_id])
5083 -> 0.0022s
5084-- add_index(:users_roles, [:user_id, :role_id])
5085 -> 0.0021s
5086== 20230505055250 RolifyCreateRoles: migrated (0.0288s) =======================
5088== 20230505060110 CreatePolicies: migrating ===================================
5089-- create_table(:policy_permissions)
5090 -> 0.0062s
5091-- create_table(:role_permissions, {:id=>false})
5092 -> 0.0070s
5093-- add_index(:policy_permissions, :name)
5094 -> 0.0127s
5095-- add_index(:role_permissions, [:role_name_id, :policy_permission_id])
5096 -> 0.0024s
5097== 20230505060110 CreatePolicies: migrated (0.0296s) ==========================
5099== 20230713115855 CreatePermissionsSync: migrating ============================
5100-- create_table(:permissions_syncs)
5101 -> 0.0101s
5102== 20230713115855 CreatePermissionsSync: migrated (0.0101s) ===================
5104== 20231005111642 CreatePermissionsIndex: migrating ===========================
5105-- add_index(:permissions_syncs, [:user_id, :resource_type, :resource_id], {:name=>"index_permissions_syncs_on_user_and_resource"})
5106 -> 0.0025s
5107-- add_index(:role_names, :role_type)
5108 -> 0.0019s
5109== 20231005111642 CreatePermissionsIndex: migrated (0.0045s) ==================
5111== 20240823085523 AddVmsizeToJobs: migrating ==================================
5112-- add_column(:jobs, :vm_size, :string)
5113 -> 0.0009s
5114-- add_column(:deleted_jobs, :vm_size, :string)
5115 -> 0.0005s
5116== 20240823085523 AddVmsizeToJobs: migrated (0.0014s) =========================
5118 sets unique_number on INSERT
5119 does not set unique_number on INSERT if 0 is given as a value
5120 sets unique_number on UPDATE
5121 does not set unique_number on UPDATE if unique_number is 0
5123set_updated_at trigger
5124 jobs
5125 sets updated_at on INSERT
5126 sets updated_at on UPDATE
5127 works also for new columns
5128 builds
5129 sets updated_at on INSERT
5130 sets updated_at on UPDATE
5131 works also for new columns
5133soft delete repo
5134 ensure that soft delete tables have the same fields that the originals
5135 soft deleting a repo moves all of the related data to deleted_* tables
5137Rake tasks
5138 rake db:create
5139 migrates the main db
5140 rake db:schema:load
5141 loads the main schema
5143Deprecation Warnings:
5145Using `should` from rspec-expectations' old `:should` syntax without explicitly enabling the syntax is deprecated. Use the new `:expect` syntax or explicitly enable `:should` with `config.expect_with(:rspec) { |c| c.syntax = :should }` instead. Called from /home/travis/build/travis-ci/travis-migrations/spec/soft_delete_repo_spec.rb:118:in `block (2 levels) in <top (required)>'.
5148If you need more of the backtrace for any of these deprecations to
5149identify where to make the necessary changes, you can configure
5150`config.raise_errors_for_deprecations!`, and it will turn the
5151deprecation warnings into errors, giving you the full backtrace.
51531 deprecation warning total
5155Finished in 40.57 seconds (files took 0.39902 seconds to load)
515619 examples, 0 failures
5158The command "bundle exec rspec spec" exited with 0.
cache.2
5159store build cache
51600.00s2.90schanges detected, packing new archive
5161gzip: warning: GZIP environment variable is deprecated; use an alias or script
5162uploading master/cache--linux-focal-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855--rvm-3.2.2--gemfile-Gemfile.tgz
5163cache uploaded
after_success
51650.20s$ script/upload_structure.rb
5166<internal:/home/travis/.rvm/rubies/ruby-3.2.2/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require': cannot load such file -- s3 (LoadError)
5167 from <internal:/home/travis/.rvm/rubies/ruby-3.2.2/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
5168 from script/upload_structure.rb:5:in `<main>'
5170Done. Your build exited with 0.
Top