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

Release 2024 09 02

Dominik authored GitHub committed

Cron job event #3851 passed

  • Ran for
AMD64
Ruby: 3.2.2
Git
Raw log
Scroll to End of Log
0.00s0.22s0.12s0.07s0.00s
worker_info
1Worker information
2hostname: 1d1472d0-f977-4954-8e60-9bf440307ce4@1.worker-n2-com-f8c4bb956-cnsdw.gce-production-1
3version: deploy_2024.10.02-2-gc32b553 https://github.com/travis-ci/worker/tree/c32b553e81363378d09787f52103ea9bcadf253c
4instance: travis-job-82afae2f-fdee-40d4-8723-7876cd9411db travis-ci-ubuntu-2004-1726220016-655c8cb5 (via amqp)
5startup: 5.973940005s
60.23s0.00s0.01s0.00s0.01s
system_info
7Build system information
8Build language: ruby
9Build dist: focal
10Build id: 273988195
11Job id: 630039749
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.82s0.34s0.08s0.02s0.05s0.00s0.03s0.01s0.02s0.01s0.02s0.00s0.47sOK
1650.00s0.03s0.00s0.01s0.14s0.00s0.00s0.00s0.01s0.00s0.13s0.00s1.04s0.00s0.13s6.04s0.00s4.09s0.00s2.29s
docker_mtu_and_registry_mirrors
Docker
resolvconf
apt
166Adding APT Sources
1670.85s$ curl -sSL "https://www.postgresql.org/media/keys/ACCC4CF8.asc" | sudo -E apt-key add -
168OK
1690.05s$ 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
17015.46s$ 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
17413.29s$ 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 0s (45.8 MB/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.78s$ travis_setup_postgresql 11
236Starting PostgreSQL v11
237sudo systemctl start postgresql@11-main
git.checkout
2390.01s0.56s$ 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.11s$ 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!
277334.06s$ 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
290curl: (60) SSL certificate problem: certificate has expired
291More details here: https://curl.haxx.se/docs/sslcerts.html
293curl failed to verify the legitimacy of the server and therefore could not
294establish a secure connection to it. To learn more about this situation and
295how to fix it, please visit the web page mentioned above.
296/home/travis/.rvm/scripts/fetch: line 104: log: command not found
297Checking fallback: ftp://rubies.travis-ci.org/ubuntu/20.04/x86_64/ruby-3.2.2.tar.bz2?rvm=1.29.12-next
298Checking fallback: https://www.mirrorservice.org/sites/rubies.travis-ci.org/ubuntu/20.04/x86_64/ruby-3.2.2.tar.bz2?rvm=1.29.12-next
299No fallback URL could be found, try increasing timeout with:
301 echo "export rvm_max_time_flag=20" >> ~/.rvmrc
303Downloading https://rubies.travis-ci.org/ubuntu/20.04/x86_64/ruby-3.2.2.tar.bz2 failed.
304Mounting remote ruby failed with status 2, stopping installation.
305Checking requirements for ubuntu.
306Requirements installation successful.
307curl: (22) The requested URL returned error: 404
308Installing Ruby from source to: /home/travis/.rvm/rubies/ruby-3.2.2, this may take a while depending on your cpu(s)...
309curl: (22) The requested URL returned error: 404
310ruby-3.2.2 - #downloading ruby-3.2.2, this may take a while depending on your connection...
311 % Total % Received % Xferd Average Speed Time Time Time Current
312 Dload Upload Total Spent Left Speed
313100 19.5M 100 19.5M 0 0 73.1M 0 --:--:-- --:--:-- --:--:-- 72.8M
314ruby-3.2.2 - #extracting ruby-3.2.2 to /home/travis/.rvm/src/ruby-3.2.2.....
315ruby-3.2.2 - #autogen.sh.
316ruby-3.2.2 - #configuring.............................................................................
317ruby-3.2.2 - #post-configuration..
318ruby-3.2.2 - #compiling..................................................................................................
319ruby-3.2.2 - #installing......................
320ruby-3.2.2 - #making binaries executable...
321Installed rubygems 3.4.10 is newer than 3.0.9 provided with installed ruby, skipping installation, use --force to force installation.
322ruby-3.2.2 - #gemset created /home/travis/.rvm/gems/ruby-3.2.2@global
323ruby-3.2.2 - #importing gemset /home/travis/.rvm/gemsets/global.gems................................................................
324ruby-3.2.2 - #generating global wrappers........
325ruby-3.2.2 - #uninstalling gem rubygems-bundler-1.4.5.
326ruby-3.2.2 - #gemset created /home/travis/.rvm/gems/ruby-3.2.2
327ruby-3.2.2 - #importing gemset /home/travis/.rvm/gemsets/default.gems..............
328ruby-3.2.2 - #generating default wrappers........
329ruby-3.2.2 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
330Install of ruby-3.2.2 - #complete
331Ruby was built without documentation, to build it run: rvm docs generate-ri
332Using /home/travis/.rvm/gems/ruby-3.2.2
334$ export BUNDLE_GEMFILE=$PWD/Gemfile
cache.1
335Setting up build cache
336$ export CASHER_DIR=${TRAVIS_HOME}/.casher
3370.17s$ Installing caching utilities
3380.00s1.59sattempting to download cache archive
339fetching master/cache--linux-focal-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855--rvm-3.2.2--gemfile-Gemfile.tgz
340found cache
3410.00s2.10sadding /home/travis/build/travis-ci/travis-migrations/vendor/bundle to cache
342creating directory /home/travis/build/travis-ci/travis-migrations/vendor/bundle
ruby.versions
345$ ruby --version
346ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]
347$ rvm --version
348rvm 1.29.12-next (master) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
349$ bundle --version
350Bundler version 2.4.10
351$ gem --version
3523.4.10
before_install.1
3544.50s$ gem update --system
355Updating rubygems-update
356Successfully installed rubygems-update-3.6.3
357Installing RubyGems 3.6.3
358 Successfully built RubyGem
359 Name: bundler
360 Version: 2.6.3
361 File: bundler-2.6.3.gem
362Bundler 2.6.3 installed
363RubyGems 3.6.3 installed
364Regenerating binstubs
365Regenerating plugins
367# 3.6.3 / 2025-01-16
369## Enhancements:
371* Add credentials file path to `gem env`. Pull request
372 [#8375](https://github.com/rubygems/rubygems/pull/8375) by duckinator
373* Update SPDX license list as of 2024-12-30. Pull request
374 [#8387](https://github.com/rubygems/rubygems/pull/8387) by
375 github-actions[bot]
376* Installs bundler 2.6.3 as a default gem.
378## Bug fixes:
380* Fix `@licenses` array unmarshalling. Pull request
381 [#8411](https://github.com/rubygems/rubygems/pull/8411) by rykov
383# 3.6.2 / 2024-12-23
385## Security:
387* Fix Gem::SafeMarshal buffer overrun when given lengths larger than fit
388 into a byte. Pull request
389 [#8305](https://github.com/rubygems/rubygems/pull/8305) by segiddins
390* Improve type checking in marshal_load methods. Pull request
391 [#8306](https://github.com/rubygems/rubygems/pull/8306) by segiddins
393## Enhancements:
395* Skip rdoc hooks and their tests on newer rdoc versions. Pull request
396 [#8340](https://github.com/rubygems/rubygems/pull/8340) by
397 deivid-rodriguez
398* Installs bundler 2.6.2 as a default gem.
400## Bug fixes:
402* Fix serialized metadata including an empty `@original_platform`
403 attribute. Pull request
404 [#8355](https://github.com/rubygems/rubygems/pull/8355) by
405 deivid-rodriguez
407# 3.6.1 / 2024-12-17
409## Enhancements:
411* Installs bundler 2.6.1 as a default gem.
413## Bug fixes:
415* Fix `gem info` tagging some non default gems as default. Pull request
416 [#8321](https://github.com/rubygems/rubygems/pull/8321) by
417 deivid-rodriguez
419## Documentation:
421* Fix broken links. Pull request
422 [#8327](https://github.com/rubygems/rubygems/pull/8327) by st0012
424# 3.6.0 / 2024-12-16
426## Security:
428* Stop storing executable names in ivars. Pull request
429 [#8307](https://github.com/rubygems/rubygems/pull/8307) by segiddins
431## Breaking changes:
433* Drop ruby 3.0 support. Pull request
434 [#8091](https://github.com/rubygems/rubygems/pull/8091) by segiddins
436## Features:
438* Add --attestation option to gem push. Pull request
439 [#8239](https://github.com/rubygems/rubygems/pull/8239) by segiddins
441## Enhancements:
443* Skip unresolved deps warning on `Gem::Specification.reset` on benign
444 cases. Pull request
445 [#8309](https://github.com/rubygems/rubygems/pull/8309) by
446 deivid-rodriguez
447* Let `gem install <name>` suggest `<name>-ruby` and `ruby-<name>` when
448 providing "did you mean" suggestions. Pull request
449 [#8197](https://github.com/rubygems/rubygems/pull/8197) by duckinator
450* Update SPDX license list as of 2024-08-19. Pull request
451 [#8233](https://github.com/rubygems/rubygems/pull/8233) by
452 github-actions[bot]
453* Add `--target-rbconfig` option to `gem install` and `gem update`
454 commands. Pull request
455 [#7628](https://github.com/rubygems/rubygems/pull/7628) by kateinoigakukun
456* Skip nil-value keys to make metadata reproducible. Pull request
457 [#7129](https://github.com/rubygems/rubygems/pull/7129) by nobu
458* Allow disabling installation of compiled extensions into lib through
459 `Gem.configuration.install_extension_in_lib`. Pull request
460 [#6463](https://github.com/rubygems/rubygems/pull/6463) by hsbt
461* Installs bundler 2.6.0 as a default gem.
463## Bug fixes:
465* Set $0 to exe when running `gem exec` to fix name in CLI output. Pull
466 request [#8267](https://github.com/rubygems/rubygems/pull/8267) by adam12
467* Fix manifest in gem package using incorrect platform sometimes. Pull
468 request [#8202](https://github.com/rubygems/rubygems/pull/8202) by
469 deivid-rodriguez
471## Documentation:
473* Fix missing single quote in git source example. Pull request
474 [#8303](https://github.com/rubygems/rubygems/pull/8303) by nobu
475* Update the `gem install` demo in REAME to use a gem that just works on
476 Windows. Pull request
477 [#8262](https://github.com/rubygems/rubygems/pull/8262) by soda92
478* Unify rubygems and bundler docs directory. Pull request
479 [#8159](https://github.com/rubygems/rubygems/pull/8159) by hsbt
481# 3.5.23 / 2024-11-05
483## Enhancements:
485* Validate user input encoding of `gem` CLI arguments. Pull request
486 [#6471](https://github.com/rubygems/rubygems/pull/6471) by
487 deivid-rodriguez
488* Fix `gem update --system` leaving old default bundler executables
489 around. Pull request
490 [#8172](https://github.com/rubygems/rubygems/pull/8172) by
491 deivid-rodriguez
492* Installs bundler 2.5.23 as a default gem.
494## Bug fixes:
496* Fix commands with 2 MFA requests when webauthn is enabled. Pull request
497 [#8174](https://github.com/rubygems/rubygems/pull/8174) by
498 deivid-rodriguez
499* Make `--enable-load-relative` binstubs prolog work when Ruby is not
500 installed in the same directory as the binstub. Pull request
501 [#7872](https://github.com/rubygems/rubygems/pull/7872) by
502 deivid-rodriguez
504## Performance:
506* Speed up `gem install <nonexistent-gem>` by finding alternative name
507 suggestions faster. Pull request
508 [#8084](https://github.com/rubygems/rubygems/pull/8084) by duckinator
510## Documentation:
512* Add missing comma in documentation. Pull request
513 [#8152](https://github.com/rubygems/rubygems/pull/8152) by leoarnold
515# 3.5.22 / 2024-10-16
517## Enhancements:
519* Prevent `._*` files in packages generated from macOS. Pull request
520 [#8150](https://github.com/rubygems/rubygems/pull/8150) by
521 deivid-rodriguez
522* Fix `gem pristine etc` resetting gem twice sometimes. Pull request
523 [#8117](https://github.com/rubygems/rubygems/pull/8117) by
524 deivid-rodriguez
525* Allow `gem pristine` to reset default gems too. Pull request
526 [#8118](https://github.com/rubygems/rubygems/pull/8118) by
527 deivid-rodriguez
528* Update vendored `uri` and `net-http`. Pull request
529 [#8112](https://github.com/rubygems/rubygems/pull/8112) by segiddins
530* Installs bundler 2.5.22 as a default gem.
532## Bug fixes:
534* Fix `gem contents` for default gems. Pull request
535 [#8132](https://github.com/rubygems/rubygems/pull/8132) by
536 deivid-rodriguez
537* Fix duplicated specs when they have been previously activated. Pull
538 request [#8131](https://github.com/rubygems/rubygems/pull/8131) by
539 deivid-rodriguez
540* Fix `gem install` on NFS shares. Pull request
541 [#8123](https://github.com/rubygems/rubygems/pull/8123) by
542 deivid-rodriguez
543* Fix a `gem install` crash during "done installing" hooks. Pull request
544 [#8113](https://github.com/rubygems/rubygems/pull/8113) by
545 deivid-rodriguez
546* Fix plugin command loading. Pull request
547 [#8121](https://github.com/rubygems/rubygems/pull/8121) by
548 deivid-rodriguez
550# 3.5.21 / 2024-10-03
552## Enhancements:
554* Fix `Gem::MissingSpecVersionError#to_s` not showing exception message.
555 Pull request [#8074](https://github.com/rubygems/rubygems/pull/8074) by
556 deivid-rodriguez
557* Remove code that makes suggest_gems_from_name give worse results. Pull
558 request [#8083](https://github.com/rubygems/rubygems/pull/8083) by
559 duckinator
560* Warning about PATH in `--user-install` mode is only necessary for gems
561 with executables. Pull request
562 [#8071](https://github.com/rubygems/rubygems/pull/8071) by
563 deivid-rodriguez
564* Installs bundler 2.5.21 as a default gem.
566## Bug fixes:
568* Fix error in one source when fetching dependency APIs clearing results
569 from all sources. Pull request
570 [#8080](https://github.com/rubygems/rubygems/pull/8080) by
571 deivid-rodriguez
572* Fix `gem cleanup` warning when two versions of psych installed. Pull
573 request [#8072](https://github.com/rubygems/rubygems/pull/8072) by
574 deivid-rodriguez
576# 3.5.20 / 2024-09-24
578## Enhancements:
580* Installs bundler 2.5.20 as a default gem.
582# 3.5.19 / 2024-09-18
584## Enhancements:
586* Standardize pretty-print output for `Gem::Source` and subclasses. Pull
587 request [#7994](https://github.com/rubygems/rubygems/pull/7994) by
588 djberube
589* Update vendored `molinillo` to master and vendored `resolv` to 0.4.0.
590 Pull request [#7521](https://github.com/rubygems/rubygems/pull/7521) by
591 hsbt
592* Installs bundler 2.5.19 as a default gem.
594## Bug fixes:
596* Fix `bundle exec rake install` failing when local gem has extensions.
597 Pull request [#7977](https://github.com/rubygems/rubygems/pull/7977) by
598 deivid-rodriguez
599* Make `gem exec` use the standard GEM_HOME. Pull request
600 [#7982](https://github.com/rubygems/rubygems/pull/7982) by
601 deivid-rodriguez
602* Fix `gem fetch` always exiting with zero status code. Pull request
603 [#8007](https://github.com/rubygems/rubygems/pull/8007) by
604 deivid-rodriguez
605* Remove temporary `.lock` files unintentionally left around by gem
606 installer. Pull request
607 [#7939](https://github.com/rubygems/rubygems/pull/7939) by nobu
608* Removed unused stringio. Pull request
609 [#8001](https://github.com/rubygems/rubygems/pull/8001) by hsbt
610* Avoid another race condition of open mode. Pull request
611 [#7931](https://github.com/rubygems/rubygems/pull/7931) by nobu
612* Fix `@license` typo preventing licenses from being correctly
613 unmarshalled. Pull request
614 [#7975](https://github.com/rubygems/rubygems/pull/7975) by djberube
616## Performance:
618* Fix `gem install does-not-exist` being super slow. Pull request
619 [#8006](https://github.com/rubygems/rubygems/pull/8006) by
620 deivid-rodriguez
622# 3.5.18 / 2024-08-26
624## Enhancements:
626* Installs bundler 2.5.18 as a default gem.
628## Bug fixes:
630* Fix `gem uninstall <name>:<version>` failing on shadowed default gems.
631 Pull request [#7949](https://github.com/rubygems/rubygems/pull/7949) by
632 deivid-rodriguez
634# 3.5.17 / 2024-08-01
636## Enhancements:
638* Explicitly encode `Gem::Dependency` to yaml. Pull request
639 [#7867](https://github.com/rubygems/rubygems/pull/7867) by segiddins
640* Installs bundler 2.5.17 as a default gem.
642## Bug fixes:
644* Fix `gem list` regression when a regular gem shadows a default one. Pull
645 request [#7892](https://github.com/rubygems/rubygems/pull/7892) by
646 deivid-rodriguez
647* Always leave default gem executables around. Pull request
648 [#7879](https://github.com/rubygems/rubygems/pull/7879) by
649 deivid-rodriguez
650* Fix line comment issue for hash when loading gemrc. Pull request
651 [#7857](https://github.com/rubygems/rubygems/pull/7857) by leetking
653# 3.5.16 / 2024-07-18
655## Enhancements:
657* Installs bundler 2.5.16 as a default gem.
659## Bug fixes:
661* Fix gemspec `require_paths` validation. Pull request
662 [#7866](https://github.com/rubygems/rubygems/pull/7866) by
663 deivid-rodriguez
664* Fix loading of nested `gemrc` config keys when specified as symbols.
665 Pull request [#7851](https://github.com/rubygems/rubygems/pull/7851) by
666 moofkit
668## Performance:
670* Use `caller_locations` instead of splitting `caller`. Pull request
671 [#7708](https://github.com/rubygems/rubygems/pull/7708) by nobu
673# 3.5.15 / 2024-07-09
675## Enhancements:
677* Installs bundler 2.5.15 as a default gem.
679## Bug fixes:
681* Restrict generic `arm` to only match 32-bit arm. Pull request
682 [#7830](https://github.com/rubygems/rubygems/pull/7830) by ntkme
683* Protect creating binstubs with a file lock. Pull request
684 [#7806](https://github.com/rubygems/rubygems/pull/7806) by
685 deivid-rodriguez
687## Documentation:
689* Make it clearer that `add_dependency` is the main way to add
690 non-development dependencies. Pull request
691 [#7800](https://github.com/rubygems/rubygems/pull/7800) by jeromedalbert
693# 3.5.14 / 2024-06-21
695## Enhancements:
697* Installs bundler 2.5.14 as a default gem.
699## Bug fixes:
701* Make "bundler? update --bundler" behave identically. Pull request
702 [#7778](https://github.com/rubygems/rubygems/pull/7778) by x-yuri
704# 3.5.13 / 2024-06-14
706## Enhancements:
708* Installs bundler 2.5.13 as a default gem.
710## Bug fixes:
712* Never remove executables that may belong to a default gem. Pull request
713 [#7747](https://github.com/rubygems/rubygems/pull/7747) by
714 deivid-rodriguez
716# 3.5.12 / 2024-06-13
718## Enhancements:
720* Installs bundler 2.5.12 as a default gem.
722## Bug fixes:
724* Fix `gem uninstall` unresolved specifications warning. Pull request
725 [#7667](https://github.com/rubygems/rubygems/pull/7667) by
726 deivid-rodriguez
727* Fix `gem pristine` sometimes failing to pristine user installed gems.
728 Pull request [#7664](https://github.com/rubygems/rubygems/pull/7664) by
729 deivid-rodriguez
731# 3.5.11 / 2024-05-28
733## Enhancements:
735* Update SPDX license list as of 2024-05-22. Pull request
736 [#7689](https://github.com/rubygems/rubygems/pull/7689) by
737 github-actions[bot]
738* Fix the update_rubygems inconsistency (--disable-gems). Pull request
739 [#7658](https://github.com/rubygems/rubygems/pull/7658) by x-yuri
740* Accept WASI as an OS name in Gem::Platform. Pull request
741 [#7629](https://github.com/rubygems/rubygems/pull/7629) by kateinoigakukun
742* Warn if RubyGems version explicitly set in gemspec does not match
743 running version. Pull request
744 [#7460](https://github.com/rubygems/rubygems/pull/7460) by
745 deivid-rodriguez
746* Installs bundler 2.5.11 as a default gem.
748## Bug fixes:
750* Fix binstubs sometimes not getting regenerated when `--destdir` is
751 given. Pull request
752 [#7660](https://github.com/rubygems/rubygems/pull/7660) by
753 deivid-rodriguez
754* Fix `gem uninstall --user-install` for symlinked HOME. Pull request
755 [#7645](https://github.com/rubygems/rubygems/pull/7645) by
756 deivid-rodriguez
757* Fix issue when plugin stubs would sometimes not be properly removed by
758 `gem uninstall`. Pull request
759 [#7631](https://github.com/rubygems/rubygems/pull/7631) by
760 deivid-rodriguez
761* Fix plugins uninstallation for user installed gems. Pull request
762 [#6456](https://github.com/rubygems/rubygems/pull/6456) by voxik
764## Performance:
766* Use a constant empty tar header to avoid extra allocations. Pull request
767 [#7484](https://github.com/rubygems/rubygems/pull/7484) by segiddins
769## Documentation:
771* Recommend `bin/rake` over `rake` in contributing docs. Pull request
772 [#7648](https://github.com/rubygems/rubygems/pull/7648) by
773 deivid-rodriguez
775# 3.5.10 / 2024-05-03
777## Security:
779* Add a limit to the size of the metadata and checksums files in a gem
780 package. Pull request
781 [#7568](https://github.com/rubygems/rubygems/pull/7568) by segiddins
783## Enhancements:
785* Don't fully require `rubygems` from `rubygems/package` to prevent some
786 circular require warnings when using Bundler. Pull request
787 [#7612](https://github.com/rubygems/rubygems/pull/7612) by
788 deivid-rodriguez
789* Installs bundler 2.5.10 as a default gem.
791## Bug fixes:
793* Rename credential email to identifier in WebAuthn poller. Pull request
794 [#7623](https://github.com/rubygems/rubygems/pull/7623) by jenshenny
796# 3.5.9 / 2024-04-12
798## Enhancements:
800* Installs bundler 2.5.9 as a default gem.
802# 3.5.8 / 2024-04-11
804## Security:
806* Respect global umask when writing regular files. Pull request
807 [#7518](https://github.com/rubygems/rubygems/pull/7518) by
808 deivid-rodriguez
810## Enhancements:
812* Allow string keys with gemrc. Pull request
813 [#7543](https://github.com/rubygems/rubygems/pull/7543) by hsbt
814* [Experimental] Add "gem rebuild" command. Pull request
815 [#4913](https://github.com/rubygems/rubygems/pull/4913) by duckinator
816* Installs bundler 2.5.8 as a default gem.
818## Bug fixes:
820* Fix NoMethodError crash when building errors about corrupt package
821 files. Pull request
822 [#7539](https://github.com/rubygems/rubygems/pull/7539) by jez
823* Fix resolver to properly intersect Arrays of `Gem::Resolver::Activation`
824 objects. Pull request
825 [#7537](https://github.com/rubygems/rubygems/pull/7537) by
826 deivid-rodriguez
828# 3.5.7 / 2024-03-22
830## Enhancements:
832* Warn on empty or open required_ruby_version specification attribute.
833 Pull request [#5010](https://github.com/rubygems/rubygems/pull/5010) by
834 simi
835* Control whether YAML aliases are enabled in Gem::SafeYAML.safe_load via
836 attribute. Pull request
837 [#7464](https://github.com/rubygems/rubygems/pull/7464) by segiddins
838* Update SPDX license list as of 2024-02-08. Pull request
839 [#7468](https://github.com/rubygems/rubygems/pull/7468) by
840 github-actions[bot]
841* Installs bundler 2.5.7 as a default gem.
843## Bug fixes:
845* Allow prerelease activation (even if requirement is not explicit about
846 it) when it's the only possibility. Pull request
847 [#7428](https://github.com/rubygems/rubygems/pull/7428) by kimesf
849## Documentation:
851* Fix a typo. Pull request
852 [#7505](https://github.com/rubygems/rubygems/pull/7505) by hsbt
853* Use https instead of http in documentation links. Pull request
854 [#7481](https://github.com/rubygems/rubygems/pull/7481) by hsbt
856# 3.5.6 / 2024-02-06
858## Enhancements:
860* Deep copy requirements in `Gem::Specification` and `Gem::Requirement`.
861 Pull request [#7439](https://github.com/rubygems/rubygems/pull/7439) by
862 flavorjones
863* Change gem login message to clear up that username can be also used.
864 Pull request [#7422](https://github.com/rubygems/rubygems/pull/7422) by
865 VitaliySerov
866* Add metadata for rubygems.org. Pull request
867 [#7435](https://github.com/rubygems/rubygems/pull/7435) by m-nakamura145
868* Improve gem login scope selection. Pull request
869 [#7342](https://github.com/rubygems/rubygems/pull/7342) by williantenfen
870* Vendor uri in RubyGems. Pull request
871 [#7386](https://github.com/rubygems/rubygems/pull/7386) by
872 deivid-rodriguez
873* Installs bundler 2.5.6 as a default gem.
875## Bug fixes:
877* Skip to load commented out words. Pull request
878 [#7413](https://github.com/rubygems/rubygems/pull/7413) by hsbt
879* Fix rake runtime dependency warning for rake based extension. Pull
880 request [#7395](https://github.com/rubygems/rubygems/pull/7395) by ntkme
882# 3.5.5 / 2024-01-18
884## Enhancements:
886* Installs bundler 2.5.5 as a default gem.
888## Bug fixes:
890* Fix `require` activation conflicts when requiring default gems under
891 some situations. Pull request
892 [#7379](https://github.com/rubygems/rubygems/pull/7379) by
893 deivid-rodriguez
894* Use cache_home instead of data_home in default_spec_cache_dir. Pull
895 request [#7331](https://github.com/rubygems/rubygems/pull/7331) by mrkn
897## Documentation:
899* Use squiggly heredocs in `Gem::Specification#description` documentation,
900 so it doesn't add leading whitespace. Pull request
901 [#7373](https://github.com/rubygems/rubygems/pull/7373) by bravehager
903# 3.5.4 / 2024-01-04
905## Enhancements:
907* Always avoid "Updating rubygems-update" message. Pull request
908 [#7335](https://github.com/rubygems/rubygems/pull/7335) by
909 deivid-rodriguez
910* Installs bundler 2.5.4 as a default gem.
912## Bug fixes:
914* Make `gem update --system` respect ruby version constraints. Pull
915 request [#7334](https://github.com/rubygems/rubygems/pull/7334) by
916 deivid-rodriguez
918# 3.5.3 / 2023-12-22
920## Enhancements:
922* Installs bundler 2.5.3 as a default gem.
924# 3.5.2 / 2023-12-21
926## Enhancements:
928* Support dynamic library loading with extension .so or .o. Pull request
929 [#7241](https://github.com/rubygems/rubygems/pull/7241) by hogelog
930* Installs bundler 2.5.2 as a default gem.
932## Performance:
934* Replace `object_id` comparison with identity Hash. Pull request
935 [#7303](https://github.com/rubygems/rubygems/pull/7303) by amomchilov
936* Use IO.copy_stream when reading, writing. Pull request
937 [#6958](https://github.com/rubygems/rubygems/pull/6958) by martinemde
939# 3.5.1 / 2023-12-15
941## Enhancements:
943* Installs bundler 2.5.1 as a default gem.
945# 3.5.0 / 2023-12-15
947## Security:
949* Replace `Marshal.load` with a fully-checked safe gemspec loader. Pull
950 request [#6896](https://github.com/rubygems/rubygems/pull/6896) by
951 segiddins
953## Breaking changes:
955* Drop ruby 2.6 and 2.7 support. Pull request
956 [#7116](https://github.com/rubygems/rubygems/pull/7116) by
957 deivid-rodriguez
958* Release package no longer includes test files. Pull request
959 [#6781](https://github.com/rubygems/rubygems/pull/6781) by hsbt
960* Hide `Gem::MockGemUi` from users. Pull request
961 [#6623](https://github.com/rubygems/rubygems/pull/6623) by hsbt
962* Deprecated `Gem.datadir` has been removed. Pull request
963 [#6469](https://github.com/rubygems/rubygems/pull/6469) by hsbt
965## Deprecations:
967* Deprecate `Gem::Platform.match?`. Pull request
968 [#6783](https://github.com/rubygems/rubygems/pull/6783) by hsbt
969* Deprecate `Gem::List`. Pull request
970 [#6311](https://github.com/rubygems/rubygems/pull/6311) by segiddins
972## Features:
974* The `generate_index` command can now generate compact index files and
975 lives as an external `rubygems-generate_index` gem. Pull request
976 [#7085](https://github.com/rubygems/rubygems/pull/7085) by segiddins
977* Make `gem install` fallback to user installation directory if default
978 gem home is not writable. Pull request
979 [#5327](https://github.com/rubygems/rubygems/pull/5327) by duckinator
980* Leverage ruby feature to warn when requiring default gems from stdlib
981 that will be turned into bundled gems in the future. Pull request
982 [#6840](https://github.com/rubygems/rubygems/pull/6840) by hsbt
984## Performance:
986* Use match? when regexp match data is unused. Pull request
987 [#7263](https://github.com/rubygems/rubygems/pull/7263) by segiddins
988* Fewer allocations in gem installation. Pull request
989 [#6975](https://github.com/rubygems/rubygems/pull/6975) by segiddins
990* Optimize allocations in `Gem::Version`. Pull request
991 [#6970](https://github.com/rubygems/rubygems/pull/6970) by segiddins
993## Enhancements:
995* Warn for duplicate meta data links when building gems. Pull request
996 [#7213](https://github.com/rubygems/rubygems/pull/7213) by etherbob
997* Vendor `net-http`, `net-protocol`, `resolv`, and `timeout` to reduce
998 conflicts between Gemfile gems and internal dependencies. Pull request
999 [#6793](https://github.com/rubygems/rubygems/pull/6793) by
1000 deivid-rodriguez
1001* Remove non-transparent requirement added to prerelease gems. Pull
1002 request [#7226](https://github.com/rubygems/rubygems/pull/7226) by
1003 deivid-rodriguez
1004* Stream output from ext builds when --verbose. Pull request
1005 [#7240](https://github.com/rubygems/rubygems/pull/7240) by osyoyu
1006* Add missing services to CI detection and make it consistent between
1007 RubyGems and Bundler. Pull request
1008 [#7205](https://github.com/rubygems/rubygems/pull/7205) by nevinera
1009* Update generate licenses template to not freeze regexps. Pull request
1010 [#7154](https://github.com/rubygems/rubygems/pull/7154) by
1011 github-actions[bot]
1012* Don't check `LIBRUBY_RELATIVE` in truffleruby to signal a bash prelude
1013 in rubygems binstubs. Pull request
1014 [#7156](https://github.com/rubygems/rubygems/pull/7156) by
1015 deivid-rodriguez
1016* Update SPDX list and warn on deprecated identifiers. Pull request
1017 [#6926](https://github.com/rubygems/rubygems/pull/6926) by simi
1018* Simplify extended `require` to potentially fix some deadlocks. Pull
1019 request [#6827](https://github.com/rubygems/rubygems/pull/6827) by nobu
1020* Small refactors for `Gem::Resolver`. Pull request
1021 [#6766](https://github.com/rubygems/rubygems/pull/6766) by hsbt
1022* Use double-quotes instead of single-quotes consistently in warnings.
1023 Pull request [#6550](https://github.com/rubygems/rubygems/pull/6550) by
1024 hsbt
1025* Add debug message for `nil` version gemspec. Pull request
1026 [#6436](https://github.com/rubygems/rubygems/pull/6436) by hsbt
1027* Installs bundler 2.5.0 as a default gem.
1029## Bug fixes:
1031* Fix installing from source with same default bundler version already
1032 installed. Pull request
1033 [#7244](https://github.com/rubygems/rubygems/pull/7244) by
1034 deivid-rodriguez
1036## Documentation:
1038* Improve comment explaining the necessity of `write_default_spec` method.
1039 Pull request [#6563](https://github.com/rubygems/rubygems/pull/6563) by
1040 voxik
1042# 3.4.22 / 2023-11-09
1044## Enhancements:
1046* Update SPDX license list as of 2023-10-05. Pull request
1047 [#7040](https://github.com/rubygems/rubygems/pull/7040) by
1048 github-actions[bot]
1049* Remove unnecessary rescue. Pull request
1050 [#7109](https://github.com/rubygems/rubygems/pull/7109) by
1051 deivid-rodriguez
1052* Installs bundler 2.4.22 as a default gem.
1054## Bug fixes:
1056* Handle empty array at built-in YAML serializer. Pull request
1057 [#7099](https://github.com/rubygems/rubygems/pull/7099) by hsbt
1058* Ignore non-tar format `.gem` files during search. Pull request
1059 [#7095](https://github.com/rubygems/rubygems/pull/7095) by dearblue
1060* Allow explicitly uninstalling multiple versions of same gem. Pull
1061 request [#7063](https://github.com/rubygems/rubygems/pull/7063) by
1062 kstevens715
1064## Performance:
1066* Avoid regexp match on every call to `Gem::Platform.local`. Pull request
1067 [#7104](https://github.com/rubygems/rubygems/pull/7104) by segiddins
1069## Documentation:
1071* Get `Gem::Specification#extensions_dir` documented. Pull request
1072 [#6218](https://github.com/rubygems/rubygems/pull/6218) by
1073 deivid-rodriguez
1075# 3.4.21 / 2023-10-17
1077## Enhancements:
1079* Abort `setup.rb` if Ruby is too old. Pull request
1080 [#7011](https://github.com/rubygems/rubygems/pull/7011) by
1081 deivid-rodriguez
1082* Remove usage of Dir.chdir that only execute a subprocess. Pull request
1083 [#6930](https://github.com/rubygems/rubygems/pull/6930) by segiddins
1084* Freeze more strings in generated gemspecs. Pull request
1085 [#6974](https://github.com/rubygems/rubygems/pull/6974) by segiddins
1086* Use pure-ruby YAML parser for loading configuration at RubyGems. Pull
1087 request [#6615](https://github.com/rubygems/rubygems/pull/6615) by hsbt
1088* Installs bundler 2.4.21 as a default gem.
1090## Documentation:
1092* Update suggested variable for bindir. Pull request
1093 [#7028](https://github.com/rubygems/rubygems/pull/7028) by hsbt
1094* Fix invalid links in documentation. Pull request
1095 [#7008](https://github.com/rubygems/rubygems/pull/7008) by simi
1097# 3.4.20 / 2023-09-27
1099## Enhancements:
1101* Raise `Gem::Package::FormatError` when gem encounters corrupt EOF.
1102 Pull request [#6882](https://github.com/rubygems/rubygems/pull/6882)
1103 by martinemde
1104* Allow skipping empty license `gem build` warning by setting license to
1105 `nil`. Pull request
1106 [#6879](https://github.com/rubygems/rubygems/pull/6879) by jhong97
1107* Update SPDX license list as of 2023-06-18. Pull request
1108 [#6891](https://github.com/rubygems/rubygems/pull/6891) by
1109 github-actions[bot]
1110* Update SPDX license list as of 2023-04-28. Pull request
1111 [#6642](https://github.com/rubygems/rubygems/pull/6642) by segiddins
1112* Update SPDX license list as of 2023-01-26. Pull request
1113 [#6310](https://github.com/rubygems/rubygems/pull/6310) by segiddins
1114* Installs bundler 2.4.20 as a default gem.
1116## Bug fixes:
1118* Fixed false positive SymlinkError in symbolic link directory. Pull
1119 request [#6947](https://github.com/rubygems/rubygems/pull/6947) by
1120 negi0109
1121* Ensure that loading multiple gemspecs with legacy YAML class references
1122 does not warn. Pull request
1123 [#6889](https://github.com/rubygems/rubygems/pull/6889) by segiddins
1124* Fix NoMethodError when choosing a too big number from `gem uni` list.
1125 Pull request [#6901](https://github.com/rubygems/rubygems/pull/6901) by
1126 amatsuda
1128## Performance:
1130* Reduce allocations for stub specifications. Pull request
1131 [#6972](https://github.com/rubygems/rubygems/pull/6972) by segiddins
1133# 3.4.19 / 2023-08-17
1135## Enhancements:
1137* Installs bundler 2.4.19 as a default gem.
1139## Performance:
1141* Speedup building docs when updating rubygems. Pull request
1142 [#6864](https://github.com/rubygems/rubygems/pull/6864) by
1143 deivid-rodriguez
1145# 3.4.18 / 2023-08-02
1147## Enhancements:
1149* Add poller to fetch WebAuthn OTP. Pull request
1150 [#6774](https://github.com/rubygems/rubygems/pull/6774) by jenshenny
1151* Remove side effects when unmarshaling old `Gem::Specification`. Pull
1152 request [#6825](https://github.com/rubygems/rubygems/pull/6825) by nobu
1153* Ship rubygems executables in `exe` folder. Pull request
1154 [#6704](https://github.com/rubygems/rubygems/pull/6704) by hsbt
1155* Installs bundler 2.4.18 as a default gem.
1157# 3.4.17 / 2023-07-14
1159## Enhancements:
1161* Installs bundler 2.4.17 as a default gem.
1163## Performance:
1165* Avoid unnecessary work for private local gem installation. Pull request
1166 [#6810](https://github.com/rubygems/rubygems/pull/6810) by
1167 deivid-rodriguez
1169# 3.4.16 / 2023-07-10
1171## Enhancements:
1173* Installs bundler 2.4.16 as a default gem.
1175# 3.4.15 / 2023-06-29
1177## Enhancements:
1179* Installs bundler 2.4.15 as a default gem.
1181## Bug fixes:
1183* Autoload shellwords when it's needed. Pull request
1184 [#6734](https://github.com/rubygems/rubygems/pull/6734) by ioquatix
1186## Documentation:
1188* Update command to test local gem command changes. Pull request
1189 [#6761](https://github.com/rubygems/rubygems/pull/6761) by jenshenny
1191# 3.4.14 / 2023-06-12
1193## Enhancements:
1195* Load plugin immediately. Pull request
1196 [#6673](https://github.com/rubygems/rubygems/pull/6673) by kou
1197* Installs bundler 2.4.14 as a default gem.
1199## Documentation:
1201* Clarify what the `rubygems-update` gem is for, and link to source code
1202 and guides. Pull request
1203 [#6710](https://github.com/rubygems/rubygems/pull/6710) by davetron5000
1205# 3.4.13 / 2023-05-09
1207## Enhancements:
1209* Installs bundler 2.4.13 as a default gem.
1211# 3.4.12 / 2023-04-11
1213## Enhancements:
1215* [Experimental] Add WebAuthn Support to the CLI. Pull request
1216 [#6560](https://github.com/rubygems/rubygems/pull/6560) by jenshenny
1217* Installs bundler 2.4.12 as a default gem.
1219# 3.4.11 / 2023-04-10
1221## Enhancements:
1223* Installs bundler 2.4.11 as a default gem.
1226------------------------------------------------------------------------------
1228RubyGems installed the following executables:
1229 /home/travis/.rvm/rubies/ruby-3.2.2/bin/gem
1230 /home/travis/.rvm/rubies/ruby-3.2.2/bin/bundle
1231 /home/travis/.rvm/rubies/ruby-3.2.2/bin/bundler
1233RubyGems system software updated
before_install.2
12340.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
12350.02s$ sudo sed -i -e 's/^port = 5433/port = 5432/' /etc/postgresql/11/main/postgresql.conf
before_install.4
12362.48s$ sudo systemctl restart postgresql@11-main
install.bundler
12371.93s$ bundle install --jobs=3 --retry=3 --deployment
1238[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
1239Bundler 2.6.3 is running, but your lockfile was generated with 2.4.14. Installing Bundler 2.4.14 and restarting using that version.
1240Fetching gem metadata from https://rubygems.org/.
1241Fetching bundler 2.4.14
1242Installing bundler 2.4.14
1243[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
1244Using rake 13.0.6
1245Using concurrent-ruby 1.2.2
1246Using i18n 1.14.1
1247Using minitest 5.18.1
1248Using tzinfo 2.0.6
1249Using activesupport 7.0.6
1250Using builder 3.2.4
1251Using erubi 1.12.0
1252Using racc 1.7.1
1253Using nokogiri 1.15.2 (x86_64-linux)
1254Using rails-dom-testing 2.1.1
1255Using crass 1.0.6
1256Using loofah 2.21.3
1257Using rails-html-sanitizer 1.6.0
1258Using actionview 7.0.6
1259Using rack 2.2.7
1260Using rack-test 2.1.0
1261Using actionpack 7.0.6
1262Using nio4r 2.5.9
1263Using websocket-extensions 0.1.5
1264Using websocket-driver 0.7.5
1265Using actioncable 7.0.6
1266Using globalid 1.1.0
1267Using activejob 7.0.6
1268Using activemodel 7.0.6
1269Using activerecord 7.0.6
1270Using marcel 1.0.2
1271Using mini_mime 1.1.2
1272Using activestorage 7.0.6
1273Using date 3.3.3
1274Using timeout 0.4.0
1275Using net-protocol 0.2.1
1276Using net-imap 0.3.6
1277Using net-pop 0.1.2
1278Using net-smtp 0.3.3
1279Using mail 2.8.1
1280Using actionmailbox 7.0.6
1281Using actionmailer 7.0.6
1282Using actiontext 7.0.6
1283Using ansi 1.5.0
1284Using ast 2.4.2
1285Using aws-eventstream 1.2.0
1286Using aws-partitions 1.783.0
1287Using aws-sigv4 1.6.0
1288Using jmespath 1.6.2
1289Using aws-sdk-core 3.176.1
1290Using aws-sdk-kms 1.68.0
1291Using aws-sdk-s3 1.127.0
1292Using bundler 2.4.14
1293Using colored 1.2
1294Using diff-lcs 1.5.0
1295Using docile 1.4.0
1296Using json 2.6.3
1297Using language_server-protocol 3.17.0.3
1298Using method_source 1.0.0
1299Using parallel 1.23.0
1300Using parser 3.2.2.3
1301Using pg 1.5.3
1302Using thor 1.2.2
1303Using zeitwerk 2.6.8
1304Using railties 7.0.6
1305Using rails 7.0.6
1306Using rainbow 3.1.1
1307Using rake-notes 0.2.2
1308Using regexp_parser 2.8.1
1309Using rexml 3.2.5
1310Using routes 0.2.0
1311Using rspec-support 3.12.1
1312Using rspec-core 3.12.2
1313Using rspec-expectations 3.12.3
1314Using rspec-mocks 3.12.5
1315Using rspec 3.12.0
1316Using rubocop-ast 1.29.0
1317Using ruby-progressbar 1.13.0
1318Using unicode-display_width 2.4.2
1319Using rubocop 1.54.1
1320Using rubocop-capybara 2.18.0
1321Using rubocop-factory_bot 2.23.1
1322Using rubocop-performance 1.18.0
1323Using rubocop-rspec 2.22.0
1324Using simplecov-html 0.12.3
1325Using simplecov_json_formatter 0.1.4
1326Using simplecov 0.22.0
1327Using terminal-table 3.0.2
1328Using simplecov-console 0.9.1
1329Bundle complete! 12 Gemfile dependencies, 85 gems now installed.
1330Bundled gems are installed into `./vendor/bundle`
before_script.1
13320.01s$ psql --version
1333psql (PostgreSQL) 11.22 (Ubuntu 11.22-9.pgdg20.04+1)
before_script.2
13340.25s$ psql -c 'CREATE DATABASE travis_test;'
1335CREATE DATABASE
before_script.3
13361.18s$ curl -fs https://raw.githubusercontent.com/travis-ci/travis-migrations/master/db/main/structure.sql | psql -v ON_ERROR_STOP=1 travis_test
1337SET
1338SET
1339SET
1340SET
1341SET
1342 set_config
1343------------
1345(1 row)
1347SET
1348SET
1349SET
1350SET
1351CREATE EXTENSION
1352COMMENT
1353CREATE EXTENSION
1354COMMENT
1355CREATE TYPE
1356CREATE FUNCTION
1357CREATE FUNCTION
1358CREATE FUNCTION
1359CREATE FUNCTION
1360CREATE FUNCTION
1361CREATE FUNCTION
1362CREATE FUNCTION
1363CREATE FUNCTION
1364CREATE FUNCTION
1365CREATE FUNCTION
1366CREATE FUNCTION
1367CREATE FUNCTION
1368CREATE FUNCTION
1369CREATE FUNCTION
1370CREATE FUNCTION
1371CREATE FUNCTION
1372CREATE FUNCTION
1373CREATE FUNCTION
1374CREATE FUNCTION
1375CREATE FUNCTION
1376CREATE FUNCTION
1377CREATE FUNCTION
1378CREATE FUNCTION
1379CREATE FUNCTION
1380CREATE FUNCTION
1381CREATE FUNCTION
1382CREATE FUNCTION
1383CREATE FUNCTION
1384CREATE FUNCTION
1385CREATE FUNCTION
1386SET
1387CREATE TABLE
1388CREATE SEQUENCE
1389ALTER SEQUENCE
1390CREATE TABLE
1391CREATE TABLE
1392CREATE SEQUENCE
1393ALTER SEQUENCE
1394CREATE TABLE
1395CREATE SEQUENCE
1396ALTER SEQUENCE
1397CREATE TABLE
1398CREATE SEQUENCE
1399ALTER SEQUENCE
1400CREATE TABLE
1401CREATE SEQUENCE
1402ALTER SEQUENCE
1403CREATE TABLE
1404CREATE SEQUENCE
1405ALTER SEQUENCE
1406CREATE TABLE
1407CREATE SEQUENCE
1408ALTER SEQUENCE
1409CREATE TABLE
1410CREATE SEQUENCE
1411ALTER SEQUENCE
1412CREATE SEQUENCE
1413CREATE TABLE
1414CREATE SEQUENCE
1415ALTER SEQUENCE
1416CREATE TABLE
1417CREATE SEQUENCE
1418ALTER SEQUENCE
1419CREATE TABLE
1420CREATE SEQUENCE
1421ALTER SEQUENCE
1422CREATE TABLE
1423CREATE SEQUENCE
1424ALTER SEQUENCE
1425CREATE TABLE
1426CREATE SEQUENCE
1427ALTER SEQUENCE
1428CREATE TABLE
1429CREATE SEQUENCE
1430ALTER SEQUENCE
1431CREATE TABLE
1432CREATE TABLE
1433CREATE TABLE
1434CREATE TABLE
1435CREATE TABLE
1436CREATE TABLE
1437CREATE TABLE
1438CREATE TABLE
1439CREATE TABLE
1440CREATE TABLE
1441CREATE TABLE
1442CREATE TABLE
1443CREATE TABLE
1444CREATE TABLE
1445CREATE TABLE
1446CREATE TABLE
1447CREATE SEQUENCE
1448ALTER SEQUENCE
1449CREATE TABLE
1450CREATE SEQUENCE
1451ALTER SEQUENCE
1452CREATE TABLE
1453CREATE TABLE
1454CREATE SEQUENCE
1455ALTER SEQUENCE
1456CREATE TABLE
1457CREATE SEQUENCE
1458ALTER SEQUENCE
1459CREATE TABLE
1460CREATE SEQUENCE
1461ALTER SEQUENCE
1462CREATE TABLE
1463CREATE SEQUENCE
1464ALTER SEQUENCE
1465CREATE TABLE
1466CREATE SEQUENCE
1467ALTER 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 SEQUENCE
1488ALTER SEQUENCE
1489CREATE TABLE
1490CREATE SEQUENCE
1491ALTER SEQUENCE
1492CREATE TABLE
1493CREATE SEQUENCE
1494ALTER SEQUENCE
1495CREATE TABLE
1496CREATE SEQUENCE
1497ALTER SEQUENCE
1498CREATE TABLE
1499CREATE TABLE
1500CREATE SEQUENCE
1501ALTER SEQUENCE
1502CREATE TABLE
1503CREATE SEQUENCE
1504ALTER SEQUENCE
1505CREATE TABLE
1506CREATE SEQUENCE
1507ALTER SEQUENCE
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 TABLE
1525CREATE SEQUENCE
1526ALTER SEQUENCE
1527CREATE TABLE
1528CREATE TABLE
1529CREATE SEQUENCE
1530ALTER SEQUENCE
1531CREATE TABLE
1532CREATE SEQUENCE
1533ALTER SEQUENCE
1534CREATE TABLE
1535CREATE SEQUENCE
1536ALTER SEQUENCE
1537CREATE TABLE
1538CREATE SEQUENCE
1539ALTER SEQUENCE
1540CREATE TABLE
1541CREATE SEQUENCE
1542ALTER SEQUENCE
1543CREATE TABLE
1544CREATE SEQUENCE
1545ALTER SEQUENCE
1546CREATE TABLE
1547CREATE SEQUENCE
1548ALTER SEQUENCE
1549CREATE TABLE
1550CREATE SEQUENCE
1551ALTER SEQUENCE
1552CREATE TABLE
1553CREATE SEQUENCE
1554ALTER SEQUENCE
1555CREATE TABLE
1556CREATE SEQUENCE
1557ALTER SEQUENCE
1558CREATE TABLE
1559CREATE SEQUENCE
1560ALTER SEQUENCE
1561CREATE TABLE
1562CREATE SEQUENCE
1563ALTER SEQUENCE
1564CREATE TABLE
1565CREATE SEQUENCE
1566ALTER SEQUENCE
1567CREATE TABLE
1568ALTER TABLE
1569ALTER TABLE
1570ALTER TABLE
1571ALTER TABLE
1572ALTER TABLE
1573ALTER TABLE
1574ALTER TABLE
1575ALTER TABLE
1576ALTER TABLE
1577ALTER TABLE
1578ALTER TABLE
1579ALTER TABLE
1580ALTER TABLE
1581ALTER TABLE
1582ALTER TABLE
1583ALTER TABLE
1584ALTER TABLE
1585ALTER TABLE
1586ALTER TABLE
1587ALTER TABLE
1588ALTER TABLE
1589ALTER TABLE
1590ALTER TABLE
1591ALTER TABLE
1592ALTER TABLE
1593ALTER TABLE
1594ALTER TABLE
1595ALTER TABLE
1596ALTER TABLE
1597ALTER TABLE
1598ALTER TABLE
1599ALTER TABLE
1600ALTER TABLE
1601ALTER TABLE
1602ALTER TABLE
1603ALTER TABLE
1604ALTER TABLE
1605ALTER TABLE
1606ALTER TABLE
1607ALTER TABLE
1608ALTER TABLE
1609ALTER TABLE
1610ALTER TABLE
1611ALTER TABLE
1612ALTER TABLE
1613ALTER TABLE
1614ALTER TABLE
1615ALTER TABLE
1616ALTER TABLE
1617ALTER TABLE
1618ALTER TABLE
1619ALTER TABLE
1620ALTER TABLE
1621ALTER TABLE
1622ALTER 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
1674CREATE INDEX
1675CREATE INDEX
1676CREATE INDEX
1677CREATE INDEX
1678CREATE INDEX
1679CREATE INDEX
1680CREATE INDEX
1681CREATE INDEX
1682CREATE INDEX
1683CREATE INDEX
1684CREATE INDEX
1685CREATE INDEX
1686CREATE INDEX
1687CREATE INDEX
1688CREATE INDEX
1689CREATE INDEX
1690CREATE INDEX
1691CREATE INDEX
1692CREATE INDEX
1693CREATE INDEX
1694CREATE INDEX
1695CREATE INDEX
1696CREATE INDEX
1697CREATE INDEX
1698CREATE INDEX
1699CREATE INDEX
1700CREATE INDEX
1701CREATE INDEX
1702CREATE INDEX
1703CREATE INDEX
1704CREATE INDEX
1705CREATE INDEX
1706CREATE INDEX
1707CREATE INDEX
1708CREATE INDEX
1709CREATE INDEX
1710CREATE INDEX
1711CREATE INDEX
1712CREATE INDEX
1713CREATE INDEX
1714CREATE INDEX
1715CREATE INDEX
1716CREATE INDEX
1717CREATE INDEX
1718CREATE INDEX
1719CREATE INDEX
1720CREATE INDEX
1721CREATE INDEX
1722CREATE INDEX
1723CREATE INDEX
1724CREATE INDEX
1725CREATE INDEX
1726CREATE INDEX
1727CREATE INDEX
1728CREATE INDEX
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 TRIGGER
1885CREATE TRIGGER
1886CREATE TRIGGER
1887CREATE TRIGGER
1888CREATE TRIGGER
1889CREATE TRIGGER
1890CREATE TRIGGER
1891CREATE TRIGGER
1892CREATE TRIGGER
1893CREATE TRIGGER
1894CREATE TRIGGER
1895CREATE TRIGGER
1896CREATE TRIGGER
1897CREATE TRIGGER
1898CREATE TRIGGER
1899CREATE TRIGGER
1900CREATE TRIGGER
1901ALTER TABLE
1902ALTER TABLE
1903ALTER TABLE
1904ALTER TABLE
1905ALTER TABLE
1906ALTER TABLE
1907ALTER TABLE
1908ALTER TABLE
1909ALTER TABLE
1910ALTER TABLE
1911ALTER TABLE
1912ALTER TABLE
1913ALTER TABLE
1914ALTER TABLE
1915ALTER TABLE
1916ALTER TABLE
1917ALTER TABLE
1918ALTER TABLE
1919ALTER TABLE
1920ALTER TABLE
1921ALTER TABLE
1922ALTER TABLE
1923ALTER TABLE
1924ALTER TABLE
1925ALTER TABLE
1926ALTER TABLE
1927ALTER TABLE
1928ALTER TABLE
1929ALTER TABLE
1930ALTER TABLE
1931ALTER TABLE
1932ALTER TABLE
1933ALTER TABLE
1934SET
1935INSERT 0 394
193639.09s$ bundle exec rspec spec
1938Repo counts
1939 before aggregation
1940 after aggregating per repo
1941 after aggregating all counts
1942 does not raise if repos are missing
1943 does not raise if builds are deleted before stages
1945set_updated_at trigger
1946Dropped database 'travis_test'
1947Created database 'travis_test'
1948== 201207261749 CreatePlans: migrating ========================================
1949-- create_table(:plans, {:id=>:integer})
1950 -> 0.0055s
1951== 201207261749 CreatePlans: migrated (0.0056s) ===============================
1953== 20101126174706 CreateRepositories: migrating ===============================
1954-- create_table(:repositories, {:id=>:integer})
1955 -> 0.0045s
1956== 20101126174706 CreateRepositories: migrated (0.0046s) ======================
1958== 20101126174715 CreateBuilds: migrating =====================================
1959-- create_table(:builds, {:id=>:integer})
1960 -> 0.0060s
1961== 20101126174715 CreateBuilds: migrated (0.0060s) ============================
1963== 20110109130532 DeviseCreateUsers: migrating ================================
1964-- create_table(:users, {:id=>:integer})
1965 -> 0.0057s
1966-- add_index(:users, :login, {:unique=>true})
1967 -> 0.0021s
1968== 20110109130532 DeviseCreateUsers: migrated (0.0079s) =======================
1970== 20110116155100 RepositoriesAddUsername: migrating ==========================
1971-- change_table(:repositories)
1972 -> 0.0007s
1973== 20110116155100 RepositoriesAddUsername: migrated (0.0008s) =================
1975== 20110130102621 CreateTokens: migrating =====================================
1976-- create_table(:tokens, {:id=>:integer})
1977 -> 0.0045s
1978== 20110130102621 CreateTokens: migrated (0.0046s) ============================
1980== 20110301071656 AddBuildParentIdAndConfiguration: migrating =================
1981-- change_table(:builds)
1982 -> 0.0012s
1983-- change_column(:builds, :number, :string)
1984 -> 0.0045s
1985-- add_index(:builds, :repository_id)
1986 -> 0.0019s
1987-- add_index(:builds, :parent_id)
1988 -> 0.0018s
1989== 20110301071656 AddBuildParentIdAndConfiguration: migrated (0.0095s) ========
1991== 20110316174721 RepositoriesDenormalizeLastBuildAttributes: migrating =======
1992-- change_table(:repositories)
1993 -> 0.0023s
1994== 20110316174721 RepositoriesDenormalizeLastBuildAttributes: migrated (0.0024s)
1996== 20110321075539 RepositoriesAddOwnerNameAndOwnerEmail: migrating ============
1997-- change_table(:repositories)
1998 -> 0.0016s
1999-- remove_column(:repositories, :username)
2000 -> 0.0004s
2001== 20110321075539 RepositoriesAddOwnerNameAndOwnerEmail: migrated (0.0021s) ===
2003== 20110411171936 CreateHistoriesTable: migrating =============================
2004-- create_table(:histories, {:id=>:integer})
2005 -> 0.0050s
2006-- add_index(:histories, [:item, :table, :month, :year])
2007 -> 0.0030s
2008== 20110411171936 CreateHistoriesTable: migrated (0.0081s) ====================
2010== 20110411171937 RenameHistoriesToRailsAdminHistories: migrating =============
2011-- remove_index(:histories, nil, {:name=>:index_histories_on_item_and_table_and_month_and_year})
2012 -> 0.0005s
2013-- rename_table(:histories, :rails_admin_histories)
2014 -> 0.0034s
2015-- add_index("rails_admin_histories", ["item", "table", "month", "year"], {:name=>"index_histories_on_item_and_table_and_month_and_year"})
2016 -> 0.0020s
2017== 20110411171937 RenameHistoriesToRailsAdminHistories: migrated (0.0073s) ====
2019== 20110411172518 AddAdminFlagToUser: migrating ===============================
2020-- change_table(:users)
2021 -> 0.0012s
2022== 20110411172518 AddAdminFlagToUser: migrated (0.0012s) ======================
2024== 20110413101057 BuildsAddRef: migrating =====================================
2025-- change_table(:builds)
2026 -> 0.0011s
2027== 20110413101057 BuildsAddRef: migrated (0.0012s) ============================
2029== 20110414131100 BuildsAddGithubPayload: migrating ===========================
2030-- change_table(:builds)
2031 -> 0.0007s
2032== 20110414131100 BuildsAddGithubPayload: migrated (0.0007s) ==================
2034== 20110503150504 AddGithubIdToUsersTable: migrating ==========================
2035-- add_column(:users, :github_id, :integer)
2036 -> 0.0006s
2037-- add_index(:users, :github_id)
2038 -> 0.0017s
2039== 20110503150504 AddGithubIdToUsersTable: migrated (0.0026s) =================
2041== 20110523012243 RepositoriesChangeOwnerEmailType: migrating =================
2042-- change_column(:repositories, :owner_email, :text)
2043 -> 0.0007s
2044== 20110523012243 RepositoriesChangeOwnerEmailType: migrated (0.0007s) ========
2046== 20110611203537 AddGithubOauthTokenToUser: migrating ========================
2047-- add_column(:users, :github_oauth_token, :string)
2048 -> 0.0007s
2049-- add_index(:users, :github_oauth_token)
2050 -> 0.0018s
2051== 20110611203537 AddGithubOauthTokenToUser: migrated (0.0026s) ===============
2053== 20110613210252 AddCompareUrlToBuild: migrating =============================
2054-- add_column(:builds, :compare_url, :string)
2055 -> 0.0007s
2056== 20110613210252 AddCompareUrlToBuild: migrated (0.0007s) ====================
2058== 20110615152003 BuildsRemoveJobId: migrating ================================
2059-- change_table(:builds)
2060 -> 0.0007s
2061== 20110615152003 BuildsRemoveJobId: migrated (0.0007s) =======================
2063== 20110616211744 BuildRemoveLastBuiltAt: migrating ===========================
2064-- change_table(:repositories)
2065 -> 0.0007s
2066== 20110616211744 BuildRemoveLastBuiltAt: migrated (0.0007s) ==================
2068== 20110617114728 AddMissingIndexes: migrating ================================
2069-- add_index(:repositories, :last_build_started_at)
2070 -> 0.0023s
2071-- add_index(:repositories, [:owner_name, :name])
2072 -> 0.0018s
2073-- add_index(:builds, [:repository_id, :parent_id, :started_at])
2074 -> 0.0018s
2075== 20110617114728 AddMissingIndexes: migrated (0.0061s) =======================
2077== 20110619100906 AddActiveToRepositories: migrating ==========================
2078-- add_column(:repositories, :is_active, :boolean)
2079 -> 0.0009s
2080== 20110619100906 AddActiveToRepositories: migrated (0.0009s) =================
2082== 20110729094426 StoreTokenInBuild: migrating ================================
2083-- add_column(:builds, :token, :string)
2084 -> 0.0007s
2085== 20110729094426 StoreTokenInBuild: migrated (0.0007s) =======================
2087== 20110801161819 CreateRequestsCommitsAndTasks: migrating ====================
2088-- change_table(:builds)
2089 -> 0.0015s
2090-- create_table(:commits, {:force=>true, :id=>:integer})
2091 -> 0.0060s
2092-- create_table(:requests, {:force=>true, :id=>:integer})
2093 -> 0.0046s
2094-- create_table(:tasks, {:force=>true, :id=>:integer})
2095 -> 0.0052s
2096-- add_index(:commits, :commit)
2097 -> 0.0017s
2098-- add_index(:builds, :commit)
2099 -> 0.0017s
2100-- add_index(:requests, :commit)
2101 -> 0.0025s
2102-- add_index(:tasks, :commit)
2103 -> 0.0015s
2104-- execute("UPDATE requests SET commit_id = (SELECT commits.id FROM commits WHERE commits.commit = requests.commit LIMIT 1)")
2105 -> 0.0006s
2106-- execute("UPDATE tasks SET commit_id = (SELECT commits.id FROM commits WHERE commits.commit = tasks.commit LIMIT 1)")
2107 -> 0.0004s
2108-- execute("DELETE FROM builds WHERE parent_id IS NOT NULL")
2109 -> 0.0004s
2110-- execute("UPDATE builds SET request_id = (SELECT requests.id FROM requests WHERE requests.commit = builds.commit LIMIT 1)")
2111 -> 0.0004s
2112-- execute("UPDATE builds SET commit_id = (SELECT commits.id FROM commits WHERE commits.commit = builds.commit LIMIT 1)")
2113 -> 0.0004s
2114-- execute("CREATE SEQUENCE shared_builds_tasks_seq CACHE 30")
2115 -> 0.0005s
2116-- execute("ALTER TABLE builds ALTER COLUMN id TYPE BIGINT")
2117 -> 0.0101s
2118-- execute("ALTER TABLE builds ALTER COLUMN id SET DEFAULT nextval('shared_builds_tasks_seq')")
2119 -> 0.0005s
2120-- execute("ALTER TABLE tasks ALTER COLUMN id TYPE BIGINT")
2121 -> 0.0057s
2122-- execute("ALTER TABLE tasks ALTER COLUMN id SET DEFAULT nextval('shared_builds_tasks_seq')")
2123 -> 0.0005s
2124-- select_value("SELECT max(id) FROM commits")
2125 -> 0.0006s
2126-- execute("SELECT setval('commits_id_seq', 1)")
2127 -> 0.0003s
2128-- select_value("SELECT max(id) FROM requests")
2129 -> 0.0004s
2130-- execute("SELECT setval('requests_id_seq', 1)")
2131 -> 0.0003s
2132-- select_value("SELECT max(id) FROM tasks")
2133 -> 0.0005s
2134-- execute("SELECT setval('tasks_id_seq', 1)")
2135 -> 0.0003s
2136-- remove_column(:builds, :parent_id)
2137 -> 0.0004s
2138-- remove_column(:builds, :commit)
2139 -> 0.0004s
2140-- remove_column(:requests, :commit)
2141 -> 0.0004s
2142-- remove_column(:tasks, :commit)
2143 -> 0.0004s
2144== 20110801161819 CreateRequestsCommitsAndTasks: migrated (0.0489s) ===========
2146== 20110805030147 RepositoryRenameIsActiveToActive: migrating =================
2147-- rename_column(:repositories, :is_active, :active)
2148 -> 0.0106s
2149== 20110805030147 RepositoryRenameIsActiveToActive: migrated (0.0107s) ========
2151== 20110819232908 TasksAddTags: migrating =====================================
2152-- add_column(:tasks, :tags, :text)
2153 -> 0.0016s
2154== 20110819232908 TasksAddTags: migrated (0.0017s) ============================
2156== 20110911204538 CacheOneNumberForSharedBuildsTasksSequence: migrating =======
2157-- execute("ALTER SEQUENCE shared_builds_tasks_seq CACHE 1 NO MAXVALUE NO CYCLE")
2158 -> 0.0010s
2159== 20110911204538 CacheOneNumberForSharedBuildsTasksSequence: migrated (0.0010s)
2161== 20111107134436 RenameTasksToJobs: migrating ================================
2162-- rename_table(:tasks, :jobs)
2163 -> 0.0064s
2164-- execute("UPDATE jobs SET type = 'Job::Test' WHERE type = 'Task::Test'")
2165 -> 0.0006s
2166-- execute("UPDATE jobs SET type = 'Job::Configure' WHERE type = 'Task::Configure'")
2167 -> 0.0022s
2168== 20111107134436 RenameTasksToJobs: migrated (0.0093s) =======================
2170== 20111107134437 CreateArtifacts: migrating ==================================
2171-- create_table(:artifacts, {:id=>:integer})
2172 -> 0.0098s
2173-- execute("UPDATE artifacts SET job_id = id")
2174 -> 0.0012s
2175-- execute("select setval('artifacts_id_seq', (select max(id) + 1 from artifacts));")
2176 -> 0.0011s
2177-- add_index(:artifacts, [:type, :job_id])
2178 -> 0.0029s
2179== 20111107134437 CreateArtifacts: migrated (0.0159s) =========================
2181== 20111107134438 CreateWorkers: migrating ====================================
2182-- create_table(:workers, {:id=>:integer})
2183 -> 0.0060s
2184-- add_index(:workers, [:name, :host])
2185 -> 0.0023s
2186== 20111107134438 CreateWorkers: migrated (0.0086s) ===========================
2188== 20111107134439 JobsAddRetries: migrating ===================================
2189-- change_table(:jobs)
2190 -> 0.0023s
2191== 20111107134439 JobsAddRetries: migrated (0.0024s) ==========================
2193== 20111107134440 RemoveRailsAdmin: migrating =================================
2194-- drop_table(:rails_admin_histories)
2195 -> 0.0019s
2196== 20111107134440 RemoveRailsAdmin: migrated (0.0020s) ========================
2198== 20111128235043 AddIndexesToJobs: migrating =================================
2199-- add_index(:jobs, [:queue, :state])
2200 -> 0.0039s
2201== 20111128235043 AddIndexesToJobs: migrated (0.0041s) ========================
2203== 20111129014329 AddRepositoryIdIndexToJobs: migrating =======================
2204-- add_index(:jobs, :repository_id)
2205 -> 0.0029s
2206== 20111129014329 AddRepositoryIdIndexToJobs: migrated (0.0031s) ==============
2208== 20111129022625 AddOwnerAndTypeIndexToJobs: migrating =======================
2209-- add_index(:jobs, [:type, :owner_id, :owner_type])
2210 -> 0.0028s
2211== 20111129022625 AddOwnerAndTypeIndexToJobs: migrated (0.0030s) ==============
2213== 20111201113500 WorkersAddPayloadAndLastError: migrating ====================
2214-- change_table(:workers)
2215 -> 0.0021s
2216== 20111201113500 WorkersAddPayloadAndLastError: migrated (0.0022s) ===========
2218== 20111203002341 RepositoriesAddDescriptionAndLastLanguage: migrating ========
2219-- change_table(:repositories)
2220 -> 0.0010s
2221-- change_table(:builds)
2222 -> 0.0005s
2223== 20111203002341 RepositoriesAddDescriptionAndLastLanguage: migrated (0.0016s)
2225== 20111203221720 BuildsAddArchivedAt: migrating ==============================
2226-- change_table(:builds)
2227 -> 0.0007s
2228== 20111203221720 BuildsAddArchivedAt: migrated (0.0007s) =====================
2230== 20111207093700 MimicProductionDb: migrating ================================
2231-- column_exists?(:users, :oauth2_uid, :integer)
2232 -> 0.0017s
2233-- column_exists?(:users, :oauth2_token, :string)
2234 -> 0.0012s
2235-- column_exists?(:repositories, :user_id, :integer)
2236 -> 0.0013s
2237== 20111207093700 MimicProductionDb: migrated (0.0042s) =======================
2239== 20111212103859 BuildsAddDuration: migrating ================================
2240-- change_table(:builds)
2241 -> 0.0007s
2242== 20111212103859 BuildsAddDuration: migrated (0.0007s) =======================
2244== 20111212112411 RepositoriesAddLastBuildDuration: migrating =================
2245-- change_table(:repositories)
2246 -> 0.0006s
2247== 20111212112411 RepositoriesAddLastBuildDuration: migrated (0.0006s) ========
2249== 20111214173922 CreateSslKeys: migrating ====================================
2250-- create_table(:ssl_keys, {:id=>:integer})
2251 -> 0.0054s
2252-- add_index("ssl_keys", ["repository_id"], {:name=>"index_ssl_key_on_repository_id"})
2253 -> 0.0017s
2254== 20111214173922 CreateSslKeys: migrated (0.0073s) ===========================
2256== 20120114125404 AddAllowFailureToJobs: migrating ============================
2257-- add_column(:jobs, :allow_failure, :boolean, {:default=>false})
2258 -> 0.0011s
2259== 20120114125404 AddAllowFailureToJobs: migrated (0.0011s) ===================
2261== 20120216133223 AddPullRequestFieldsToRequest: migrating ====================
2262-- add_column(:requests, :event_type, :string)
2263 -> 0.0006s
2264-- add_column(:requests, :comments_url, :string)
2265 -> 0.0004s
2266-- add_column(:requests, :base_commit, :string)
2267 -> 0.0004s
2268-- add_column(:requests, :head_commit, :string)
2269 -> 0.0004s
2270== 20120216133223 AddPullRequestFieldsToRequest: migrated (0.0018s) ===========
2272== 20120222082522 AddGravatarIdToUsers: migrating =============================
2273-- add_column(:users, :gravatar_id, :string)
2274 -> 0.0006s
2275== 20120222082522 AddGravatarIdToUsers: migrated (0.0007s) ====================
2277== 20120301131209 OrganizationsCreate: migrating ==============================
2278-- create_table(:organizations, {:id=>:integer})
2279 -> 0.0045s
2280== 20120301131209 OrganizationsCreate: migrated (0.0045s) =====================
2282== 20120304000502 JobsRenameOwnerToSource: migrating ==========================
2283-- change_table(:jobs)
2284 -> 0.0055s
2285== 20120304000502 JobsRenameOwnerToSource: migrated (0.0055s) =================
2287== 20120304000503 RepositoriesAddOwner: migrating =============================
2288-- change_table(:repositories)
2289 -> 0.0011s
2290== 20120304000503 RepositoriesAddOwner: migrated (0.0011s) ====================
2292== 20120304000504 BuildsAddOwner: migrating ===================================
2293-- change_table(:builds)
2294 -> 0.0010s
2295== 20120304000504 BuildsAddOwner: migrated (0.0010s) ==========================
2297== 20120304000505 JobsAddOwner: migrating =====================================
2298-- change_table(:jobs)
2299 -> 0.0010s
2300== 20120304000505 JobsAddOwner: migrated (0.0010s) ============================
2302== 20120304000506 RequestsAddOwner: migrating =================================
2303-- change_table(:requests)
2304 -> 0.0009s
2305== 20120304000506 RequestsAddOwner: migrated (0.0010s) ========================
2307== 20120311234933 AddLocaleToUser: migrating ==================================
2308-- add_column(:users, :locale, :string)
2309 -> 0.0006s
2310== 20120311234933 AddLocaleToUser: migrated (0.0007s) =========================
2312== 20120316123726 CreateMemberships: migrating ================================
2313-- create_table(:memberships, {:id=>:integer})
2314 -> 0.0028s
2315== 20120316123726 CreateMemberships: migrated (0.0028s) =======================
2317== 20120319170001 RepositoriesAddPrivate: migrating ===========================
2318-- change_table(:repositories)
2319 -> 0.0010s
2320== 20120319170001 RepositoriesAddPrivate: migrated (0.0011s) ==================
2322== 20120324104051 CreateUrls: migrating =======================================
2323-- create_table(:urls, {:id=>:integer})
2324 -> 0.0045s
2325== 20120324104051 CreateUrls: migrated (0.0046s) ==============================
2327== 20120505165100 CopyStatusToResult: migrating ===============================
2328-- add_column(:builds, :result, :integer)
2329 -> 0.0007s
2330-- add_column(:jobs, :result, :integer)
2331 -> 0.0004s
2332-- add_column(:repositories, :last_build_result, :integer)
2333 -> 0.0004s
2334Executing: UPDATE builds SET result = status;
2335Executing: UPDATE jobs SET result = status;
2336Executing: UPDATE repositories SET last_build_result = last_build_status;
2337== 20120505165100 CopyStatusToResult: migrated (0.0027s) ======================
2339== 20120511171900 RequestsAddIndexOnHeadCommit: migrating =====================
2340-- add_index(:requests, :head_commit)
2341 -> 0.0020s
2342== 20120511171900 RequestsAddIndexOnHeadCommit: migrated (0.0021s) ============
2344== 20120521174400 CreatePermissions: migrating ================================
2345-- create_table(:permissions, {:id=>:integer})
2346 -> 0.0173s
2347-- add_index(:permissions, :user_id)
2348 -> 0.0022s
2349-- add_index(:permissions, :repository_id)
2350 -> 0.0039s
2351== 20120521174400 CreatePermissions: migrated (0.0237s) =======================
2353== 20120527235800 BuildsAddPreviousResult: migrating ==========================
2354-- change_table(:builds)
2355 -> 0.0036s
2356== 20120527235800 BuildsAddPreviousResult: migrated (0.0038s) =================
2358== 20120702111126 CreateSubscriptions: migrating ==============================
2359-- create_table(:subscriptions, {:id=>:integer})
2360 -> 0.0102s
2361== 20120702111126 CreateSubscriptions: migrated (0.0105s) =====================
2363== 20120703114226 AddBillingEmailCreditCardDataToSubscriptions: migrating =====
2364-- change_table(:subscriptions)
2365 -> 0.0039s
2366== 20120703114226 AddBillingEmailCreditCardDataToSubscriptions: migrated (0.0040s)
2368== 20120713140816 AddSyncInfoToUser: migrating ================================
2369-- add_column(:users, :in_sync, :boolean)
2370 -> 0.0010s
2371-- add_column(:users, :synced_at, :timestamp)
2372 -> 0.0007s
2373== 20120713140816 AddSyncInfoToUser: migrated (0.0019s) =======================
2375== 20120713153215 RenameInSyncToIsSyncing: migrating ==========================
2376-- rename_column(:users, :in_sync, :is_syncing)
2377 -> 0.0042s
2378== 20120713153215 RenameInSyncToIsSyncing: migrated (0.0043s) =================
2380== 20120725005300 AddQueueToWorkers: migrating ================================
2381-- add_column(:workers, :queue, :string)
2382 -> 0.0014s
2383== 20120725005300 AddQueueToWorkers: migrated (0.0015s) =======================
2385== 20120727151900 AddJobsIndexOnStateOwnerTypeOwnerId: migrating ==============
2386-- add_index(:jobs, ["state", "owner_id", "owner_type"], {:name=>"index_jobs_on_state_owner_type_owner_id"})
2387 -> 0.0031s
2388== 20120727151900 AddJobsIndexOnStateOwnerTypeOwnerId: migrated (0.0033s) =====
2390== 20120731005301 AddQueuedAtToJobs: migrating ================================
2391-- add_column(:jobs, :queued_at, :timestamp, {:precision=>nil})
2392 -> 0.0012s
2393== 20120731005301 AddQueuedAtToJobs: migrated (0.0013s) =======================
2395== 20120731074000 AddAmountToPlans: migrating =================================
2396-- change_table(:plans)
2397 -> 0.0015s
2398== 20120731074000 AddAmountToPlans: migrated (0.0016s) ========================
2400== 20120802001001 AddPushAndPullToPermissions: migrating ======================
2401-- add_column(:permissions, :push, :boolean, {:default=>false})
2402 -> 0.0019s
2403-- add_column(:permissions, :pull, :boolean, {:default=>false})
2404 -> 0.0013s
2405-- change_column_default(:permissions, :admin, false)
2406 -> 0.0028s
2407== 20120802001001 AddPushAndPullToPermissions: migrated (0.0062s) =============
2409== 20120803164000 CreateInvoices: migrating ===================================
2410-- create_table(:invoices, {:id=>:integer})
2411 -> 0.0059s
2412== 20120803164000 CreateInvoices: migrated (0.0060s) ==========================
2414== 20120803182300 AddInvoiceIdToInvoices: migrating ===========================
2415-- change_table(:invoices)
2416 -> 0.0007s
2417== 20120803182300 AddInvoiceIdToInvoices: migrated (0.0008s) ==================
2419== 20120804122700 AddStripeInvoiceIdToInvoices: migrating =====================
2420-- change_table(:invoices)
2421 -> 0.0008s
2422-- add_index(:invoices, :stripe_id)
2423 -> 0.0026s
2424== 20120804122700 AddStripeInvoiceIdToInvoices: migrated (0.0034s) ============
2426== 20120806120400 AddPlanToSubscriptions: migrating ===========================
2427-- change_table(:subscriptions)
2428 -> 0.0007s
2429== 20120806120400 AddPlanToSubscriptions: migrated (0.0007s) ==================
2431== 20120820164000 RenamePlanOnSubscriptions: migrating ========================
2432-- change_table(:subscriptions)
2433 -> 0.0013s
2434== 20120820164000 RenamePlanOnSubscriptions: migrated (0.0014s) ===============
2436== 20120905093300 CreateStripeEvents: migrating ===============================
2437-- create_table(:stripe_events, {:id=>:integer})
2438 -> 0.0047s
2439-- add_index(:stripe_events, :event_type)
2440 -> 0.0017s
2441-- add_index(:stripe_events, :date)
2442 -> 0.0017s
2443== 20120905093300 CreateStripeEvents: migrated (0.0081s) ======================
2445== 20120905171300 AddEventIdToStripeEvents: migrating =========================
2446-- change_table(:stripe_events)
2447 -> 0.0007s
2448-- add_index(:stripe_events, :event_id)
2449 -> 0.0016s
2450== 20120905171300 AddEventIdToStripeEvents: migrated (0.0024s) ================
2452== 20120911160000 AddBuildsIndexOnRepositoryIdAndState: migrating =============
2453-- remove_index("builds", nil, {:column=>"repository_id", :name=>"index_builds_on_repository_id"})
2454 -> 0.0017s
2455-- add_index("builds", ["repository_id", "state"])
2456 -> 0.0017s
2457== 20120911160000 AddBuildsIndexOnRepositoryIdAndState: migrated (0.0044s) ====
2459== 20120911230000 ArtifactsAddAggregatedAt: migrating =========================
2460-- add_column(:artifacts, :aggregated_at, :timestamp, {:precision=>nil})
2461 -> 0.0007s
2462== 20120911230000 ArtifactsAddAggregatedAt: migrated (0.0007s) ================
2464== 20120911230001 AddArtifactParts: migrating =================================
2465-- create_table(:artifact_parts, {:id=>:integer})
2466 -> 0.0042s
2467-- add_index(:artifact_parts, [:artifact_id, :number])
2468 -> 0.0017s
2469== 20120911230001 AddArtifactParts: migrated (0.0060s) ========================
2471== 20120913143800 AddSubscriptionsCoupon: migrating ===========================
2472-- change_table(:subscriptions)
2473 -> 0.0007s
2474== 20120913143800 AddSubscriptionsCoupon: migrated (0.0007s) ==================
2476== 20120915012000 BuildsAddIndexOnFinishedAt: migrating =======================
2477-- add_index("builds", "finished_at")
2478 -> 0.0021s
2479== 20120915012000 BuildsAddIndexOnFinishedAt: migrated (0.0021s) ==============
2481== 20120915012001 CommitsAddIndexOnBranch: migrating ==========================
2482-- add_index("commits", "branch")
2483 -> 0.0023s
2484== 20120915012001 CommitsAddIndexOnBranch: migrated (0.0023s) =================
2486== 20120915150000 JobsAddIndexOnCreatedAt: migrating ==========================
2487-- add_index("jobs", "created_at")
2488 -> 0.0020s
2489== 20120915150000 JobsAddIndexOnCreatedAt: migrated (0.0021s) =================
2491== 20121015002500 CreateEvents: migrating =====================================
2492-- create_table(:events, {:id=>:integer})
2493 -> 0.0045s
2494== 20121015002500 CreateEvents: migrated (0.0046s) ============================
2496== 20121015002501 RequestsAddResultAndMessage: migrating ======================
2497-- add_column(:requests, :result, :string)
2498 -> 0.0007s
2499-- add_column(:requests, :message, :string)
2500 -> 0.0004s
2501== 20121015002501 RequestsAddResultAndMessage: migrated (0.0012s) =============
2503== 20121017040100 CreateBroadcasts: migrating =================================
2504-- create_table(:broadcasts, {:id=>:integer})
2505 -> 0.0047s
2506== 20121017040100 CreateBroadcasts: migrated (0.0047s) ========================
2508== 20121017040200 EventsChangeDataToText: migrating ===========================
2509-- change_column(:events, :data, :text)
2510 -> 0.0007s
2511== 20121017040200 EventsChangeDataToText: migrated (0.0007s) ==================
2513== 20121018201301 AddEventTypeToBuilds: migrating =============================
2514-- add_column(:builds, :event_type, :string)
2515 -> 0.0007s
2516== 20121018201301 AddEventTypeToBuilds: migrated (0.0007s) ====================
2518== 20121018203728 UpdateEventTypeOnBuilds: migrating ==========================
2519-- execute(" UPDATE builds\n SET event_type = requests.event_type\n FROM requests\n WHERE builds.request_id = requests.id\n")
2520 -> 0.0009s
2521== 20121018203728 UpdateEventTypeOnBuilds: migrated (0.0009s) =================
2523== 20121018210156 AddIndexOnRepositoryIdAndEventTypeToBuilds: migrating =======
2524-- add_index(:builds, [:repository_id, :event_type])
2525 -> 0.0021s
2526== 20121018210156 AddIndexOnRepositoryIdAndEventTypeToBuilds: migrated (0.0021s)
2528== 20121125122700 RepositoriesAddLastBuildState: migrating ====================
2529-- add_column(:repositories, :last_build_state, :string)
2530 -> 0.0006s
2531== 20121125122700 RepositoriesAddLastBuildState: migrated (0.0007s) ===========
2533== 20121125122701 BuildsAddPreviousState: migrating ===========================
2534-- add_column(:builds, :previous_state, :string)
2535 -> 0.0006s
2536== 20121125122701 BuildsAddPreviousState: migrated (0.0006s) ==================
2538== 20121222125200 ArtifactPartsAddFinal: migrating ============================
2539-- add_column(:artifact_parts, :final, :boolean)
2540 -> 0.0030s
2541-- add_column(:artifact_parts, :created_at, :timestamp)
2542 -> 0.0014s
2543== 20121222125200 ArtifactPartsAddFinal: migrated (0.0049s) ===================
2545== 20121222125300 ArtifactPartsChangeContentToText: migrating =================
2546-- change_column(:artifact_parts, :content, :text)
2547 -> 0.0107s
2548== 20121222125300 ArtifactPartsChangeContentToText: migrated (0.0107s) ========
2550== 20121222140200 ArtifactPartsAddIndexOnArtifactId: migrating ================
2551-- add_index(:artifact_parts, :artifact_id)
2552 -> 0.0024s
2553== 20121222140200 ArtifactPartsAddIndexOnArtifactId: migrated (0.0025s) =======
2555== 20121223162300 ArtifactPartsRemoveIndexOnArtifactId: migrating =============
2556-- remove_index(:artifact_parts, :artifact_id, {:name=>"index_artifact_parts_on_artifact_id"})
2557 -> 0.0023s
2558== 20121223162300 ArtifactPartsRemoveIndexOnArtifactId: migrated (0.0036s) ====
2560== 20130107165057 AddGithubScopesToUser: migrating ============================
2561-- add_column(:users, :github_scopes, :text)
2562 -> 0.0011s
2563== 20130107165057 AddGithubScopesToUser: migrated (0.0012s) ===================
2565== 20130115125836 AddIndexOnLastSeenAtToWorkers: migrating ====================
2566-- add_index(:workers, :last_seen_at)
2567 -> 0.0024s
2568== 20130115125836 AddIndexOnLastSeenAtToWorkers: migrated (0.0025s) ===========
2570== 20130115145728 CacheFullNameInWorkers: migrating ===========================
2571-- add_column(:workers, :full_name, :string)
2572 -> 0.0010s
2573-- add_index(:workers, :full_name)
2574 -> 0.0020s
2575== 20130115145728 CacheFullNameInWorkers: migrated (0.0032s) ==================
2577== 20130125002600 ArtifactsAddArchivedAt: migrating ===========================
2578-- add_column(:artifacts, :archived_at, :timestamp, {:precision=>nil})
2579 -> 0.0029s
2580-- add_index(:artifacts, :archived_at)
2581 -> 0.0029s
2582== 20130125002600 ArtifactsAddArchivedAt: migrated (0.0062s) ==================
2584== 20130125171100 ArtifactsAddArchivingAndVerified: migrating =================
2585-- add_column(:artifacts, :archiving, :boolean)
2586 -> 0.0010s
2587-- add_column(:artifacts, :archive_verified, :boolean)
2588 -> 0.0005s
2589-- add_index(:artifacts, :archiving)
2590 -> 0.0021s
2591-- add_index(:artifacts, :archive_verified)
2592 -> 0.0019s
2593== 20130125171100 ArtifactsAddArchivingAndVerified: migrated (0.0056s) ========
2595== 20130129142703 CreateEmails: migrating =====================================
2596-- create_table(:emails, {:id=>:integer})
2597 -> 0.0060s
2598-- add_index(:emails, :user_id)
2599 -> 0.0023s
2600-- add_index(:emails, :email)
2601 -> 0.0024s
2602== 20130129142703 CreateEmails: migrated (0.0108s) ============================
2604== 20130208135800 RenameArtifacts: migrating ==================================
2605-- rename_table(:artifacts, :artifacts_backup)
2606 -> 0.0108s
2607-- rename_table(:artifact_parts, :artifact_parts_backup)
2608 -> 0.0038s
2609== 20130208135800 RenameArtifacts: migrated (0.0147s) =========================
2611== 20130208135801 DropArtifacts: migrating ====================================
2612-- drop_table(:artifacts_backup)
2613 -> 0.0011s
2614-- drop_table(:artifact_parts_backup)
2615 -> 0.0007s
2616== 20130208135801 DropArtifacts: migrated (0.0019s) ===========================
2618== 20130306154311 CreatePgcryptoExtension: migrating ==========================
2619-- execute("create extension if not exists pgcrypto")
2620 -> 0.0039s
2621== 20130306154311 CreatePgcryptoExtension: migrated (0.0039s) =================
2623== 20130311211101 AddPullRequestTitleToBuilds: migrating ======================
2624-- add_column(:builds, :pull_request_title, :text)
2625 -> 0.0010s
2626== 20130311211101 AddPullRequestTitleToBuilds: migrated (0.0010s) =============
2628== 20130327100801 AddPullRequestNumberToBuilds: migrating =====================
2629-- add_column(:builds, :pull_request_number, :integer)
2630 -> 0.0008s
2631== 20130327100801 AddPullRequestNumberToBuilds: migrated (0.0009s) ============
2633== 20130418101437 AddIndexToBuildsRequestId: migrating ========================
2634-- execute("CREATE INDEX CONCURRENTLY index_builds_on_request_id ON builds(request_id)")
2635 -> 0.0034s
2636== 20130418101437 AddIndexToBuildsRequestId: migrated (0.0034s) ===============
2638== 20130418103306 AddIndexToJobsOnOwnerIdOwnerTypeAndState: migrating =========
2639-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_id_and_owner_type_and_state ON jobs(owner_id, owner_type, state)")
2640 -> 0.0037s
2641== 20130418103306 AddIndexToJobsOnOwnerIdOwnerTypeAndState: migrated (0.0037s)
2643== 20130505023259 AddMoreIndexesToBuilds: migrating ===========================
2644-- 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")
2645 -> 0.0030s
2646== 20130505023259 AddMoreIndexesToBuilds: migrated (0.0031s) ==================
2648== 20130521115725 AddIndexOnBuildState: migrating =============================
2649-- execute(" CREATE INDEX CONCURRENTLY index_builds_on_state\n ON builds(state);\n")
2650 -> 0.0030s
2651== 20130521115725 AddIndexOnBuildState: migrated (0.0030s) ====================
2653== 20130521133050 UpdateFinishedJobs: migrating ===============================
2654-- execute("UPDATE jobs SET state = 'passed' WHERE state = 'finished' AND result = 0 AND type = 'Job::Test'")
2655 -> 0.0008s
2656-- execute("UPDATE jobs SET state = 'failed' WHERE state = 'finished' AND result = 1 AND type = 'Job::Test'")
2657 -> 0.0004s
2658-- execute("UPDATE jobs SET state = 'errored' WHERE state = 'finished' AND result IS NULL AND type = 'Job::Test'")
2659 -> 0.0004s
2660-- execute("SELECT COUNT(*) FROM jobs WHERE state = 'finished' AND type = 'Job::Test'")
2661 -> 0.0004s
2662== 20130521133050 UpdateFinishedJobs: migrated (0.0020s) ======================
2664== 20130521134224 UpdateFinishedBuilds: migrating =============================
2665-- execute("UPDATE builds SET state = 'passed' WHERE state = 'finished' AND result = 0")
2666 -> 0.0007s
2667-- execute("UPDATE builds SET state = 'failed' WHERE state = 'finished' AND result = 1")
2668 -> 0.0003s
2669-- execute("UPDATE builds SET state = 'errored' WHERE state = 'finished' AND result IS NULL")
2670 -> 0.0004s
2671-- execute("SELECT COUNT(*) FROM builds WHERE state = 'finished'")
2672 -> 0.0003s
2673== 20130521134224 UpdateFinishedBuilds: migrated (0.0018s) ====================
2675== 20130521134800 RemoveUnusedBuildColumns: migrating =========================
2676-- remove_column(:builds, :result)
2677 -> 0.0006s
2678-- remove_column(:builds, :status)
2679 -> 0.0004s
2680-- remove_column(:builds, :previous_result)
2681 -> 0.0003s
2682-- remove_column(:builds, :agent)
2683 -> 0.0003s
2684-- remove_column(:builds, :language)
2685 -> 0.0004s
2686-- remove_column(:builds, :archived_at)
2687 -> 0.0003s
2688== 20130521134800 RemoveUnusedBuildColumns: migrated (0.0024s) ================
2690== 20130521141357 RemoveUnusedJobColumns: migrating ===========================
2691-- remove_column(:jobs, :status)
2692 -> 0.0006s
2693-- remove_column(:jobs, :job_id)
2694 -> 0.0003s
2695-- remove_column(:jobs, :retries)
2696 -> 0.0004s
2697== 20130521141357 RemoveUnusedJobColumns: migrated (0.0013s) ==================
2699== 20130618084205 AddCoupons: migrating =======================================
2700-- create_table(:coupons, {:id=>:integer})
2701 -> 0.0045s
2702== 20130618084205 AddCoupons: migrated (0.0045s) ==============================
2704== 20130629122945 AddGithubIdToUsers: migrating ===============================
2705-- add_column(:repositories, :github_id, :integer)
2706 -> 0.0007s
2707-- add_index(:repositories, :github_id)
2708 -> 0.0018s
2709== 20130629122945 AddGithubIdToUsers: migrated (0.0026s) ======================
2711== 20130629133531 AddDefaultBranchToRepositories: migrating ===================
2712-- add_column(:repositories, :default_branch, :string)
2713 -> 0.0007s
2714== 20130629133531 AddDefaultBranchToRepositories: migrated (0.0007s) ==========
2716== 20130629174449 AddGithubLanguageToRepositories: migrating ==================
2717-- add_column(:repositories, :github_language, :string)
2718 -> 0.0006s
2719== 20130629174449 AddGithubLanguageToRepositories: migrated (0.0007s) =========
2721== 20130701175200 AddContactIdToSubscriptions: migrating ======================
2722-- change_table(:subscriptions)
2723 -> 0.0007s
2724== 20130701175200 AddContactIdToSubscriptions: migrated (0.0007s) =============
2726== 20130702123456 RemoveUnusedRepositoryColumns: migrating ====================
2727-- remove_column(:repositories, :last_duration)
2728 -> 0.0026s
2729-- remove_column(:repositories, :last_build_status)
2730 -> 0.0012s
2731-- remove_column(:repositories, :last_build_result)
2732 -> 0.0010s
2733-- remove_column(:repositories, :last_build_language)
2734 -> 0.0011s
2735== 20130702123456 RemoveUnusedRepositoryColumns: migrated (0.0063s) ===========
2737== 20130702144325 AddUniqueIndexOnUsersGithubIdAndRemoveUniqueIndexOnUsersLogin: migrating
2738-- execute("DROP INDEX index_users_on_login")
2739 -> 0.0014s
2740-- execute("CREATE INDEX CONCURRENTLY index_users_on_login ON users(login)")
2741 -> 0.0036s
2742-- execute("DROP INDEX index_users_on_github_id")
2743 -> 0.0011s
2744-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_github_id ON users(github_id)")
2745 -> 0.0038s
2746== 20130702144325 AddUniqueIndexOnUsersGithubIdAndRemoveUniqueIndexOnUsersLogin: migrated (0.0104s)
2748== 20130705123456 AddExtraColumnsToOrganizations: migrating ===================
2749-- add_column(:organizations, :avatar_url, :string)
2750 -> 0.0028s
2751-- add_column(:organizations, :location, :string)
2752 -> 0.0014s
2753-- add_column(:organizations, :email, :string)
2754 -> 0.0014s
2755-- add_column(:organizations, :company, :string)
2756 -> 0.0013s
2757-- add_column(:organizations, :homepage, :string)
2758 -> 0.0007s
2759== 20130705123456 AddExtraColumnsToOrganizations: migrated (0.0087s) ==========
2761== 20130707164854 AddIndexOnGithubIdToOrganizations: migrating ================
2762-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organizations_on_github_id ON organizations(github_id)")
2763 -> 0.0038s
2764== 20130707164854 AddIndexOnGithubIdToOrganizations: migrated (0.0040s) =======
2766== 20130709185200 CreateAnnotations: migrating ================================
2767-- create_table(:annotations, {:id=>:integer})
2768 -> 0.0087s
2769== 20130709185200 CreateAnnotations: migrated (0.0090s) =======================
2771== 20130709233500 CreateAnnotationProviders: migrating ========================
2772-- create_table(:annotation_providers, {:id=>:integer})
2773 -> 0.0075s
2774== 20130709233500 CreateAnnotationProviders: migrated (0.0085s) ===============
2776== 20130710000745 AddAnnotationProviderIdToAnnotations: migrating =============
2777-- add_column(:annotations, :annotation_provider_id, :integer, {:null=>false})
2778 -> 0.0006s
2779== 20130710000745 AddAnnotationProviderIdToAnnotations: migrated (0.0006s) ====
2781== 20130726101124 AddCanceledAtToJobsAndBuilds: migrating =====================
2782-- add_column(:builds, :canceled_at, :timestamp, {:precision=>nil})
2783 -> 0.0006s
2784-- add_column(:jobs, :canceled_at, :timestamp, {:precision=>nil})
2785 -> 0.0004s
2786== 20130726101124 AddCanceledAtToJobsAndBuilds: migrated (0.0010s) ============
2788== 20130901183019 AddIndexOnRepositoryGithubId: migrating =====================
2789-- execute("DROP INDEX index_repositories_on_github_id")
2790 -> 0.0009s
2791-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_github_id ON repositories(github_id)")
2792 -> 0.0030s
2793== 20130901183019 AddIndexOnRepositoryGithubId: migrated (0.0039s) ============
2795== 20130909203321 AddCachedMatrixIdsToBuilds: migrating =======================
2796-- execute("ALTER TABLE builds ADD COLUMN cached_matrix_ids integer[]")
2797 -> 0.0006s
2798== 20130909203321 AddCachedMatrixIdsToBuilds: migrated (0.0006s) ==============
2800== 20130910184823 CreateIndexOnBuildsIdDescAndRepositoryIdAndEventType: migrating
2801-- execute("CREATE INDEX CONCURRENTLY index_builds_on_id_repository_id_and_event_type_desc ON builds (id DESC, repository_id, event_type);")
2802 -> 0.0033s
2803== 20130910184823 CreateIndexOnBuildsIdDescAndRepositoryIdAndEventType: migrated (0.0033s)
2805== 20130916101056 AddUniqueIndexOnRepositoryGithubId: migrating ===============
2806-- execute("DROP INDEX index_repositories_on_github_id")
2807 -> 0.0009s
2808-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_repositories_on_github_id ON repositories(github_id)")
2809 -> 0.0029s
2810== 20130916101056 AddUniqueIndexOnRepositoryGithubId: migrated (0.0038s) ======
2812== 20130920135744 AddSettingsToRepositories: migrating ========================
2813-- add_column(:repositories, :settings, :json)
2814 -> 0.0007s
2815== 20130920135744 AddSettingsToRepositories: migrated (0.0007s) ===============
2817== 20131104101056 RemoveWorkersTableAndIndexes: migrating =====================
2818-- drop_table(:workers)
2819 -> 0.0011s
2820== 20131104101056 RemoveWorkersTableAndIndexes: migrated (0.0012s) ============
2822== 20131109101056 RemoveEventsTable: migrating ================================
2823-- drop_table(:events)
2824 -> 0.0009s
2825== 20131109101056 RemoveEventsTable: migrated (0.0010s) =======================
2827== 20140120225125 RemoveAnnotationImageInfo: migrating ========================
2828-- remove_column(:annotations, :image_url)
2829 -> 0.0006s
2830-- remove_column(:annotations, :image_alt)
2831 -> 0.0003s
2832== 20140120225125 RemoveAnnotationImageInfo: migrated (0.0010s) ===============
2834== 20140121003026 AddStatusToAnnotations: migrating ===========================
2835-- add_column(:annotations, :status, :string)
2836 -> 0.0006s
2837== 20140121003026 AddStatusToAnnotations: migrated (0.0007s) ==================
2839== 20140204220926 AddIndicesToRequests: migrating =============================
2840-- execute("CREATE INDEX CONCURRENTLY index_requests_on_repository_id ON requests(repository_id)")
2841 -> 0.0034s
2842-- execute("CREATE INDEX CONCURRENTLY index_requests_on_commit_id ON requests(commit_id)")
2843 -> 0.0029s
2844== 20140204220926 AddIndicesToRequests: migrated (0.0063s) ====================
2846== 20140210003014 AddIndicesToMemberships: migrating ==========================
2847-- execute("CREATE INDEX CONCURRENTLY index_memberships_on_user_id ON memberships(user_id)")
2848 -> 0.0028s
2849== 20140210003014 AddIndicesToMemberships: migrated (0.0028s) =================
2851== 20140210012509 RemoveUnusedIndices: migrating ==============================
2852-- execute("DROP INDEX CONCURRENTLY index_commits_on_commit")
2853 -> 0.0020s
2854-- execute("DROP INDEX CONCURRENTLY index_builds_on_state")
2855 -> 0.0018s
2856-- execute("DROP INDEX CONCURRENTLY index_commits_on_branch")
2857 -> 0.0016s
2858-- execute("DROP INDEX CONCURRENTLY index_users_on_github_oauth_token")
2859 -> 0.0017s
2860-- execute("DROP INDEX CONCURRENTLY index_builds_on_finished_at")
2861 -> 0.0017s
2862-- execute("DROP INDEX CONCURRENTLY index_jobs_on_queue_and_state")
2863 -> 0.0015s
2864-- execute("DROP INDEX CONCURRENTLY index_jobs_on_created_at")
2865 -> 0.0015s
2866== 20140210012509 RemoveUnusedIndices: migrated (0.0119s) =====================
2868== 20140612131826 AddRemovedInfoToLogs: migrating =============================
2869== 20140612131826 AddRemovedInfoToLogs: migrated (0.0007s) ====================
2871== 20140827121945 AddEducationFieldToUser: migrating ==========================
2872-- add_column(:users, :education, :boolean)
2873 -> 0.0007s
2874== 20140827121945 AddEducationFieldToUser: migrated (0.0007s) =================
2876== 20150121135400 JobsAddReceivedAt: migrating ================================
2877-- add_column(:jobs, :received_at, :timestamp, {:precision=>nil})
2878 -> 0.0006s
2879== 20150121135400 JobsAddReceivedAt: migrated (0.0007s) =======================
2881== 20150121135401 BuildsAddReceivedAt: migrating ==============================
2882-- add_column(:builds, :received_at, :timestamp, {:precision=>nil})
2883 -> 0.0006s
2884== 20150121135401 BuildsAddReceivedAt: migrated (0.0007s) =====================
2886== 20150204144312 AddIndexOnRepositoryIdToCommits: migrating ==================
2887-- execute("DROP INDEX IF EXISTS index_commits_on_repository_id")
2888 -> 0.0002s
2889-- execute("CREATE INDEX CONCURRENTLY index_commits_on_repository_id ON commits(repository_id)")
2890 -> 0.0031s
2891== 20150204144312 AddIndexOnRepositoryIdToCommits: migrated (0.0034s) =========
2893== 20150210170900 IndexRequestsOnCreatedAt: migrating =========================
2894-- execute("DROP INDEX IF EXISTS index_requests_on_created_at")
2895 -> 0.0002s
2896-- execute("CREATE INDEX CONCURRENTLY index_requests_on_created_at ON requests(created_at)")
2897 -> 0.0027s
2898== 20150210170900 IndexRequestsOnCreatedAt: migrated (0.0030s) ================
2900== 20150223125700 CreateBranches: migrating ===================================
2901-- create_table(:branches, {:id=>:integer})
2902 -> 0.0193s
2903-- add_index(:branches, [:repository_id, :name], {:unique=>true})
2904 -> 0.0023s
2905== 20150223125700 CreateBranches: migrated (0.0218s) ==========================
2907== 20150311020321 AddNextBuildNumberToRepository: migrating ===================
2908-- add_column(:repositories, :next_build_number, :integer)
2909 -> 0.0025s
2910== 20150311020321 AddNextBuildNumberToRepository: migrated (0.0031s) ==========
2912== 20150316020321 AddActiveIndexToRepository: migrating =======================
2913-- execute("DROP INDEX IF EXISTS index_repositories_on_active")
2914 -> 0.0009s
2915-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_active ON repositories(active)")
2916 -> 0.0038s
2917== 20150316020321 AddActiveIndexToRepository: migrated (0.0050s) ==============
2919== 20150316080321 AddOwnerTypeAndOwnerIdIndexesToBuilds: migrating ============
2920-- execute("DROP INDEX IF EXISTS index_builds_on_owner_type")
2921 -> 0.0009s
2922-- execute("DROP INDEX IF EXISTS index_builds_on_owner_id")
2923 -> 0.0008s
2924-- execute("CREATE INDEX CONCURRENTLY index_builds_on_owner_type ON builds(owner_type)")
2925 -> 0.0039s
2926-- execute("CREATE INDEX CONCURRENTLY index_builds_on_owner_id ON builds(owner_id)")
2927 -> 0.0033s
2928== 20150316080321 AddOwnerTypeAndOwnerIdIndexesToBuilds: migrated (0.0094s) ===
2930== 20150316100321 AddOwnerTypeAndOwnerIdIndexesToRepositories: migrating ======
2931-- execute("DROP INDEX IF EXISTS index_repositories_on_owner_type")
2932 -> 0.0005s
2933-- execute("DROP INDEX IF EXISTS index_repositories_on_owner_id")
2934 -> 0.0003s
2935-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_type ON repositories(owner_type)")
2936 -> 0.0034s
2937-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_id ON repositories(owner_id)")
2938 -> 0.0034s
2939== 20150316100321 AddOwnerTypeAndOwnerIdIndexesToRepositories: migrated (0.0080s)
2941== 20150317004600 AddSlugIndexToRepositories: migrating =======================
2942-- execute("CREATE EXTENSION IF NOT EXISTS pg_trgm")
2943 -> 0.0153s
2944-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_slug ON repositories USING gin((owner_name || '/' || name) gin_trgm_ops)")
2945 -> 0.0038s
2946== 20150317004600 AddSlugIndexToRepositories: migrated (0.0193s) ==============
2948== 20150317020321 AddTokenIndexToTokens: migrating ============================
2949-- execute("DROP INDEX IF EXISTS index_tokens_on_token")
2950 -> 0.0005s
2951-- execute("CREATE INDEX CONCURRENTLY index_tokens_on_token ON tokens(token)")
2952 -> 0.0040s
2953== 20150317020321 AddTokenIndexToTokens: migrated (0.0046s) ===================
2955== 20150317080321 AddLoginIndexToOrganizations: migrating =====================
2956-- execute("DROP INDEX IF EXISTS index_organizations_on_login")
2957 -> 0.0003s
2958-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_login ON organizations(login)")
2959 -> 0.0030s
2960== 20150317080321 AddLoginIndexToOrganizations: migrated (0.0034s) ============
2962== 20150414001337 AddLowerCaseIndices: migrating ==============================
2963-- execute("DROP INDEX IF EXISTS index_organizations_on_lower_login")
2964 -> 0.0003s
2965-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_lower_login ON organizations USING btree(lower(login))")
2966 -> 0.0030s
2967-- execute("DROP INDEX IF EXISTS index_users_on_lower_login")
2968 -> 0.0002s
2969-- execute("CREATE INDEX CONCURRENTLY index_users_on_lower_login ON users USING btree(lower(login))")
2970 -> 0.0029s
2971-- execute("DROP INDEX IF EXISTS index_repositories_on_lower_name")
2972 -> 0.0002s
2973-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_name ON repositories USING btree(lower(name))")
2974 -> 0.0029s
2975-- execute("DROP INDEX IF EXISTS index_repositories_on_lower_owner_name")
2976 -> 0.0002s
2977-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_owner_name ON repositories USING btree(lower(owner_name))")
2978 -> 0.0028s
2979== 20150414001337 AddLowerCaseIndices: migrated (0.0128s) =====================
2981== 20150528101600 RepositoriesAddIndexOwnerName: migrating ====================
2982-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_name ON repositories(owner_name)")
2983 -> 0.0030s
2984== 20150528101600 RepositoriesAddIndexOwnerName: migrated (0.0030s) ===========
2986== 20150528101601 RepositoriesAddIndexName: migrating =========================
2987-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_name ON repositories(name)")
2988 -> 0.0029s
2989== 20150528101601 RepositoriesAddIndexName: migrated (0.0029s) ================
2991== 20150528101602 RepositoriesDropIndexOwnerNameName: migrating ===============
2992-- execute("DROP INDEX CONCURRENTLY index_repositories_on_owner_name_and_name")
2993 -> 0.0017s
2994== 20150528101602 RepositoriesDropIndexOwnerNameName: migrated (0.0017s) ======
2996== 20150528101603 BuildsAddIndexEventType: migrating ==========================
2997-- execute("CREATE INDEX CONCURRENTLY index_builds_on_event_type ON builds (event_type)")
2998 -> 0.0029s
2999== 20150528101603 BuildsAddIndexEventType: migrated (0.0029s) =================
3001== 20150528101604 BuildsAddIndexRepositoryId: migrating =======================
3002-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id ON builds (repository_id)")
3003 -> 0.0027s
3004== 20150528101604 BuildsAddIndexRepositoryId: migrated (0.0027s) ==============
3006== 20150528101605 BuildsAddIndexState: migrating ==============================
3007-- execute("CREATE INDEX CONCURRENTLY index_builds_on_state ON builds (state)")
3008 -> 0.0030s
3009== 20150528101605 BuildsAddIndexState: migrated (0.0030s) =====================
3011== 20150528101607 BuildsAddIndexBranch: migrating =============================
3012-- execute("CREATE INDEX CONCURRENTLY index_builds_on_branch ON builds (branch)")
3013 -> 0.0027s
3014== 20150528101607 BuildsAddIndexBranch: migrated (0.0027s) ====================
3016== 20150528101608 BuildsDropIndexRepositoryIdAndState: migrating ==============
3017-- execute("DROP INDEX CONCURRENTLY index_builds_on_repository_id_and_state")
3018 -> 0.0016s
3019== 20150528101608 BuildsDropIndexRepositoryIdAndState: migrated (0.0016s) =====
3021== 20150528101609 BuildsDropIndexRepositoryIdAndEventType: migrating ==========
3022-- execute("DROP INDEX CONCURRENTLY index_builds_on_repository_id_and_event_type")
3023 -> 0.0018s
3024== 20150528101609 BuildsDropIndexRepositoryIdAndEventType: migrated (0.0018s) =
3026== 20150528101610 BuildsDropIndexIdRepositoryIdAndEventTypeDesc: migrating ====
3027-- execute("DROP INDEX CONCURRENTLY index_builds_on_id_repository_id_and_event_type_desc")
3028 -> 0.0019s
3029== 20150528101610 BuildsDropIndexIdRepositoryIdAndEventTypeDesc: migrated (0.0020s)
3031== 20150528101611 BuildsDropIndexRepositoryIdAndEventTypeAndStateAndBranch: migrating
3032-- execute("DROP INDEX CONCURRENTLY index_builds_on_repository_id_and_event_type_and_state_and_bran")
3033 -> 0.0019s
3034== 20150528101611 BuildsDropIndexRepositoryIdAndEventTypeAndStateAndBranch: migrated (0.0019s)
3036== 20150609175200 AddCancelationColumnsToSubscriptions: migrating =============
3037-- change_table(:subscriptions)
3038 -> 0.0012s
3039== 20150609175200 AddCancelationColumnsToSubscriptions: migrated (0.0012s) ====
3041== 20150610143500 JobsAddIndexOwnerId: migrating ==============================
3042-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_id ON jobs (owner_id)")
3043 -> 0.0032s
3044== 20150610143500 JobsAddIndexOwnerId: migrated (0.0032s) =====================
3046== 20150610143501 JobsAddIndexOwnerType: migrating ============================
3047-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_type ON jobs (owner_type)")
3048 -> 0.0029s
3049== 20150610143501 JobsAddIndexOwnerType: migrated (0.0030s) ===================
3051== 20150610143502 JobsAddIndexSourceId: migrating =============================
3052-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_source_id ON jobs (source_id)")
3053 -> 0.0032s
3054== 20150610143502 JobsAddIndexSourceId: migrated (0.0032s) ====================
3056== 20150610143503 JobsAddIndexSourceType: migrating ===========================
3057-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_source_type ON jobs (source_type)")
3058 -> 0.0032s
3059== 20150610143503 JobsAddIndexSourceType: migrated (0.0033s) ==================
3061== 20150610143504 JobsAddIndexType: migrating =================================
3062-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_type ON jobs (type)")
3063 -> 0.0054s
3064== 20150610143504 JobsAddIndexType: migrated (0.0055s) ========================
3066== 20150610143505 JobsDropIndexOwnerIdAndOwnerTypeAndState: migrating =========
3067-- execute("DROP INDEX CONCURRENTLY index_jobs_on_owner_id_and_owner_type_and_state")
3068 -> 0.0021s
3069== 20150610143505 JobsDropIndexOwnerIdAndOwnerTypeAndState: migrated (0.0022s)
3071== 20150610143506 JobsDropIndexStateOwnerTypeOwnerId: migrating ===============
3072-- execute("DROP INDEX CONCURRENTLY index_jobs_on_state_owner_type_owner_id")
3073 -> 0.0019s
3074== 20150610143506 JobsDropIndexStateOwnerTypeOwnerId: migrated (0.0019s) ======
3076== 20150610143507 JobsDropIndexTypeAndSourceIdAndSourceType: migrating ========
3077-- 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"})
3078 -> 0.0058s
3079== 20150610143507 JobsDropIndexTypeAndSourceIdAndSourceType: migrated (0.0058s)
3081== 20150610143508 JobsAddIndexState: migrating ================================
3082-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_state ON jobs (state)")
3083 -> 0.0039s
3084== 20150610143508 JobsAddIndexState: migrated (0.0040s) =======================
3086== 20150610143509 JobsAddIndexQueue: migrating ================================
3087-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_queue ON jobs (queue)")
3088 -> 0.0041s
3089== 20150610143509 JobsAddIndexQueue: migrated (0.0041s) =======================
3091== 20150610143510 TokensAddIndexUserId: migrating =============================
3092-- execute("CREATE INDEX CONCURRENTLY index_tokens_on_user_id ON tokens (user_id)")
3093 -> 0.0033s
3094== 20150610143510 TokensAddIndexUserId: migrated (0.0034s) ====================
3096== 20150615103059 AddStatusToSubscriptions: migrating =========================
3097-- add_column(:subscriptions, :status, :string)
3098 -> 0.0009s
3099== 20150615103059 AddStatusToSubscriptions: migrated (0.0010s) ================
3101== 20150629231300 ReposAddInvalidatedAt: migrating ============================
3102-- add_column(:repositories, :invalidated_at, :timestamp, {:precision=>nil})
3103 -> 0.0010s
3104== 20150629231300 ReposAddInvalidatedAt: migrated (0.0011s) ===================
3106== 20150923131400 BroadcastsAddCategory: migrating ============================
3107-- add_column(:broadcasts, :category, :string)
3108 -> 0.0010s
3109== 20150923131400 BroadcastsAddCategory: migrated (0.0011s) ===================
3111== 20151112153500 CreateStars: migrating ======================================
3112-- create_table(:stars, {:id=>:integer})
3113 -> 0.0042s
3114-- add_index(:stars, :user_id)
3115 -> 0.0022s
3116== 20151112153500 CreateStars: migrated (0.0066s) =============================
3118== 20151113111400 StarsAddIndexUserIdAndRepositoryId: migrating ===============
3119-- execute("CREATE UNIQUE INDEX index_stars_on_user_id_and_repository_id ON stars (user_id, repository_id)")
3120 -> 0.0026s
3121== 20151113111400 StarsAddIndexUserIdAndRepositoryId: migrated (0.0027s) ======
3123== 20151127153500 UsersAddIndexGithubOauthToken: migrating ====================
3124-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_github_oauth_token ON users (github_oauth_token)")
3125 -> 0.0037s
3126== 20151127153500 UsersAddIndexGithubOauthToken: migrated (0.0038s) ===========
3128== 20151127154200 AnnotationsAddIndexJobId: migrating =========================
3129-- execute("CREATE INDEX CONCURRENTLY index_annotations_on_job_id ON annotations (job_id)")
3130 -> 0.0037s
3131== 20151127154200 AnnotationsAddIndexJobId: migrated (0.0038s) ================
3133== 20151127154600 BroadcastsAddIndexRecipientIdAndRecipientType: migrating ====
3134-- execute("CREATE INDEX CONCURRENTLY index_broadcasts_on_recipient_id_and_recipient_type ON broadcasts (recipient_id, recipient_type)")
3135 -> 0.0038s
3136== 20151127154600 BroadcastsAddIndexRecipientIdAndRecipientType: migrated (0.0040s)
3138== 20151202122200 UsersAddFirstLoggedInAt: migrating ==========================
3139-- add_column(:users, :first_logged_in_at, :timestamp, {:precision=>nil})
3140 -> 0.0015s
3141== 20151202122200 UsersAddFirstLoggedInAt: migrated (0.0017s) =================
3143== 20160107120927 AddCronTable: migrating =====================================
3144-- create_table(:crons, {:id=>:integer})
3145 -> 0.0078s
3146== 20160107120927 AddCronTable: migrated (0.0080s) ============================
3148== 20160303165750 AddDebugOptionsToJobs: migrating ============================
3149-- add_column(:jobs, :debug_options, :text)
3150 -> 0.0014s
3151== 20160303165750 AddDebugOptionsToJobs: migrated (0.0015s) ===================
3153== 20160412113020 BuildsDropIndexOwnerType: migrating =========================
3154-- execute("DROP INDEX CONCURRENTLY index_builds_on_owner_type")
3155 -> 0.0021s
3156== 20160412113020 BuildsDropIndexOwnerType: migrated (0.0022s) ================
3158== 20160412113070 RepositoriesDropIndexLastBuildStartedAt: migrating ==========
3159-- execute("DROP INDEX CONCURRENTLY index_repositories_on_last_build_started_at")
3160 -> 0.0021s
3161== 20160412113070 RepositoriesDropIndexLastBuildStartedAt: migrated (0.0021s) =
3163== 20160412121405 JobsDropIndexType: migrating ================================
3164-- execute("DROP INDEX CONCURRENTLY index_jobs_on_type")
3165 -> 0.0018s
3166== 20160412121405 JobsDropIndexType: migrated (0.0018s) =======================
3168== 20160412123900 JobsDropIndexSourceType: migrating ==========================
3169-- execute("DROP INDEX CONCURRENTLY index_jobs_on_source_type")
3170 -> 0.0017s
3171== 20160412123900 JobsDropIndexSourceType: migrated (0.0018s) =================
3173== 20160414214442 JobsAddIndexQueuedAt: migrating =============================
3174-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_queued_at ON jobs (queued_at)")
3175 -> 0.0034s
3176== 20160414214442 JobsAddIndexQueuedAt: migrated (0.0034s) ====================
3178== 20160422104300 BuildsAddIndexNumber: migrating =============================
3179-- execute("CREATE INDEX CONCURRENTLY index_builds_on_number ON builds (number)")
3180 -> 0.0031s
3181== 20160422104300 BuildsAddIndexNumber: migrated (0.0031s) ====================
3183== 20160422121400 BuildsAddIndexRepositoryIdAndNumberAndEventType: migrating ==
3184-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_number_and_event_type ON builds (repository_id, number, event_type)")
3185 -> 0.0030s
3186== 20160422121400 BuildsAddIndexRepositoryIdAndNumberAndEventType: migrated (0.0030s)
3188== 20160510142700 JobsAddIndexCreatedAt: migrating ============================
3189-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_created_at ON jobs (created_at)")
3190 -> 0.0030s
3191== 20160510142700 JobsAddIndexCreatedAt: migrated (0.0030s) ===================
3193== 20160510144200 BuildsAddPrivate: migrating =================================
3194-- change_table(:builds)
3195 -> 0.0007s
3196== 20160510144200 BuildsAddPrivate: migrated (0.0008s) ========================
3198== 20160510150300 JobsAddPrivate: migrating ===================================
3199-- change_table(:jobs)
3200 -> 0.0008s
3201== 20160510150300 JobsAddPrivate: migrated (0.0008s) ==========================
3203== 20160510150400 RequestsAddPrivate: migrating ===============================
3204-- change_table(:requests)
3205 -> 0.0009s
3206== 20160510150400 RequestsAddPrivate: migrated (0.0009s) ======================
3208== 20160513074300 AddCurrentBuildIdToRepositories: migrating ==================
3209-- add_column(:repositories, :current_build_id, :bigint)
3210 -> 0.0007s
3211-- execute("ALTER TABLE repositories ADD CONSTRAINT fk_repositories_current_build_id FOREIGN KEY (current_build_id) REFERENCES builds (id);")
3212 -> 0.0016s
3213== 20160513074300 AddCurrentBuildIdToRepositories: migrated (0.0023s) =========
3215== 20160609163600 PermissionsAddIndexUserIdAndRepositoryId: migrating =========
3216-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_permissions_on_user_id_and_repository_id ON permissions (user_id, repository_id)")
3217 -> 0.0039s
3218== 20160609163600 PermissionsAddIndexUserIdAndRepositoryId: migrated (0.0040s)
3220== 20160623133900 CreatePreviousJobStates: migrating ==========================
3221-- create_table(:previous_job_states, {:id=>:integer})
3222 -> 0.0047s
3223-- add_column(:jobs, :previous_job_state_id, :bigint)
3224 -> 0.0005s
3225== 20160623133900 CreatePreviousJobStates: migrated (0.0053s) =================
3227== 20160623133901 AddPreviousStatesTriggers: migrating ========================
3228-- 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")
3229 -> 0.0018s
3230== 20160623133901 AddPreviousStatesTriggers: migrated (0.0019s) ===============
3232== 20160712125400 RevertPreviousJobStates: migrating ==========================
3233-- 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")
3234 -> 0.0010s
3235-- remove_column(:jobs, :previous_job_state_id)
3236 -> 0.0006s
3237-- drop_table(:previous_job_states)
3238 -> 0.0011s
3239== 20160712125400 RevertPreviousJobStates: migrated (0.0029s) =================
3241== 20160819103700 AddAvatarUrlToUsers: migrating ==============================
3242-- add_column(:users, :avatar_url, :string)
3243 -> 0.0013s
3244== 20160819103700 AddAvatarUrlToUsers: migrated (0.0014s) =====================
3246== 20160920220400 AddRoleToMemberships: migrating =============================
3247-- add_column(:memberships, :role, :string)
3248 -> 0.0038s
3249== 20160920220400 AddRoleToMemberships: migrated (0.0040s) ====================
3251== 20161028154600 RemoveTypeIndices: migrating ================================
3252-- execute("DROP INDEX CONCURRENTLY IF EXISTS index_requests_on_event_type")
3253 -> 0.0009s
3254-- execute("DROP INDEX CONCURRENTLY IF EXISTS index_jobs_on_owner_type")
3255 -> 0.0025s
3256== 20161028154600 RemoveTypeIndices: migrated (0.0036s) =======================
3258== 20161101000000 AddNextRunLastRunToCrons: migrating =========================
3259-- column_exists?(:crons, :next_run)
3260 -> 0.0044s
3261-- add_column(:crons, :next_run, :timestamp, {:precision=>nil})
3262 -> 0.0014s
3263-- column_exists?(:crons, :last_run)
3264 -> 0.0033s
3265-- add_column(:crons, :last_run, :timestamp, {:precision=>nil})
3266 -> 0.0010s
3267== 20161101000000 AddNextRunLastRunToCrons: migrated (0.0106s) ================
3269== 20161101000001 AddDontRunIfRecentBuildExists: migrating ====================
3270-- column_exists?(:crons, :dont_run_if_recent_build_exists)
3271 -> 0.0037s
3272-- add_column(:crons, :dont_run_if_recent_build_exists, :boolean, {:default=>false})
3273 -> 0.0024s
3274== 20161101000001 AddDontRunIfRecentBuildExists: migrated (0.0063s) ===========
3276== 20161201112200 CreateBetaFeatures: migrating ===============================
3277-- create_table(:beta_features, {:id=>:integer})
3278 -> 0.0074s
3279== 20161201112200 CreateBetaFeatures: migrated (0.0076s) ======================
3281== 20161201112600 CreateUserBetaFeatures: migrating ===========================
3282-- create_table(:user_beta_features, {:id=>:integer})
3283 -> 0.0069s
3284-- add_index(:user_beta_features, [:user_id, :beta_feature_id])
3285 -> 0.0021s
3286== 20161201112600 CreateUserBetaFeatures: migrated (0.0094s) ==================
3288== 20161202000000 RemoveDisableByBuildFromCrons: migrating ====================
3289-- remove_column(:crons, :disable_by_build)
3290 -> 0.0017s
3291== 20161202000000 RemoveDisableByBuildFromCrons: migrated (0.0019s) ===========
3293== 20161206155800 AddBillingAdminOnlyToOrganizations: migrating ===============
3294-- add_column(:organizations, :billing_admin_only, :boolean)
3295 -> 0.0007s
3296== 20161206155800 AddBillingAdminOnlyToOrganizations: migrated (0.0007s) ======
3298== 20161221171300 BuildsAddIndexRepositoryIdAndNumber: migrating ==============
3299-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_number ON builds(repository_id, (number::integer))")
3300 -> 0.0029s
3301== 20161221171300 BuildsAddIndexRepositoryIdAndNumber: migrated (0.0029s) =====
3303== 20170211000000 JobsAddStageNumber: migrating ===============================
3304-- add_column(:jobs, :stage_number, :string)
3305 -> 0.0007s
3306== 20170211000000 JobsAddStageNumber: migrated (0.0007s) ======================
3308== 20170211000001 JobsAddStageId: migrating ===================================
3309-- change_table(:jobs)
3310 -> 0.0007s
3311== 20170211000001 JobsAddStageId: migrated (0.0007s) ==========================
3313== 20170211000002 StagesCreate: migrating =====================================
3314-- create_table(:stages, {:id=>:integer})
3315 -> 0.0044s
3316== 20170211000002 StagesCreate: migrated (0.0044s) ============================
3318== 20170211000003 StagesAddStateAndTimestamps: migrating ======================
3319-- change_table(:stages)
3320 -> 0.0014s
3321== 20170211000003 StagesAddStateAndTimestamps: migrated (0.0014s) =============
3323== 20170213124000 AddConstraintForOwnerIdToSubscriptions: migrating ===========
3324-- execute("CREATE UNIQUE INDEX subscriptions_owner ON subscriptions (owner_id, owner_type) WHERE (status = 'subscribed');")
3325 -> 0.0020s
3326== 20170213124000 AddConstraintForOwnerIdToSubscriptions: migrated (0.0021s) ==
3328== 20170316000000 QueueableJobsCreate: migrating ==============================
3329-- create_table(:queueable_jobs, {:id=>:integer})
3330 -> 0.0027s
3331== 20170316000000 QueueableJobsCreate: migrated (0.0028s) =====================
3333== 20170316000001 QueueableJobsIndexJobId: migrating ==========================
3334-- add_index(:queueable_jobs, :job_id, {:algorithm=>:concurrently})
3335 -> 0.0028s
3336== 20170316000001 QueueableJobsIndexJobId: migrated (0.0029s) =================
3338== 20170318000000 PullRequestsCreate: migrating ===============================
3339-- create_table(:pull_requests, {:id=>:integer})
3340 -> 0.0042s
3341== 20170318000000 PullRequestsCreate: migrated (0.0043s) ======================
3343== 20170318000001 RequestsAddPullRequestId: migrating =========================
3344-- change_table(:requests)
3345 -> 0.0007s
3346== 20170318000001 RequestsAddPullRequestId: migrated (0.0008s) ================
3348== 20170318000002 BuildsAddPullRequestId: migrating ===========================
3349-- change_table(:builds)
3350 -> 0.0007s
3351== 20170318000002 BuildsAddPullRequestId: migrated (0.0007s) ==================
3353== 20170322000000 AddIndexOnRequestsRepositoryIdAndIdDesc: migrating ==========
3354-- execute("CREATE INDEX CONCURRENTLY index_requests_on_repository_id_and_id_desc ON requests (repository_id, id DESC);")
3355 -> 0.0029s
3356== 20170322000000 AddIndexOnRequestsRepositoryIdAndIdDesc: migrated (0.0030s) =
3358== 20170331000000 AddIndexRepositoryIdOnPullRequests: migrating ===============
3359-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_pull_requests_on_repository_id_and_number ON pull_requests (repository_id, (number::integer));")
3360 -> 0.0028s
3361== 20170331000000 AddIndexRepositoryIdOnPullRequests: migrated (0.0028s) ======
3363== 20170401000000 OwnerGroupsCreate: migrating ================================
3364-- create_table(:owner_groups, {:id=>:integer})
3365 -> 0.0042s
3366== 20170401000000 OwnerGroupsCreate: migrated (0.0042s) =======================
3368== 20170401000001 OwnerGroupsIndexOwnerIdOwnerType: migrating =================
3369-- execute("CREATE INDEX CONCURRENTLY index_owner_groups_on_owner_type_and_owner_id ON owner_groups (owner_type, owner_id);")
3370 -> 0.0030s
3371== 20170401000001 OwnerGroupsIndexOwnerIdOwnerType: migrated (0.0030s) ========
3373== 20170401000002 OwnerGroupsIndexUuid: migrating =============================
3374-- execute("CREATE INDEX CONCURRENTLY index_owner_groups_on_uuid ON owner_groups (uuid);")
3375 -> 0.0029s
3376== 20170401000002 OwnerGroupsIndexUuid: migrated (0.0029s) ====================
3378== 20170405000000 TagsCreate: migrating =======================================
3379-- create_table(:tags, {:id=>:integer})
3380 -> 0.0042s
3381== 20170405000000 TagsCreate: migrated (0.0043s) ==============================
3383== 20170405000001 RequestsAddBranchIdAndTagId: migrating ======================
3384-- change_table(:requests)
3385 -> 0.0112s
3386== 20170405000001 RequestsAddBranchIdAndTagId: migrated (0.0119s) =============
3388== 20170405000002 CommitsAddBranchIdAndTagId: migrating =======================
3389-- change_table(:commits)
3390 -> 0.0032s
3391== 20170405000002 CommitsAddBranchIdAndTagId: migrated (0.0034s) ==============
3393== 20170405000003 BuildsAddBranchIdAndTagId: migrating ========================
3394-- change_table(:builds)
3395 -> 0.0032s
3396== 20170405000003 BuildsAddBranchIdAndTagId: migrated (0.0034s) ===============
3398== 20170408000000 RequestsAddSenderId: migrating ==============================
3399-- change_table(:requests)
3400 -> 0.0027s
3401== 20170408000000 RequestsAddSenderId: migrated (0.0029s) =====================
3403== 20170408000001 BuildsAddSenderId: migrating ================================
3404-- change_table(:builds)
3405 -> 0.0032s
3406== 20170408000001 BuildsAddSenderId: migrated (0.0033s) =======================
3408== 20170410000000 JobsIndexStageId: migrating =================================
3409-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_stage_id ON jobs (stage_id);")
3410 -> 0.0039s
3411== 20170410000000 JobsIndexStageId: migrated (0.0041s) ========================
3413== 20170411000000 TagsIndexRepoIdAndName: migrating ===========================
3414-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_repository_id_and_name ON tags (repository_id, name);")
3415 -> 0.0034s
3416== 20170411000000 TagsIndexRepoIdAndName: migrated (0.0035s) ==================
3418== 20170419093249 AddSourceToSubscriptions: migrating =========================
3419-- execute(" CREATE TYPE source_type AS ENUM ('manual', 'stripe', 'github', 'unknown');\n")
3420 -> 0.0018s
3421-- add_column(:subscriptions, :source, :source_type, {:default=>"unknown", :null=>false})
3422 -> 0.0023s
3423== 20170419093249 AddSourceToSubscriptions: migrated (0.0043s) ================
3425== 20170531125700 AddIndexOnBuildsSenderTypeAndSenderId: migrating ============
3426-- execute("CREATE INDEX CONCURRENTLY index_builds_on_sender_type_and_sender_id ON builds (sender_type, sender_id);")
3427 -> 0.0039s
3428== 20170531125700 AddIndexOnBuildsSenderTypeAndSenderId: migrated (0.0040s) ===
3430== 20170601163700 DropIndexOnRepositoriesBuildsAndCommits: migrating ==========
3431-- execute("DROP INDEX CONCURRENTLY index_repositories_on_lower_owner_name")
3432 -> 0.0022s
3433-- execute("DROP INDEX CONCURRENTLY index_repositories_on_owner_type")
3434 -> 0.0021s
3435-- execute("DROP INDEX CONCURRENTLY index_commits_on_repository_id")
3436 -> 0.0018s
3437-- execute("DROP INDEX CONCURRENTLY index_builds_on_number")
3438 -> 0.0020s
3439== 20170601163700 DropIndexOnRepositoriesBuildsAndCommits: migrated (0.0083s) =
3441== 20170601164400 AddIndexOnBuildsAndStages: migrating ========================
3442-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_branch_and_event_type_and_id ON builds (repository_id, branch, event_type, id)")
3443 -> 0.0039s
3444-- execute("CREATE INDEX CONCURRENTLY index_stages_on_build_id ON stages (build_id)")
3445 -> 0.0033s
3446== 20170601164400 AddIndexOnBuildsAndStages: migrated (0.0074s) ===============
3448== 20170609174400 DropUnusedIndexesOnJobsAndBuilds: migrating =================
3449-- execute("DROP INDEX CONCURRENTLY index_jobs_on_repository_id")
3450 -> 0.0019s
3451-- execute("DROP INDEX CONCURRENTLY index_jobs_on_queued_at")
3452 -> 0.0018s
3453-- execute("DROP INDEX CONCURRENTLY index_jobs_on_queue")
3454 -> 0.0016s
3455-- execute("DROP INDEX CONCURRENTLY index_jobs_on_owner_id")
3456 -> 0.0014s
3457-- execute("DROP INDEX CONCURRENTLY index_builds_on_branch")
3458 -> 0.0015s
3459-- execute("DROP INDEX CONCURRENTLY index_builds_on_event_type")
3460 -> 0.0017s
3461-- execute("DROP INDEX CONCURRENTLY index_builds_on_owner_id")
3462 -> 0.0015s
3463== 20170609174400 DropUnusedIndexesOnJobsAndBuilds: migrated (0.0116s) ========
3465== 20170613000000 CreateTrials: migrating =====================================
3466-- create_table(:trials, {:id=>:integer})
3467 -> 0.0053s
3468-- execute("CREATE INDEX CONCURRENTLY index_trials_on_owner ON trials(owner_id, owner_type)")
3469 -> 0.0030s
3470== 20170613000000 CreateTrials: migrated (0.0084s) ============================
3472== 20170620144500 AddIndexesOnBuildsAndJobsAndBranches: migrating =============
3473-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_branch_and_id_desc ON builds (repository_id, branch, id DESC)")
3474 -> 0.0029s
3475-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_id_and_owner_type_and_state ON jobs (owner_id, owner_type, state)")
3476 -> 0.0029s
3477-- execute("CREATE INDEX CONCURRENTLY index_branches_on_repository_id ON branches (repository_id)")
3478 -> 0.0029s
3479== 20170620144500 AddIndexesOnBuildsAndJobsAndBranches: migrated (0.0087s) ====
3481== 20170621142300 RemovePlansTable: migrating =================================
3482-- drop_table(:plans)
3483 -> 0.0009s
3484== 20170621142300 RemovePlansTable: migrated (0.0009s) ========================
3486== 20170713162000 AddCcLastDigitsToInvoices: migrating ========================
3487-- change_table(:invoices)
3488 -> 0.0007s
3489== 20170713162000 AddCcLastDigitsToInvoices: migrated (0.0008s) ===============
3491== 20170822171600 CreateMessages: migrating ===================================
3492-- create_table("messages", {:force=>:cascade, :id=>:integer})
3493 -> 0.0053s
3494-- execute("CREATE INDEX CONCURRENTLY index_messages_on_subject_type_and_subject_id ON messages(subject_type, subject_id)")
3495 -> 0.0030s
3496== 20170822171600 CreateMessages: migrated (0.0084s) ==========================
3498== 20170831000000 CreateTrialAllowances: migrating ============================
3499-- create_table(:trial_allowances, {:id=>:integer})
3500 -> 0.0047s
3501-- add_index(:trial_allowances, :trial_id)
3502 -> 0.0018s
3503-- add_index(:trial_allowances, [:creator_id, :creator_type])
3504 -> 0.0017s
3505== 20170831000000 CreateTrialAllowances: migrated (0.0084s) ===================
3507== 20170911172800 AddIndexOnJobsUpdatedAt: migrating ==========================
3508-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_updated_at ON jobs (updated_at)")
3509 -> 0.0034s
3510== 20170911172800 AddIndexOnJobsUpdatedAt: migrated (0.0035s) =================
3512== 20171017104500 AddConcurrencyToSubscriptions: migrating ====================
3513-- change_table(:subscriptions)
3514 -> 0.0008s
3515== 20171017104500 AddConcurrencyToSubscriptions: migrated (0.0008s) ===========
3517== 20171024000000 AddAbuseTable: migrating ====================================
3518-- create_table(:abuses, {:id=>:integer})
3519 -> 0.0056s
3520-- execute("CREATE INDEX CONCURRENTLY index_abuses_on_owner ON abuses(owner_id)")
3521 -> 0.0031s
3522== 20171024000000 AddAbuseTable: migrated (0.0087s) ===========================
3524== 20171025000000 AddUpdatedAtTriggerToBuildsAndJobs: migrating ===============
3525-- 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")
3526 -> 0.0008s
3527== 20171025000000 AddUpdatedAtTriggerToBuildsAndJobs: migrated (0.0009s) ======
3529== 20171103000000 UpdateIndexOnAbuses: migrating ==============================
3530-- index_exists?(:abuses, :owner, {:name=>"index_abuses_on_owner"})
3531 -> 0.0014s
3532-- index_exists?(:abuses, [:owner_id, :owner_type, :level], {:name=>"index_abuses_on_owner_id_and_owner_type_and_level"})
3533 -> 0.0011s
3534-- add_index(:abuses, [:owner_id, :owner_type, :level], {:unique=>true, :algorithm=>:concurrently})
3535 -> 0.0032s
3536== 20171103000000 UpdateIndexOnAbuses: migrated (0.0059s) =====================
3538== 20171211000000 AddRepositoryIdBranchEventTypeIndexOnBuilds: migrating ======
3539-- 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')")
3540 -> 0.0035s
3541== 20171211000000 AddRepositoryIdBranchEventTypeIndexOnBuilds: migrated (0.0036s)
3543== 20180212000000 UsersAddSuspended: migrating ================================
3544-- add_column(:users, :suspended, :boolean, {:default=>false})
3545 -> 0.0033s
3546== 20180212000000 UsersAddSuspended: migrated (0.0036s) =======================
3548== 20180213000000 UsersAddSuspendedAt: migrating ==============================
3549-- add_column(:users, :suspended_at, :timestamp, {:precision=>nil})
3550 -> 0.0024s
3551== 20180213000000 UsersAddSuspendedAt: migrated (0.0027s) =====================
3553== 20180222000000 AddComIdAndOrgId: migrating =================================
3554-- add_column(:branches, :org_id, :integer)
3555 -> 0.0018s
3556-- add_column(:builds, :org_id, :integer)
3557 -> 0.0013s
3558-- add_column(:commits, :org_id, :integer)
3559 -> 0.0011s
3560-- add_column(:crons, :org_id, :integer)
3561 -> 0.0011s
3562-- add_column(:jobs, :org_id, :integer)
3563 -> 0.0011s
3564-- add_column(:organizations, :org_id, :integer)
3565 -> 0.0011s
3566-- add_column(:permissions, :org_id, :integer)
3567 -> 0.0010s
3568-- add_column(:pull_requests, :org_id, :integer)
3569 -> 0.0006s
3570-- add_column(:repositories, :org_id, :integer)
3571 -> 0.0015s
3572-- add_column(:requests, :org_id, :integer)
3573 -> 0.0011s
3574-- add_column(:ssl_keys, :org_id, :integer)
3575 -> 0.0010s
3576-- add_column(:stages, :org_id, :integer)
3577 -> 0.0011s
3578-- add_column(:tags, :org_id, :integer)
3579 -> 0.0013s
3580-- add_column(:users, :org_id, :integer)
3581 -> 0.0011s
3582-- add_column(:branches, :com_id, :integer)
3583 -> 0.0011s
3584-- add_column(:builds, :com_id, :integer)
3585 -> 0.0008s
3586-- add_column(:commits, :com_id, :integer)
3587 -> 0.0011s
3588-- add_column(:crons, :com_id, :integer)
3589 -> 0.0010s
3590-- add_column(:jobs, :com_id, :integer)
3591 -> 0.0011s
3592-- add_column(:organizations, :com_id, :integer)
3593 -> 0.0010s
3594-- add_column(:permissions, :com_id, :integer)
3595 -> 0.0010s
3596-- add_column(:pull_requests, :com_id, :integer)
3597 -> 0.0010s
3598-- add_column(:repositories, :com_id, :integer)
3599 -> 0.0010s
3600-- add_column(:requests, :com_id, :integer)
3601 -> 0.0011s
3602-- add_column(:ssl_keys, :com_id, :integer)
3603 -> 0.0005s
3604-- add_column(:stages, :com_id, :integer)
3605 -> 0.0014s
3606-- add_column(:tags, :com_id, :integer)
3607 -> 0.0013s
3608-- add_column(:users, :com_id, :integer)
3609 -> 0.0015s
3610== 20180222000000 AddComIdAndOrgId: migrated (0.0515s) ========================
3612== 20180222000001 AddComIdAndOrgIdIndices: migrating ==========================
3613-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_on_org_id ON branches USING btree (org_id)")
3614 -> 0.0046s
3615-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_builds_on_org_id ON builds USING btree (org_id)")
3616 -> 0.0037s
3617-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_jobs_on_org_id ON jobs USING btree (org_id)")
3618 -> 0.0036s
3619-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_commits_on_org_id ON commits USING btree (org_id)")
3620 -> 0.0032s
3621-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_crons_on_org_id ON crons USING btree (org_id)")
3622 -> 0.0029s
3623-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organizations_on_org_id ON organizations USING btree (org_id)")
3624 -> 0.0029s
3625-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_permissions_on_org_id ON permissions USING btree (org_id)")
3626 -> 0.0032s
3627-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_pull_requests_on_org_id ON pull_requests USING btree (org_id)")
3628 -> 0.0028s
3629-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_repositories_on_org_id ON repositories USING btree (org_id)")
3630 -> 0.0029s
3631-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_requests_on_org_id ON requests USING btree (org_id)")
3632 -> 0.0030s
3633-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_ssl_keys_on_org_id ON ssl_keys USING btree (org_id)")
3634 -> 0.0030s
3635-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_stages_on_org_id ON stages USING btree (org_id)")
3636 -> 0.0029s
3637-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_org_id ON tags USING btree (org_id)")
3638 -> 0.0027s
3639-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_org_id ON users USING btree (org_id)")
3640 -> 0.0030s
3641-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_on_com_id ON branches USING btree (com_id)")
3642 -> 0.0029s
3643-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_builds_on_com_id ON builds USING btree (com_id)")
3644 -> 0.0029s
3645-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_jobs_on_com_id ON jobs USING btree (com_id)")
3646 -> 0.0030s
3647-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_commits_on_com_id ON commits USING btree (com_id)")
3648 -> 0.0031s
3649-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_crons_on_com_id ON crons USING btree (com_id)")
3650 -> 0.0028s
3651-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organizations_on_com_id ON organizations USING btree (com_id)")
3652 -> 0.0030s
3653-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_permissions_on_com_id ON permissions USING btree (com_id)")
3654 -> 0.0030s
3655-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_pull_requests_on_com_id ON pull_requests USING btree (com_id)")
3656 -> 0.0029s
3657-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_repositories_on_com_id ON repositories USING btree (com_id)")
3658 -> 0.0030s
3659-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_requests_on_com_id ON requests USING btree (com_id)")
3660 -> 0.0043s
3661-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_ssl_keys_on_com_id ON ssl_keys USING btree (com_id)")
3662 -> 0.0029s
3663-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_stages_on_com_id ON stages USING btree (com_id)")
3664 -> 0.0030s
3665-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_com_id ON tags USING btree (com_id)")
3666 -> 0.0033s
3667-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_com_id ON users USING btree (com_id)")
3668 -> 0.0031s
3669== 20180222000001 AddComIdAndOrgIdIndices: migrated (0.0889s) =================
3671== 20180222000002 AddMigrating: migrating =====================================
3672-- add_column(:repositories, :migrating, :boolean)
3673 -> 0.0008s
3674-- add_column(:repositories, :migrated_at, :timestamp, {:precision=>nil})
3675 -> 0.0005s
3676-- add_column(:organizations, :migrating, :boolean)
3677 -> 0.0004s
3678-- add_column(:organizations, :migrated_at, :timestamp, {:precision=>nil})
3679 -> 0.0004s
3680-- add_column(:users, :migrating, :boolean)
3681 -> 0.0008s
3682-- add_column(:users, :migrated_at, :timestamp, {:precision=>nil})
3683 -> 0.0004s
3684== 20180222000002 AddMigrating: migrated (0.0035s) ============================
3686== 20180222000003 DropFkRepositoriesCurrentBuildId: migrating =================
3687-- execute("ALTER TABLE repositories DROP CONSTRAINT fk_repositories_current_build_id")
3688 -> 0.0008s
3689== 20180222000003 DropFkRepositoriesCurrentBuildId: migrated (0.0008s) ========
3691== 20180222000009 CreateRepoCounts: migrating =================================
3692-- create_table(:repo_counts, {:id=>false})
3693 -> 0.0028s
3694-- add_index(:repo_counts, :repository_id)
3695 -> 0.0018s
3696== 20180222000009 CreateRepoCounts: migrated (0.0047s) ========================
3698== 20180222000012 CreateRepoCountsTriggers: migrating =========================
3699-- 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")
3700 -> 0.0222s
3701== 20180222000012 CreateRepoCountsTriggers: migrated (0.0227s) ================
3703== 20180222164100 DropAnnotations: migrating ==================================
3704-- drop_table(:annotations)
3705 -> 0.0025s
3706-- drop_table(:annotation_providers)
3707 -> 0.0031s
3708== 20180222164100 DropAnnotations: migrated (0.0057s) =========================
3710== 20180305143800 IndexBuildsOnRepositoryIdWhereStateNotFinished: migrating ===
3711-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_where_state_not_finished ON builds (repository_id) WHERE state IN ('created', 'queued', 'received', 'started');")
3712 -> 0.0061s
3713== 20180305143800 IndexBuildsOnRepositoryIdWhereStateNotFinished: migrated (0.0062s)
3715== 20180321102400 IndexJobsOnRepositoryIdWhereStateRunning: migrating =========
3716-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_repository_id_where_state_running ON jobs (repository_id) WHERE state IN ('queued', 'received', 'started')")
3717 -> 0.0057s
3718== 20180321102400 IndexJobsOnRepositoryIdWhereStateRunning: migrated (0.0058s)
3720== 20180330000000 CreateRequestPayloads: migrating ============================
3721-- create_table(:request_payloads, {:id=>:integer})
3722 -> 0.0092s
3723-- add_index(:request_payloads, :request_id)
3724 -> 0.0026s
3725-- add_index(:request_payloads, [:created_at, :archived])
3726 -> 0.0023s
3727== 20180330000000 CreateRequestPayloads: migrated (0.0142s) ===================
3729== 20180331000000 CreateConfigs: migrating ====================================
3730-- create_table(:request_configs, {:id=>:integer})
3731 -> 0.0081s
3732-- create_table(:build_configs, {:id=>:integer})
3733 -> 0.0056s
3734-- create_table(:job_configs, {:id=>:integer})
3735 -> 0.0075s
3736-- add_index(:request_configs, [:repository_id, :key])
3737 -> 0.0021s
3738-- add_index(:build_configs, [:repository_id, :key])
3739 -> 0.0021s
3740-- add_index(:job_configs, [:repository_id, :key])
3741 -> 0.0020s
3742-- add_column(:requests, :config_id, :integer)
3743 -> 0.0007s
3744-- add_column(:builds, :config_id, :integer)
3745 -> 0.0007s
3746-- add_column(:jobs, :config_id, :integer)
3747 -> 0.0007s
3748== 20180331000000 CreateConfigs: migrated (0.0302s) ===========================
3750== 20180404000001 CreateInstallations: migrating ==============================
3751-- create_table(:installations, {:id=>:integer})
3752 -> 0.0116s
3753-- change_table(:repositories)
3754 -> 0.0014s
3755== 20180404000001 CreateInstallations: migrated (0.0132s) =====================
3757== 20180410000000 RequestsDropPayload: migrating ==============================
3758-- remove_column(:requests, :payload, :text)
3759 -> 0.0010s
3760== 20180410000000 RequestsDropPayload: migrated (0.0010s) =====================
3762== 20180413000000 IndexBranchesOnRepositoryIdAndNameAndId: migrating ==========
3763-- execute("CREATE INDEX CONCURRENTLY index_branches_on_repository_id_and_name_and_id ON branches (repository_id, name, id)")
3764 -> 0.0036s
3765-- execute("DROP INDEX CONCURRENTLY index_branches_on_repository_id_and_name")
3766 -> 0.0021s
3767== 20180413000000 IndexBranchesOnRepositoryIdAndNameAndId: migrated (0.0058s) =
3769== 20180417000000 IndexBuildsOrganizationsUsersOnUpdatedAt: migrating =========
3770-- execute("CREATE INDEX CONCURRENTLY index_builds_on_updated_at ON builds (updated_at)")
3771 -> 0.0037s
3772-- execute("CREATE INDEX CONCURRENTLY index_users_on_updated_at ON users (updated_at)")
3773 -> 0.0042s
3774-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_updated_at ON repositories (updated_at)")
3775 -> 0.0035s
3776-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_updated_at ON organizations (updated_at)")
3777 -> 0.0032s
3778== 20180417000000 IndexBuildsOrganizationsUsersOnUpdatedAt: migrated (0.0148s)
3780== 20180420000000 ConstraintsAndIndexesForGhApps: migrating ===================
3781-- execute("CREATE UNIQUE INDEX CONCURRENTLY github_id_installations_idx ON installations (github_id)")
3782 -> 0.0033s
3783-- execute("CREATE INDEX CONCURRENTLY managed_repositories_idx ON repositories (managed_by_installation_at)")
3784 -> 0.0033s
3785-- execute("CREATE UNIQUE INDEX CONCURRENTLY owner_installations_idx ON installations (owner_id, owner_type) WHERE removed_by_id IS NULL")
3786 -> 0.0032s
3787== 20180420000000 ConstraintsAndIndexesForGhApps: migrated (0.0100s) ==========
3789== 20180425000000 IndexActiveOnOrg: migrating =================================
3790-- execute("CREATE INDEX CONCURRENTLY index_active_on_org ON repositories (active_on_org)")
3791 -> 0.0041s
3792== 20180425000000 IndexActiveOnOrg: migrated (0.0042s) ========================
3794== 20180425100000 AddRemovedAtOnInstallations: migrating ======================
3795-- add_column(:installations, :removed_at, :timestamp, {:precision=>nil})
3796 -> 0.0008s
3797== 20180425100000 AddRemovedAtOnInstallations: migrated (0.0008s) =============
3799== 20180429000000 IndexRepositoriesOnOwnerNameAndName: migrating ==============
3800-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_name_and_name ON repositories (owner_name, name) WHERE invalidated_at IS NULL")
3801 -> 0.0039s
3802== 20180429000000 IndexRepositoriesOnOwnerNameAndName: migrated (0.0039s) =====
3804== 20180501000000 IndexJobsOnOwnerWhereStateRunning: migrating ================
3805-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_where_state_running ON jobs (owner_id, owner_type) WHERE state IN ('queued', 'received', 'started')")
3806 -> 0.0040s
3807== 20180501000000 IndexJobsOnOwnerWhereStateRunning: migrated (0.0041s) =======
3809== 20180517000000 IndexRequestsConfigId: migrating ============================
3810-- execute("CREATE INDEX CONCURRENTLY index_requests_on_config_id ON requests (config_id)")
3811 -> 0.0037s
3812== 20180517000000 IndexRequestsConfigId: migrated (0.0037s) ===================
3814== 20180517000001 IndexBuildsConfigId: migrating ==============================
3815-- execute("CREATE INDEX CONCURRENTLY index_builds_on_config_id ON requests (config_id)")
3816 -> 0.0034s
3817== 20180517000001 IndexBuildsConfigId: migrated (0.0034s) =====================
3819== 20180517000002 IndexJobsConfigId: migrating ================================
3820-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_config_id ON requests (config_id)")
3821 -> 0.0035s
3822== 20180517000002 IndexJobsConfigId: migrated (0.0035s) =======================
3824== 20180518000000 IndexBuildsOnMultiple: migrating ============================
3825-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_builds_on_repo_branch_event_type_and_private ON builds (repository_id, branch, event_type, private)")
3826 -> 0.0044s
3827== 20180518000000 IndexBuildsOnMultiple: migrated (0.0044s) ===================
3829== 20180522000000 AddActiveFlagToCrons: migrating =============================
3830-- change_table(:crons)
3831 -> 0.0016s
3832-- add_index(:crons, :next_run, {:where=>"(active IS TRUE)", :algorithm=>:concurrently})
3833 -> 0.0036s
3834== 20180522000000 AddActiveFlagToCrons: migrated (0.0053s) ====================
3836== 20180531000000 CreateRequestYamlConfigs: migrating =========================
3837-- create_table(:request_yaml_configs, {:id=>:integer})
3838 -> 0.0069s
3839-- add_index(:request_yaml_configs, [:repository_id, :key])
3840 -> 0.0031s
3841-- add_column(:requests, :yaml_config_id, :integer)
3842 -> 0.0016s
3843== 20180531000000 CreateRequestYamlConfigs: migrated (0.0119s) ================
3845== 20180606000000 IndexCommitsOnRepositoryId: migrating =======================
3846-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_commits_on_repository_id ON commits (repository_id)")
3847 -> 0.0036s
3848== 20180606000000 IndexCommitsOnRepositoryId: migrated (0.0037s) ==============
3850== 20180606000001 IndexJobsOnRepositoryId: migrating ==========================
3851-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_jobs_on_repository_id ON jobs (repository_id)")
3852 -> 0.0035s
3853== 20180606000001 IndexJobsOnRepositoryId: migrated (0.0036s) =================
3855== 20180614000000 DropRequestsConfig: migrating ===============================
3856-- remove_column(:requests, :config)
3857 -> 0.0009s
3858== 20180614000000 DropRequestsConfig: migrated (0.0010s) ======================
3860== 20180614000001 DropBuildsConfig: migrating =================================
3861-- remove_column(:builds, :config)
3862 -> 0.0020s
3863== 20180614000001 DropBuildsConfig: migrated (0.0023s) ========================
3865== 20180614000002 DropJobsConfig: migrating ===================================
3866-- remove_column(:jobs, :config)
3867 -> 0.0008s
3868== 20180614000002 DropJobsConfig: migrated (0.0009s) ==========================
3870== 20180620000000 IndexBuildsOnRepositoryIdEventTypeId: migrating =============
3871-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_builds_on_repository_id_event_type_id ON builds (repository_id, event_type, id DESC)")
3872 -> 0.0041s
3873== 20180620000000 IndexBuildsOnRepositoryIdEventTypeId: migrated (0.0041s) ====
3875== 20180725000000 CreateCancellations: migrating ==============================
3876-- create_table(:cancellations, {:id=>:integer})
3877 -> 0.0075s
3878== 20180725000000 CreateCancellations: migrated (0.0075s) =====================
3880== 20180726000000 CommitsIndexAuthorEmail: migrating ==========================
3881-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_commits_on_author_email ON commits (author_email)")
3882 -> 0.0034s
3883== 20180726000000 CommitsIndexAuthorEmail: migrated (0.0034s) =================
3885== 20180726000001 CommitsIndexCommitterEmail: migrating =======================
3886-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_commits_on_committer_email ON commits (committer_email)")
3887 -> 0.0032s
3888== 20180726000001 CommitsIndexCommitterEmail: migrated (0.0033s) ==============
3890== 20180801000001 UsersAddRedactedAt: migrating ===============================
3891-- change_table(:users)
3892 -> 0.0008s
3893== 20180801000001 UsersAddRedactedAt: migrated (0.0009s) ======================
3895== 20180822000000 CreateEmailUnsubscribes: migrating ==========================
3896-- create_table(:email_unsubscribes, {:id=>:integer})
3897 -> 0.0102s
3898== 20180822000000 CreateEmailUnsubscribes: migrated (0.0103s) =================
3900== 20180823000000 AddPreferences: migrating ===================================
3901-- change_table(:users)
3902 -> 0.0013s
3903== 20180823000000 AddPreferences: migrated (0.0013s) ==========================
3905== 20180828000000 ChangePreferencesDefault: migrating =========================
3906-- change_column_default(:users, :preferences, {})
3907 -> 0.0037s
3908== 20180828000000 ChangePreferencesDefault: migrated (0.0037s) ================
3910== 20180829000000 MakeEmailUnsubscribesIdBigint: migrating ====================
3911-- change_column(:email_unsubscribes, :id, :bigint)
3912 -> 0.0072s
3913== 20180829000000 MakeEmailUnsubscribesIdBigint: migrated (0.0073s) ===========
3915== 20180830000001 JobsAddRestartedAt: migrating ===============================
3916-- change_table(:jobs)
3917 -> 0.0009s
3918== 20180830000001 JobsAddRestartedAt: migrated (0.0009s) ======================
3920== 20180830000002 BuildsAddRestartedAt: migrating =============================
3921-- change_table(:builds)
3922 -> 0.0010s
3923== 20180830000002 BuildsAddRestartedAt: migrated (0.0011s) ====================
3925== 20180830000003 JobVersionsCreate: migrating ================================
3926-- create_table(:job_versions, {:id=>:integer})
3927 -> 0.0050s
3928== 20180830000003 JobVersionsCreate: migrated (0.0050s) =======================
3930== 20180903000000 JobConfigsIndexConfigResourcesGpu: migrating ================
3931-- 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")
3932 -> 0.0011s
3933-- 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")
3934 -> 0.0040s
3935== 20180903000000 JobConfigsIndexConfigResourcesGpu: migrated (0.0053s) =======
3937== 20180903000001 FixIndexesOnBuildsAndJobsConfigId: migrating ================
3938-- execute("DROP INDEX index_builds_on_config_id")
3939 -> 0.0013s
3940-- execute("CREATE INDEX CONCURRENTLY index_builds_on_config_id ON builds (config_id)")
3941 -> 0.0035s
3942-- execute("DROP INDEX index_jobs_on_config_id")
3943 -> 0.0011s
3944-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_config_id ON jobs (config_id)")
3945 -> 0.0034s
3946== 20180903000001 FixIndexesOnBuildsAndJobsConfigId: migrated (0.0094s) =======
3948== 20180904000001 CreateJobConfigsGpu: migrating ==============================
3949-- 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")
3950 -> 0.0023s
3951== 20180904000001 CreateJobConfigsGpu: migrated (0.0024s) =====================
3953== 20180906000000 AddIndexUsersPreferencesBuildEmails: migrating ==============
3954-- execute("CREATE INDEX CONCURRENTLY user_preferences_build_emails_false ON users (id) WHERE preferences->>'build_emails' = 'false';\n")
3955 -> 0.0037s
3956== 20180906000000 AddIndexUsersPreferencesBuildEmails: migrated (0.0038s) =====
3958== 20181002115306 DeleteDuplicateRecordsFromMemberships: migrating ============
3959-- 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")
3960 -> 0.0017s
3961== 20181002115306 DeleteDuplicateRecordsFromMemberships: migrated (0.0017s) ===
3963== 20181002115307 AddConstraintOnOrganizationAndUserToMemberships: migrating ==
3964-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organization_id_and_user_id_on_memberships ON memberships USING btree (organization_id, user_id);\n")
3965 -> 0.0037s
3966== 20181002115307 AddConstraintOnOrganizationAndUserToMemberships: migrated (0.0037s)
3968== 20181018000000 IndexBuildsOnCreatedAt: migrating ===========================
3969-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_builds_on_created_at ON builds (created_at)")
3970 -> 0.0034s
3971== 20181018000000 IndexBuildsOnCreatedAt: migrated (0.0035s) ==================
3973== 20181029120000 AddMigrationStatusColumnToRepositories: migrating ===========
3974-- add_column(:repositories, :migration_status, :string)
3975 -> 0.0010s
3976== 20181029120000 AddMigrationStatusColumnToRepositories: migrated (0.0011s) ==
3978== 20181113120000 AddGithubGuidColumnToRequests: migrating ====================
3979-- add_column(:requests, :github_guid, :text)
3980 -> 0.0012s
3981-- add_index(:requests, :github_guid, {:algorithm=>:concurrently, :unique=>true})
3982 -> 0.0035s
3983== 20181113120000 AddGithubGuidColumnToRequests: migrated (0.0048s) ===========
3985== 20181116800000 AddConstraintsToMultipleTables: migrating ===================
3986-- 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")
3987 -> 0.0013s
3988-- 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")
3989 -> 0.0009s
3990-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
3991 -> 0.0008s
3992-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) NOT VALID")
3993 -> 0.0008s
3994-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_request_id FOREIGN KEY (request_id) REFERENCES requests(id) NOT VALID")
3995 -> 0.0009s
3996-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_pull_request_id FOREIGN KEY (pull_request_id) REFERENCES pull_requests(id) NOT VALID")
3997 -> 0.0009s
3998-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")
3999 -> 0.0008s
4000-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) NOT VALID")
4001 -> 0.0009s
4002-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_config_id FOREIGN KEY (config_id) REFERENCES build_configs(id) NOT VALID")
4003 -> 0.0008s
4004-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
4005 -> 0.0008s
4006-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) NOT VALID")
4007 -> 0.0008s
4008-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_stage_id FOREIGN KEY (stage_id) REFERENCES stages(id) NOT VALID")
4009 -> 0.0008s
4010-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_config_id FOREIGN KEY (config_id) REFERENCES job_configs(id) NOT VALID")
4011 -> 0.0008s
4012-- execute("ALTER TABLE branches ADD CONSTRAINT fk_branches_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
4013 -> 0.0008s
4014-- 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")
4015 -> 0.0008s
4016-- execute("ALTER TABLE tags ADD CONSTRAINT fk_tags_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
4017 -> 0.0008s
4018-- 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")
4019 -> 0.0008s
4020-- execute("ALTER TABLE commits ADD CONSTRAINT fk_commits_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
4021 -> 0.0007s
4022-- execute("ALTER TABLE commits ADD CONSTRAINT fk_commits_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")
4023 -> 0.0007s
4024-- execute("ALTER TABLE commits ADD CONSTRAINT fk_commits_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) NOT VALID")
4025 -> 0.0007s
4026-- execute("ALTER TABLE crons ADD CONSTRAINT fk_crons_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")
4027 -> 0.0009s
4028-- execute("ALTER TABLE job_configs ADD CONSTRAINT fk_job_configs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
4029 -> 0.0007s
4030-- execute("ALTER TABLE build_configs ADD CONSTRAINT fk_build_configs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
4031 -> 0.0007s
4032-- execute("ALTER TABLE pull_requests ADD CONSTRAINT fk_pull_requests_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
4033 -> 0.0008s
4034-- execute("ALTER TABLE ssl_keys ADD CONSTRAINT fk_ssl_keys_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
4035 -> 0.0008s
4036-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) NOT VALID")
4037 -> 0.0008s
4038-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_pull_request_id FOREIGN KEY (pull_request_id) REFERENCES pull_requests(id) NOT VALID")
4039 -> 0.0007s
4040-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")
4041 -> 0.0007s
4042-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) NOT VALID")
4043 -> 0.0010s
4044-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_config_id FOREIGN KEY (config_id) REFERENCES request_configs(id) NOT VALID")
4045 -> 0.0008s
4046-- execute("ALTER TABLE stages ADD CONSTRAINT fk_stages_on_build_id FOREIGN KEY (build_id) REFERENCES builds(id) NOT VALID")
4047 -> 0.0008s
4048== 20181116800000 AddConstraintsToMultipleTables: migrated (0.0269s) ==========
4050== 20181116800001 ValidateConstraints: migrating ==============================
4051-- execute("ALTER TABLE repositories VALIDATE CONSTRAINT fk_repositories_on_current_build_id")
4052 -> 0.0022s
4053-- execute("ALTER TABLE repositories VALIDATE CONSTRAINT fk_repositories_on_last_build_id")
4054 -> 0.0010s
4055-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_repository_id")
4056 -> 0.0009s
4057-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_commit_id")
4058 -> 0.0011s
4059-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_request_id")
4060 -> 0.0012s
4061-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_pull_request_id")
4062 -> 0.0010s
4063-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_branch_id")
4064 -> 0.0014s
4065-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_tag_id")
4066 -> 0.0013s
4067-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_config_id")
4068 -> 0.0013s
4069-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_repository_id")
4070 -> 0.0018s
4071-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_commit_id")
4072 -> 0.0011s
4073-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_stage_id")
4074 -> 0.0013s
4075-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_config_id")
4076 -> 0.0011s
4077-- execute("ALTER TABLE branches VALIDATE CONSTRAINT fk_branches_on_repository_id")
4078 -> 0.0010s
4079-- execute("ALTER TABLE branches VALIDATE CONSTRAINT fk_branches_on_last_build_id")
4080 -> 0.0010s
4081-- execute("ALTER TABLE tags VALIDATE CONSTRAINT fk_tags_on_repository_id")
4082 -> 0.0009s
4083-- execute("ALTER TABLE tags VALIDATE CONSTRAINT fk_tags_on_last_build_id")
4084 -> 0.0010s
4085-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_commits_on_repository_id")
4086 -> 0.0010s
4087-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_commits_on_branch_id")
4088 -> 0.0008s
4089-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_commits_on_tag_id")
4090 -> 0.0008s
4091-- execute("ALTER TABLE crons VALIDATE CONSTRAINT fk_crons_on_branch_id")
4092 -> 0.0011s
4093-- execute("ALTER TABLE job_configs VALIDATE CONSTRAINT fk_job_configs_on_repository_id")
4094 -> 0.0007s
4095-- execute("ALTER TABLE build_configs VALIDATE CONSTRAINT fk_build_configs_on_repository_id")
4096 -> 0.0008s
4097-- execute("ALTER TABLE pull_requests VALIDATE CONSTRAINT fk_pull_requests_on_repository_id")
4098 -> 0.0009s
4099-- execute("ALTER TABLE ssl_keys VALIDATE CONSTRAINT fk_ssl_keys_on_repository_id")
4100 -> 0.0012s
4101-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_commit_id")
4102 -> 0.0009s
4103-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_pull_request_id")
4104 -> 0.0009s
4105-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_branch_id")
4106 -> 0.0009s
4107-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_tag_id")
4108 -> 0.0008s
4109-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_config_id")
4110 -> 0.0011s
4111-- execute("ALTER TABLE stages VALIDATE CONSTRAINT fk_stages_on_build_id")
4112 -> 0.0010s
4113== 20181116800001 ValidateConstraints: migrated (0.0346s) =====================
4115== 20181126080000 AddIndexesForForeignKeys: migrating =========================
4116-- index_exists?(:builds, :branch_id)
4117 -> 0.0118s
4118-- add_index(:builds, :branch_id, {:algorithm=>:concurrently})
4119 -> 0.0047s
4120-- index_exists?(:builds, :commit_id)
4121 -> 0.0110s
4122-- add_index(:builds, :commit_id, {:algorithm=>:concurrently})
4123 -> 0.0048s
4124-- index_exists?(:builds, :pull_request_id)
4125 -> 0.0118s
4126-- add_index(:builds, :pull_request_id, {:algorithm=>:concurrently})
4127 -> 0.0120s
4128-- index_exists?(:builds, :tag_id)
4129 -> 0.0117s
4130-- add_index(:builds, :tag_id, {:algorithm=>:concurrently})
4131 -> 0.0041s
4132-- index_exists?(:jobs, :commit_id)
4133 -> 0.0075s
4134-- add_index(:jobs, :commit_id, {:algorithm=>:concurrently})
4135 -> 0.0040s
4136-- index_exists?(:branches, :last_build_id)
4137 -> 0.0042s
4138-- add_index(:branches, :last_build_id, {:algorithm=>:concurrently})
4139 -> 0.0050s
4140-- index_exists?(:tags, :repository_id)
4141 -> 0.0039s
4142-- add_index(:tags, :repository_id, {:algorithm=>:concurrently})
4143 -> 0.0054s
4144-- index_exists?(:tags, :last_build_id)
4145 -> 0.0058s
4146-- add_index(:tags, :last_build_id, {:algorithm=>:concurrently})
4147 -> 0.0059s
4148-- index_exists?(:commits, :tag_id)
4149 -> 0.0060s
4150-- add_index(:commits, :tag_id, {:algorithm=>:concurrently})
4151 -> 0.0048s
4152-- index_exists?(:commits, :branch_id)
4153 -> 0.0081s
4154-- add_index(:commits, :branch_id, {:algorithm=>:concurrently})
4155 -> 0.0051s
4156-- index_exists?(:job_configs, :repository_id)
4157 -> 0.0028s
4158-- add_index(:job_configs, :repository_id, {:algorithm=>:concurrently})
4159 -> 0.0051s
4160-- index_exists?(:build_configs, :repository_id)
4161 -> 0.0024s
4162-- add_index(:build_configs, :repository_id, {:algorithm=>:concurrently})
4163 -> 0.0050s
4164-- index_exists?(:pull_requests, :repository_id)
4165 -> 0.0043s
4166-- add_index(:pull_requests, :repository_id, {:algorithm=>:concurrently})
4167 -> 0.0043s
4168-- index_exists?(:requests, :pull_request_id)
4169 -> 0.0064s
4170-- add_index(:requests, :pull_request_id, {:algorithm=>:concurrently})
4171 -> 0.0045s
4172-- index_exists?(:requests, :tag_id)
4173 -> 0.0054s
4174-- add_index(:requests, :tag_id, {:algorithm=>:concurrently})
4175 -> 0.0094s
4176-- index_exists?(:requests, :branch_id)
4177 -> 0.0156s
4178-- add_index(:requests, :branch_id, {:algorithm=>:concurrently})
4179 -> 0.0052s
4180-- index_exists?(:repositories, :current_build_id)
4181 -> 0.0121s
4182-- add_index(:repositories, :current_build_id, {:algorithm=>:concurrently})
4183 -> 0.0052s
4184-- index_exists?(:repositories, :last_build_id)
4185 -> 0.0133s
4186-- add_index(:repositories, :last_build_id, {:algorithm=>:concurrently})
4187 -> 0.0047s
4188-- index_exists?(:crons, :branch_id)
4189 -> 0.0032s
4190-- add_index(:crons, :branch_id, {:algorithm=>:concurrently})
4191 -> 0.0046s
4192== 20181126080000 AddIndexesForForeignKeys: migrated (0.2556s) ================
4194== 20181128120000 AddUniqueIndexToBranchesOnRepositoryIdAndName: migrating ====
4195-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_on_repository_id_and_name ON branches(repository_id, name)")
4196 -> 0.0044s
4197== 20181128120000 AddUniqueIndexToBranchesOnRepositoryIdAndName: migrated (0.0044s)
4199== 20181203075818 AddUniqueNameColumnToBranches: migrating ====================
4200-- add_column(:branches, :unique_name, :text)
4201 -> 0.0006s
4202== 20181203075818 AddUniqueNameColumnToBranches: migrated (0.0007s) ===========
4204== 20181203075819 AddSetUniqueNameTriggerToBranches: migrating ================
4205-- 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")
4206 -> 0.0008s
4207== 20181203075819 AddSetUniqueNameTriggerToBranches: migrated (0.0009s) =======
4209== 20181203080356 CreateIndexOnBranchesUniqueNameAndRepositoryId: migrating ===
4210-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_repository_id_unique_name ON branches(repository_id, unique_name) WHERE unique_name IS NOT NULL")
4211 -> 0.0036s
4212== 20181203080356 CreateIndexOnBranchesUniqueNameAndRepositoryId: migrated (0.0036s)
4214== 20181205152712 AddUniqueIndexToCronsOnBranchId: migrating ==================
4215-- execute("DROP INDEX CONCURRENTLY index_crons_on_branch_id")
4216 -> 0.0020s
4217-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_crons_on_branch_id ON crons(branch_id)")
4218 -> 0.0034s
4219== 20181205152712 AddUniqueIndexToCronsOnBranchId: migrated (0.0055s) =========
4221== 20190102000000 AddOrganizationPreferences: migrating =======================
4222-- change_table(:organizations)
4223 -> 0.0010s
4224== 20190102000000 AddOrganizationPreferences: migrated (0.0010s) ==============
4226== 20190102000001 ChangeOrganizationPreferencesDefault: migrating =============
4227-- change_column_default(:organizations, :preferences, {})
4228 -> 0.0022s
4229== 20190102000001 ChangeOrganizationPreferencesDefault: migrated (0.0022s) ====
4231== 20190109000000 CreateBetaMigrationRequestTable: migrating ==================
4232-- create_table(:beta_migration_requests, {:id=>:integer})
4233 -> 0.0049s
4234-- add_index(:beta_migration_requests, [:owner_type, :owner_id])
4235 -> 0.0020s
4236== 20190109000000 CreateBetaMigrationRequestTable: migrated (0.0070s) =========
4238== 20190118000000 AddBetaMigrationRequestColumnToOrganizations: migrating =====
4239-- add_column(:organizations, :beta_migration_request_id, :integer)
4240 -> 0.0007s
4241== 20190118000000 AddBetaMigrationRequestColumnToOrganizations: migrated (0.0008s)
4243== 20190204000000 MakeSubscriptionOwnerNotNullable: migrating =================
4244-- change_column_null(:subscriptions, :owner_type, false)
4245 -> 0.0006s
4246-- change_column_null(:subscriptions, :owner_id, false)
4247 -> 0.0003s
4248== 20190204000000 MakeSubscriptionOwnerNotNullable: migrated (0.0009s) ========
4250== 20190313000000 RequestRawConfigsCreate: migrating ==========================
4251-- create_table(:request_raw_configs, {:id=>:integer})
4252 -> 0.0049s
4253-- add_index(:request_raw_configs, [:repository_id, :key])
4254 -> 0.0020s
4255-- create_table(:request_raw_configurations, {:id=>:integer})
4256 -> 0.0048s
4257-- add_index(:request_raw_configurations, :request_id)
4258 -> 0.0018s
4259-- add_index(:request_raw_configurations, :request_raw_config_id)
4260 -> 0.0019s
4261== 20190313000000 RequestRawConfigsCreate: migrated (0.0156s) =================
4263== 20190329093854 CreateGatekeeperWorkers: migrating ==========================
4264-- create_table(:gatekeeper_workers)
4265 -> 0.0034s
4266-- execute("INSERT INTO gatekeeper_workers(id) SELECT generate_series(1,200) as id;")
4267 -> 0.0007s
4268== 20190329093854 CreateGatekeeperWorkers: migrated (0.0042s) =================
4270== 20190409133118 AddUniqueNumberColumnToBuilds: migrating ====================
4271-- add_column(:builds, :unique_number, :int)
4272 -> 0.0008s
4273== 20190409133118 AddUniqueNumberColumnToBuilds: migrated (0.0008s) ===========
4275== 20190409133320 AddSetUniqueNumberTriggerToBuilds: migrating ================
4276-- 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")
4277 -> 0.0009s
4278== 20190409133320 AddSetUniqueNumberTriggerToBuilds: migrated (0.0010s) =======
4280== 20190409133444 CreateUniqueIndexOnRepositoryIdAndNumberOnBuilds: migrating =
4281-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_builds_repository_id_unique_number ON builds(repository_id, unique_number) WHERE unique_number IS NOT NULL")
4282 -> 0.0035s
4283== 20190409133444 CreateUniqueIndexOnRepositoryIdAndNumberOnBuilds: migrated (0.0035s)
4285== 20190410121039 MakeSetUniqueNumberTriggerRunOnlyOnInsert: migrating ========
4286-- 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")
4287 -> 0.0009s
4288== 20190410121039 MakeSetUniqueNumberTriggerRunOnlyOnInsert: migrated (0.0009s)
4290== 20190416071629 RemoveUniqueNameFromBranches: migrating =====================
4291-- execute("drop index concurrently index_branches_repository_id_unique_name;")
4292 -> 0.0020s
4293-- execute("DROP TRIGGER IF EXISTS set_unique_name_on_branches ON branches;\nDROP FUNCTION IF EXISTS set_unique_name();\n\n")
4294 -> 0.0008s
4295-- remove_column(:branches, :unique_name)
4296 -> 0.0008s
4297== 20190416071629 RemoveUniqueNameFromBranches: migrated (0.0038s) ============
4299== 20190417072423 AlterBuildsUniqueNumberIndex: migrating =====================
4300-- 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")
4301 -> 0.0037s
4302-- execute("DROP INDEX CONCURRENTLY index_builds_repository_id_unique_number")
4303 -> 0.0018s
4304-- execute("ALTER INDEX index_builds_repository_id_unique_number_new RENAME TO index_builds_repository_id_unique_number")
4305 -> 0.0007s
4306== 20190417072423 AlterBuildsUniqueNumberIndex: migrated (0.0064s) ============
4308== 20190417072838 ReinstallSetUniqueNumberTrigger: migrating ==================
4309-- execute("DROP TRIGGER IF EXISTS set_unique_number_on_builds ON builds;\nDROP FUNCTION IF EXISTS set_unique_number();\n")
4310 -> 0.0087s
4311-- 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")
4312 -> 0.0020s
4313== 20190417072838 ReinstallSetUniqueNumberTrigger: migrated (0.0154s) =========
4315== 20190502175059 AddMergeableStateToPullRequests: migrating ==================
4316-- add_column(:pull_requests, :mergeable_state, :string)
4317 -> 0.0028s
4318== 20190502175059 AddMergeableStateToPullRequests: migrated (0.0029s) =========
4320== 20190510121000 AddReposIndexOnLowerOwnerNameAndName: migrating =============
4321-- 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")
4322 -> 0.0044s
4323== 20190510121000 AddReposIndexOnLowerOwnerNameAndName: migrated (0.0047s) ====
4325== 20190605121000 AddHistoryMigrationStatusToRepositories: migrating ==========
4326-- add_column(:repositories, :history_migration_status, :string)
4327 -> 0.0028s
4328== 20190605121000 AddHistoryMigrationStatusToRepositories: migrated (0.0029s) =
4330== 20190605155459 AddPullRequestMergeableToRequests: migrating ================
4331-- add_column(:requests, :pull_request_mergeable, :string)
4332 -> 0.0027s
4333== 20190605155459 AddPullRequestMergeableToRequests: migrated (0.0029s) =======
4335== 20190613120000 SoftDeleteRepositoryAlongWithItsData: migrating =============
4336-- execute("create table if not exists deleted_builds (like builds)")
4337 -> 0.0040s
4338-- execute("create table if not exists deleted_stages (like stages)")
4339 -> 0.0028s
4340-- execute("create table if not exists deleted_jobs (like jobs)")
4341 -> 0.0044s
4342-- execute("create table if not exists deleted_requests (like requests)")
4343 -> 0.0046s
4344-- execute("create table if not exists deleted_commits (like commits)")
4345 -> 0.0035s
4346-- execute("create table if not exists deleted_pull_requests (like pull_requests)")
4347 -> 0.0032s
4348-- execute("create table if not exists deleted_job_configs (like job_configs)")
4349 -> 0.0029s
4350-- execute("create table if not exists deleted_build_configs (like build_configs)")
4351 -> 0.0030s
4352-- execute("create table if not exists deleted_request_configs (like request_configs)")
4353 -> 0.0032s
4354-- execute("create table if not exists deleted_request_payloads (like request_payloads)")
4355 -> 0.0028s
4356-- execute("create table if not exists deleted_ssl_keys (like ssl_keys)")
4357 -> 0.0032s
4358-- execute("create table if not exists deleted_tags (like tags)")
4359 -> 0.0070s
4360-- 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")
4361 -> 0.0027s
4362== 20190613120000 SoftDeleteRepositoryAlongWithItsData: migrated (0.0493s) ====
4364== 20190618082559 AddVcsTypeToUser: migrating =================================
4365-- add_column(:users, :vcs_type, :string, {:default=>nil})
4366 -> 0.0012s
4367-- execute("ALTER TABLE users ALTER COLUMN vcs_type SET DEFAULT 'GithubUser'")
4368 -> 0.0004s
4369-- select_value("SELECT id FROM users ORDER BY id DESC LIMIT 1")
4370 -> 0.0007s
4371-- execute("UPDATE users SET vcs_type = 'GithubUser' WHERE id BETWEEN 0 AND 5000")
4372 -> 0.0053s
4373== 20190618082559 AddVcsTypeToUser: migrated (0.0114s) ========================
4375== 20190701082559 AddVcsTypeToRepository: migrating ===========================
4376-- add_column(:repositories, :vcs_type, :string, {:default=>nil})
4377 -> 0.0019s
4378-- execute("ALTER TABLE repositories ALTER COLUMN vcs_type SET DEFAULT 'GithubRepository'")
4379 -> 0.0011s
4380-- select_value("SELECT id FROM repositories ORDER BY id DESC LIMIT 1")
4381 -> 0.0011s
4382-- execute("UPDATE repositories SET vcs_type = 'GithubRepository' WHERE id BETWEEN 0 AND 5000")
4383 -> 0.0018s
4384== 20190701082559 AddVcsTypeToRepository: migrated (0.0099s) ==================
4386== 20190704082559 AddVcsTypeToOrganization: migrating =========================
4387-- add_column(:organizations, :vcs_type, :string, {:default=>nil})
4388 -> 0.0033s
4389-- execute("ALTER TABLE organizations ALTER COLUMN vcs_type SET DEFAULT 'GithubOrganization'")
4390 -> 0.0008s
4391-- select_value("SELECT id FROM organizations ORDER BY id DESC LIMIT 1")
4392 -> 0.0012s
4393-- execute("UPDATE organizations SET vcs_type = 'GithubOrganization' WHERE id BETWEEN 0 AND 5000")
4394 -> 0.0009s
4395== 20190704082559 AddVcsTypeToOrganization: migrated (0.0088s) ================
4397== 20190718092750 AddDeleteCascadeToForeignKeys: migrating ====================
4398-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4399 -> 0.0023s
4400-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) ON DELETE CASCADE NOT VALID")
4401 -> 0.0012s
4402-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_request_id FOREIGN KEY (request_id) REFERENCES requests(id) ON DELETE CASCADE NOT VALID")
4403 -> 0.0012s
4404-- 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")
4405 -> 0.0011s
4406-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")
4407 -> 0.0011s
4408-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE NOT VALID")
4409 -> 0.0012s
4410-- 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")
4411 -> 0.0011s
4412-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_new_jobs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4413 -> 0.0012s
4414-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_new_jobs_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) ON DELETE CASCADE NOT VALID")
4415 -> 0.0011s
4416-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_new_jobs_on_stage_id FOREIGN KEY (stage_id) REFERENCES stages(id) ON DELETE CASCADE NOT VALID")
4417 -> 0.0009s
4418-- 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")
4419 -> 0.0006s
4420-- execute("ALTER TABLE branches ADD CONSTRAINT fk_new_branches_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4421 -> 0.0015s
4422-- execute("ALTER TABLE tags ADD CONSTRAINT fk_new_tags_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4423 -> 0.0010s
4424-- execute("ALTER TABLE commits ADD CONSTRAINT fk_new_commits_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4425 -> 0.0011s
4426-- execute("ALTER TABLE commits ADD CONSTRAINT fk_new_commits_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")
4427 -> 0.0010s
4428-- execute("ALTER TABLE commits ADD CONSTRAINT fk_new_commits_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE NOT VALID")
4429 -> 0.0011s
4430-- execute("ALTER TABLE crons ADD CONSTRAINT fk_new_crons_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")
4431 -> 0.0011s
4432-- 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")
4433 -> 0.0009s
4434-- 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")
4435 -> 0.0007s
4436-- 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")
4437 -> 0.0007s
4438-- 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")
4439 -> 0.0007s
4440-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) ON DELETE CASCADE NOT VALID")
4441 -> 0.0007s
4442-- 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")
4443 -> 0.0006s
4444-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")
4445 -> 0.0007s
4446-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE NOT VALID")
4447 -> 0.0007s
4448-- 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")
4449 -> 0.0006s
4450-- execute("ALTER TABLE stages ADD CONSTRAINT fk_new_stages_on_build_id FOREIGN KEY (build_id) REFERENCES builds(id) ON DELETE CASCADE NOT VALID")
4451 -> 0.0007s
4452-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_repository_id")
4453 -> 0.0011s
4454-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_commit_id")
4455 -> 0.0009s
4456-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_request_id")
4457 -> 0.0009s
4458-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_pull_request_id")
4459 -> 0.0008s
4460-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_branch_id")
4461 -> 0.0008s
4462-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_tag_id")
4463 -> 0.0010s
4464-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_config_id")
4465 -> 0.0008s
4466-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_repository_id")
4467 -> 0.0037s
4468-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_commit_id")
4469 -> 0.0021s
4470-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_stage_id")
4471 -> 0.0010s
4472-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_config_id")
4473 -> 0.0010s
4474-- execute("ALTER TABLE branches VALIDATE CONSTRAINT fk_new_branches_on_repository_id")
4475 -> 0.0012s
4476-- execute("ALTER TABLE tags VALIDATE CONSTRAINT fk_new_tags_on_repository_id")
4477 -> 0.0012s
4478-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_new_commits_on_repository_id")
4479 -> 0.0011s
4480-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_new_commits_on_branch_id")
4481 -> 0.0006s
4482-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_new_commits_on_tag_id")
4483 -> 0.0005s
4484-- execute("ALTER TABLE crons VALIDATE CONSTRAINT fk_new_crons_on_branch_id")
4485 -> 0.0018s
4486-- execute("ALTER TABLE job_configs VALIDATE CONSTRAINT fk_new_job_configs_on_repository_id")
4487 -> 0.0011s
4488-- execute("ALTER TABLE build_configs VALIDATE CONSTRAINT fk_new_build_configs_on_repository_id")
4489 -> 0.0012s
4490-- execute("ALTER TABLE pull_requests VALIDATE CONSTRAINT fk_new_pull_requests_on_repository_id")
4491 -> 0.0013s
4492-- execute("ALTER TABLE ssl_keys VALIDATE CONSTRAINT fk_new_ssl_keys_on_repository_id")
4493 -> 0.0012s
4494-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_commit_id")
4495 -> 0.0011s
4496-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_pull_request_id")
4497 -> 0.0012s
4498-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_branch_id")
4499 -> 0.0013s
4500-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_tag_id")
4501 -> 0.0011s
4502-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_config_id")
4503 -> 0.0008s
4504-- execute("ALTER TABLE stages VALIDATE CONSTRAINT fk_new_stages_on_build_id")
4505 -> 0.0007s
4506-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_repository_id")
4507 -> 0.0020s
4508-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_commit_id")
4509 -> 0.0011s
4510-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_request_id")
4511 -> 0.0011s
4512-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_pull_request_id")
4513 -> 0.0012s
4514-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_branch_id")
4515 -> 0.0011s
4516-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_tag_id")
4517 -> 0.0011s
4518-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_config_id")
4519 -> 0.0010s
4520-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_repository_id")
4521 -> 0.0010s
4522-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_commit_id")
4523 -> 0.0011s
4524-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_stage_id")
4525 -> 0.0008s
4526-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_config_id")
4527 -> 0.0005s
4528-- execute("ALTER TABLE branches DROP CONSTRAINT fk_branches_on_repository_id")
4529 -> 0.0014s
4530-- execute("ALTER TABLE tags DROP CONSTRAINT fk_tags_on_repository_id")
4531 -> 0.0011s
4532-- execute("ALTER TABLE commits DROP CONSTRAINT fk_commits_on_repository_id")
4533 -> 0.0010s
4534-- execute("ALTER TABLE commits DROP CONSTRAINT fk_commits_on_branch_id")
4535 -> 0.0008s
4536-- execute("ALTER TABLE commits DROP CONSTRAINT fk_commits_on_tag_id")
4537 -> 0.0013s
4538-- execute("ALTER TABLE crons DROP CONSTRAINT fk_crons_on_branch_id")
4539 -> 0.0012s
4540-- execute("ALTER TABLE job_configs DROP CONSTRAINT fk_job_configs_on_repository_id")
4541 -> 0.0011s
4542-- execute("ALTER TABLE build_configs DROP CONSTRAINT fk_build_configs_on_repository_id")
4543 -> 0.0010s
4544-- execute("ALTER TABLE pull_requests DROP CONSTRAINT fk_pull_requests_on_repository_id")
4545 -> 0.0010s
4546-- execute("ALTER TABLE ssl_keys DROP CONSTRAINT fk_ssl_keys_on_repository_id")
4547 -> 0.0012s
4548-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_commit_id")
4549 -> 0.0006s
4550-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_pull_request_id")
4551 -> 0.0005s
4552-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_branch_id")
4553 -> 0.0011s
4554-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_tag_id")
4555 -> 0.0010s
4556-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_config_id")
4557 -> 0.0009s
4558-- execute("ALTER TABLE stages DROP CONSTRAINT fk_stages_on_build_id")
4559 -> 0.0012s
4560-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_repository_id TO fk_builds_on_repository_id")
4561 -> 0.0010s
4562-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_commit_id TO fk_builds_on_commit_id")
4563 -> 0.0009s
4564-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_request_id TO fk_builds_on_request_id")
4565 -> 0.0011s
4566-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_pull_request_id TO fk_builds_on_pull_request_id")
4567 -> 0.0009s
4568-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_branch_id TO fk_builds_on_branch_id")
4569 -> 0.0008s
4570-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_tag_id TO fk_builds_on_tag_id")
4571 -> 0.0004s
4572-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_config_id TO fk_builds_on_config_id")
4573 -> 0.0012s
4574-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_repository_id TO fk_jobs_on_repository_id")
4575 -> 0.0011s
4576-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_commit_id TO fk_jobs_on_commit_id")
4577 -> 0.0009s
4578-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_stage_id TO fk_jobs_on_stage_id")
4579 -> 0.0005s
4580-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_config_id TO fk_jobs_on_config_id")
4581 -> 0.0010s
4582-- execute("ALTER TABLE branches RENAME CONSTRAINT fk_new_branches_on_repository_id TO fk_branches_on_repository_id")
4583 -> 0.0009s
4584-- execute("ALTER TABLE tags RENAME CONSTRAINT fk_new_tags_on_repository_id TO fk_tags_on_repository_id")
4585 -> 0.0009s
4586-- execute("ALTER TABLE commits RENAME CONSTRAINT fk_new_commits_on_repository_id TO fk_commits_on_repository_id")
4587 -> 0.0008s
4588-- execute("ALTER TABLE commits RENAME CONSTRAINT fk_new_commits_on_branch_id TO fk_commits_on_branch_id")
4589 -> 0.0009s
4590-- execute("ALTER TABLE commits RENAME CONSTRAINT fk_new_commits_on_tag_id TO fk_commits_on_tag_id")
4591 -> 0.0009s
4592-- execute("ALTER TABLE crons RENAME CONSTRAINT fk_new_crons_on_branch_id TO fk_crons_on_branch_id")
4593 -> 0.0003s
4594-- execute("ALTER TABLE job_configs RENAME CONSTRAINT fk_new_job_configs_on_repository_id TO fk_job_configs_on_repository_id")
4595 -> 0.0011s
4596-- execute("ALTER TABLE build_configs RENAME CONSTRAINT fk_new_build_configs_on_repository_id TO fk_build_configs_on_repository_id")
4597 -> 0.0009s
4598-- execute("ALTER TABLE pull_requests RENAME CONSTRAINT fk_new_pull_requests_on_repository_id TO fk_pull_requests_on_repository_id")
4599 -> 0.0009s
4600-- execute("ALTER TABLE ssl_keys RENAME CONSTRAINT fk_new_ssl_keys_on_repository_id TO fk_ssl_keys_on_repository_id")
4601 -> 0.0006s
4602-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_commit_id TO fk_requests_on_commit_id")
4603 -> 0.0010s
4604-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_pull_request_id TO fk_requests_on_pull_request_id")
4605 -> 0.0009s
4606-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_branch_id TO fk_requests_on_branch_id")
4607 -> 0.0008s
4608-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_tag_id TO fk_requests_on_tag_id")
4609 -> 0.0008s
4610-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_config_id TO fk_requests_on_config_id")
4611 -> 0.0009s
4612-- execute("ALTER TABLE stages RENAME CONSTRAINT fk_new_stages_on_build_id TO fk_stages_on_build_id")
4613 -> 0.0008s
4614== 20190718092750 AddDeleteCascadeToForeignKeys: migrated (0.1216s) ===========
4616== 20190718100426 UpdateSoftDeleteProcedure: migrating ========================
4617-- 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")
4618 -> 0.0046s
4619== 20190718100426 UpdateSoftDeleteProcedure: migrated (0.0057s) ===============
4621== 20190725103113 UpdateSoftDelete: migrating =================================
4622-- execute("create table deleted_request_yaml_configs (like request_yaml_configs)")
4623 -> 0.0043s
4624-- 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")
4625 -> 0.0028s
4626== 20190725103113 UpdateSoftDelete: migrated (0.0076s) ========================
4628== 20190725105934 AddOrgIdToConfigs: migrating ================================
4629-- add_column(:job_configs, :org_id, :bigint)
4630 -> 0.0021s
4631-- add_column(:deleted_job_configs, :org_id, :bigint)
4632 -> 0.0019s
4633-- add_column(:build_configs, :org_id, :bigint)
4634 -> 0.0017s
4635-- add_column(:deleted_build_configs, :org_id, :bigint)
4636 -> 0.0012s
4637-- add_column(:request_configs, :org_id, :bigint)
4638 -> 0.0017s
4639-- add_column(:deleted_request_configs, :org_id, :bigint)
4640 -> 0.0016s
4641-- add_column(:request_yaml_configs, :org_id, :bigint)
4642 -> 0.0014s
4643-- add_column(:deleted_request_yaml_configs, :org_id, :bigint)
4644 -> 0.0015s
4645-- add_column(:request_payloads, :org_id, :bigint)
4646 -> 0.0013s
4647-- add_column(:deleted_request_payloads, :org_id, :bigint)
4648 -> 0.0016s
4649-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_job_configs_on_org_id ON job_configs (org_id)")
4650 -> 0.0035s
4651-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_build_configs_on_org_id ON build_configs (org_id)")
4652 -> 0.0032s
4653-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_configs_on_org_id ON request_configs (org_id)")
4654 -> 0.0034s
4655-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_yaml_configs_on_org_id ON request_yaml_configs (org_id)")
4656 -> 0.0033s
4657-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_payloads_on_org_id ON request_payloads (org_id)")
4658 -> 0.0033s
4659== 20190725105934 AddOrgIdToConfigs: migrated (0.0345s) =======================
4661== 20190729105934 AddOrgAndComIdsToRawConfigs: migrating ======================
4662-- add_column(:request_raw_configs, :org_id, :bigint)
4663 -> 0.0013s
4664-- add_column(:request_raw_configurations, :org_id, :bigint)
4665 -> 0.0010s
4666-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_raw_configs_on_org_id ON request_raw_configs (org_id)")
4667 -> 0.0035s
4668-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_raw_configurations_on_org_id ON request_raw_configurations (org_id)")
4669 -> 0.0035s
4670== 20190729105934 AddOrgAndComIdsToRawConfigs: migrated (0.0095s) =============
4672== 20190801120510 AddMoreDeletedTables: migrating =============================
4673-- execute("create table if not exists deleted_request_raw_configs (like request_raw_configs)")
4674 -> 0.0033s
4675-- execute("create table if not exists deleted_request_raw_configurations (like request_raw_configurations)")
4676 -> 0.0022s
4677-- 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")
4678 -> 0.0017s
4679== 20190801120510 AddMoreDeletedTables: migrated (0.0078s) ====================
4681== 20190815152336 AddComIdToMoreTables: migrating =============================
4682-- add_column(:request_configs, :com_id, :bigint)
4683 -> 0.0015s
4684-- add_column(:request_yaml_configs, :com_id, :bigint)
4685 -> 0.0012s
4686-- add_column(:deleted_request_configs, :com_id, :bigint)
4687 -> 0.0013s
4688-- add_column(:deleted_request_yaml_configs, :com_id, :bigint)
4689 -> 0.0015s
4690-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_configs_on_com_id ON request_configs (com_id)")
4691 -> 0.0036s
4692-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_yaml_configs_on_com_id ON request_yaml_configs (com_id)")
4693 -> 0.0035s
4694== 20190815152336 AddComIdToMoreTables: migrated (0.0132s) ====================
4696== 20190815164320 AddComIdToBuildConfigs: migrating ===========================
4697-- add_column(:build_configs, :com_id, :bigint)
4698 -> 0.0016s
4699-- add_column(:deleted_build_configs, :com_id, :bigint)
4700 -> 0.0013s
4701-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_build_configs_on_com_id ON build_configs (com_id)")
4702 -> 0.0036s
4703== 20190815164320 AddComIdToBuildConfigs: migrated (0.0067s) ==================
4705== 20190815172205 AddComIdToJobConfigs: migrating =============================
4706-- add_column(:job_configs, :com_id, :bigint)
4707 -> 0.0012s
4708-- add_column(:deleted_job_configs, :com_id, :bigint)
4709 -> 0.0011s
4710-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_job_configs_on_com_id ON job_configs (com_id)")
4711 -> 0.0036s
4712== 20190815172205 AddComIdToJobConfigs: migrated (0.0061s) ====================
4714== 20190819082558 AddVcsIdToUser: migrating ===================================
4715-- add_column(:users, :vcs_id, :string, {:default=>nil})
4716 -> 0.0016s
4717-- execute("CREATE INDEX CONCURRENTLY index_users_on_vcs_id_and_vcs_type ON users (vcs_id, vcs_type);")
4718 -> 0.0040s
4719== 20190819082558 AddVcsIdToUser: migrated (0.0057s) ==========================
4721== 20190819082559 AddVcsIdToRepository: migrating =============================
4722-- add_column(:repositories, :vcs_id, :string, {:default=>nil})
4723 -> 0.0016s
4724-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_vcs_id_and_vcs_type ON repositories (vcs_id, vcs_type);")
4725 -> 0.0037s
4726== 20190819082559 AddVcsIdToRepository: migrated (0.0054s) ====================
4728== 20190820082431 AddVcsIdToOrganization: migrating ===========================
4729-- add_column(:organizations, :vcs_id, :string, {:default=>nil})
4730 -> 0.0016s
4731-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_vcs_id_and_vcs_type ON organizations (vcs_id, vcs_type);")
4732 -> 0.0034s
4733== 20190820082431 AddVcsIdToOrganization: migrated (0.0051s) ==================
4735== 20190913092543 CopyVcsIdForRepository: migrating ===========================
4736-- select_value("SELECT id FROM repositories ORDER BY id DESC LIMIT 1")
4737 -> 0.0006s
4738-- execute("UPDATE \"repositories\" SET vcs_id = github_id WHERE id BETWEEN 0 AND 5000")
4739 -> 0.0006s
4740== 20190913092543 CopyVcsIdForRepository: migrated (0.0015s) ==================
4742== 20190913092554 CopyVcsIdForUser: migrating =================================
4743-- select_value("SELECT id FROM users ORDER BY id DESC LIMIT 1")
4744 -> 0.0012s
4745-- execute("UPDATE \"users\" SET vcs_id = github_id WHERE id BETWEEN 0 AND 5000")
4746 -> 0.0010s
4747== 20190913092554 CopyVcsIdForUser: migrated (0.0028s) ========================
4749== 20190913092565 CopyVcsIdForOrganization: migrating =========================
4750-- select_value("SELECT id FROM organizations ORDER BY id DESC LIMIT 1")
4751 -> 0.0010s
4752-- execute("UPDATE \"organizations\" SET vcs_id = github_id WHERE id BETWEEN 0 AND 5000")
4753 -> 0.0051s
4754== 20190913092565 CopyVcsIdForOrganization: migrated (0.0064s) ================
4756== 20190920160300 MessagesAddTypeSourceLine: migrating ========================
4757-- add_column(:messages, :type, :string, {:default=>nil})
4758 -> 0.0011s
4759-- add_column(:messages, :src, :string, {:default=>nil})
4760 -> 0.0010s
4761-- add_column(:messages, :line, :integer, {:default=>nil})
4762 -> 0.0010s
4763== 20190920160300 MessagesAddTypeSourceLine: migrated (0.0032s) ===============
4765== 20191112000000 ReposAddFork: migrating =====================================
4766-- add_column(:repositories, :fork, :boolean, {:default=>nil})
4767 -> 0.0022s
4768== 20191112000000 ReposAddFork: migrated (0.0022s) ============================
4770== 20191112172015 AddVcsIndexToRepositories: migrating ========================
4771-- add_index(:repositories, [:vcs_type, :vcs_id], {:algorithm=>:concurrently})
4772 -> 0.0039s
4773== 20191112172015 AddVcsIndexToRepositories: migrated (0.0040s) ===============
4775== 20191112172332 AddVcsIndexToUsers: migrating ===============================
4776-- add_index(:users, [:vcs_type, :vcs_id], {:algorithm=>:concurrently})
4777 -> 0.0035s
4778== 20191112172332 AddVcsIndexToUsers: migrated (0.0036s) ======================
4780== 20191219091445 AddHeadRepoVcsIdToPullRequest: migrating ====================
4781-- add_column(:pull_requests, :head_repo_vcs_id, :string, {:default=>nil})
4782 -> 0.0016s
4783-- execute("CREATE INDEX CONCURRENTLY index_pull_requests_on_head_repo_vcs_id ON pull_requests (head_repo_vcs_id);")
4784 -> 0.0038s
4785== 20191219091445 AddHeadRepoVcsIdToPullRequest: migrated (0.0055s) ===========
4787== 20191219091446 AddHeadRepoVcsIdToDeletedPullRequest: migrating =============
4788-- add_column(:deleted_pull_requests, :head_repo_vcs_id, :string, {:default=>nil})
4789 -> 0.0015s
4790-- execute("CREATE INDEX CONCURRENTLY index_deleted_pull_requests_on_head_repo_vcs_id ON deleted_pull_requests (head_repo_vcs_id);")
4791 -> 0.0033s
4792== 20191219091446 AddHeadRepoVcsIdToDeletedPullRequest: migrated (0.0050s) ====
4794== 20200122000000 AddConfigsJson: migrating ===================================
4795-- add_column(:request_configs, :config_json, :json)
4796 -> 0.0010s
4797-- add_column(:build_configs, :config_json, :json)
4798 -> 0.0006s
4799-- add_column(:job_configs, :config_json, :json)
4800 -> 0.0005s
4801-- add_column(:deleted_request_configs, :config_json, :json)
4802 -> 0.0006s
4803-- add_column(:deleted_build_configs, :config_json, :json)
4804 -> 0.0011s
4805-- add_column(:deleted_job_configs, :config_json, :json)
4806 -> 0.0006s
4807== 20200122000000 AddConfigsJson: migrated (0.0048s) ==========================
4809== 20200127000000 DropJobConfigsGpu: migrating ================================
4810-- execute("DROP MATERIALIZED VIEW job_configs_gpu\n")
4811 -> 0.0010s
4812== 20200127000000 DropJobConfigsGpu: migrated (0.0011s) =======================
4814== 20200127000001 RenameConfigsJson: migrating ================================
4815-- remove_column(:request_configs, :config)
4816 -> 0.0009s
4817-- rename_column(:request_configs, :config_json, :config)
4818 -> 0.0038s
4819-- remove_column(:build_configs, :config)
4820 -> 0.0006s
4821-- rename_column(:build_configs, :config_json, :config)
4822 -> 0.0036s
4823-- remove_column(:job_configs, :config)
4824 -> 0.0007s
4825-- rename_column(:job_configs, :config_json, :config)
4826 -> 0.0035s
4827-- remove_column(:deleted_request_configs, :config)
4828 -> 0.0005s
4829-- rename_column(:deleted_request_configs, :config_json, :config)
4830 -> 0.0013s
4831-- remove_column(:deleted_build_configs, :config)
4832 -> 0.0005s
4833-- rename_column(:deleted_build_configs, :config_json, :config)
4834 -> 0.0014s
4835-- remove_column(:deleted_job_configs, :config)
4836 -> 0.0005s
4837-- rename_column(:deleted_job_configs, :config_json, :config)
4838 -> 0.0013s
4839== 20200127000001 RenameConfigsJson: migrated (0.0195s) =======================
4841== 20200214144655 AddIndexToJobVersionsOnJobId: migrating =====================
4842-- add_index(:job_versions, :job_id, {:algorithm=>:concurrently})
4843 -> 0.0041s
4844== 20200214144655 AddIndexToJobVersionsOnJobId: migrated (0.0041s) ============
4846== 20200225085734 AddVcsSlugToRepository: migrating ===========================
4847-- add_column(:repositories, :vcs_slug, :string, {:default=>nil})
4848 -> 0.0012s
4849== 20200225085734 AddVcsSlugToRepository: migrated (0.0013s) ==================
4851== 20200227085734 AddVcsSourceHostToRepository: migrating =====================
4852-- add_column(:repositories, :vcs_source_host, :string, {:default=>nil})
4853 -> 0.0011s
4854== 20200227085734 AddVcsSourceHostToRepository: migrated (0.0012s) ============
4856== 20200227085736 AddVcsIndexes: migrating ====================================
4857-- 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")
4858 -> 0.0033s
4859== 20200227085736 AddVcsIndexes: migrated (0.0034s) ===========================
4861== 20200227085737 AddRepositoryNameAndSlugIndex: migrating ====================
4862-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_slug_or_names ON repositories (vcs_slug, owner_name, name) WHERE invalidated_at IS NULL")
4863 -> 0.0037s
4864== 20200227085737 AddRepositoryNameAndSlugIndex: migrated (0.0038s) ===========
4866== 20200227085742 AddPullRequestSourceData: migrating =========================
4867-- add_column(:pull_requests, :base_repo_slug, :string, {:default=>nil})
4868 -> 0.0012s
4869-- add_column(:pull_requests, :base_repo_vcs_id, :string, {:default=>nil})
4870 -> 0.0011s
4871-- add_column(:pull_requests, :base_ref, :string, {:default=>nil})
4872 -> 0.0012s
4873-- add_column(:deleted_pull_requests, :base_repo_slug, :string, {:default=>nil})
4874 -> 0.0011s
4875-- add_column(:deleted_pull_requests, :base_repo_vcs_id, :string, {:default=>nil})
4876 -> 0.0016s
4877-- add_column(:deleted_pull_requests, :base_ref, :string, {:default=>nil})
4878 -> 0.0012s
4879== 20200227085742 AddPullRequestSourceData: migrated (0.0076s) ================
4881== 20200312184018 AddUserUtmParamsTable: migrating ============================
4882-- create_table(:user_utm_params)
4883 -> 0.0080s
4884== 20200312184018 AddUserUtmParamsTable: migrated (0.0081s) ===================
4886== 20200316085738 AddRepositoryVcsSlugIndex: migrating ========================
4887-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_vcs_slug ON repositories (LOWER(vcs_slug))")
4888 -> 0.0037s
4889-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_vcs_slug_valid ON repositories (LOWER(vcs_slug)) WHERE invalidated_at IS NULL")
4890 -> 0.0036s
4891== 20200316085738 AddRepositoryVcsSlugIndex: migrated (0.0075s) ===============
4893== 20200325115329 AddMultipleJobStateIndexesOrderByNewest: migrating ==========
4894-- 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'")
4895 -> 0.0037s
4896-- 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'")
4897 -> 0.0038s
4898-- 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'")
4899 -> 0.0038s
4900-- 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'")
4901 -> 0.0039s
4902-- 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'")
4903 -> 0.0043s
4904-- 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'")
4905 -> 0.0043s
4906-- 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'")
4907 -> 0.0040s
4908-- 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'")
4909 -> 0.0038s
4910-- 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'")
4911 -> 0.0039s
4912== 20200325115329 AddMultipleJobStateIndexesOrderByNewest: migrated (0.0360s) =
4914== 20200325130013 AddFunctionMostRecentJobIdsForUserRepositoriesByStates: migrating
4915-- 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 ")
4916 -> 0.0013s
4917== 20200325130013 AddFunctionMostRecentJobIdsForUserRepositoriesByStates: migrated (0.0013s)
4919== 20200330110527 AddFunctionMostRecentJobIdsForRepositoryByState: migrating ==
4920-- 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 ")
4921 -> 0.0010s
4922== 20200330110527 AddFunctionMostRecentJobIdsForRepositoryByState: migrated (0.0010s)
4924== 20200406121218 AddIndexJobsOnRepositoryIdOrderByNewest: migrating ==========
4925-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc)")
4926 -> 0.0043s
4927== 20200406121218 AddIndexJobsOnRepositoryIdOrderByNewest: migrated (0.0044s) =
4929== 20200424000000 RequestRawConfigurationsAddMergeMode: migrating =============
4930-- add_column(:request_raw_configurations, :merge_mode, :string, {:default=>nil})
4931 -> 0.0014s
4932-- add_column(:deleted_request_raw_configurations, :merge_mode, :string, {:default=>nil})
4933 -> 0.0013s
4934== 20200424000000 RequestRawConfigurationsAddMergeMode: migrated (0.0028s) ====
4936== 20200527123653 AddColumnPriorityToTableJobsAndDeletedJobs: migrating =======
4937-- add_column(:jobs, :priority, :integer, {:default=>nil})
4938 -> 0.0059s
4939-- add_column(:deleted_jobs, :priority, :integer, {:default=>nil})
4940 -> 0.0014s
4941== 20200527123653 AddColumnPriorityToTableJobsAndDeletedJobs: migrated (0.0073s)
4943== 20200928143126 AddBuildTriggerPermissions: migrating =======================
4944-- add_column(:memberships, :build_permission, :boolean, {:default=>nil})
4945 -> 0.0024s
4946-- add_column(:permissions, :build, :boolean, {:default=>nil})
4947 -> 0.0014s
4948== 20200928143126 AddBuildTriggerPermissions: migrated (0.0038s) ==============
4950== 20202427123653 AddColumnHasLocalRegistrationToTableSubscriptions: migrating
4951-- add_column(:subscriptions, :has_local_registration, :boolean, {:default=>nil})
4952 -> 0.0035s
4953== 20202427123653 AddColumnHasLocalRegistrationToTableSubscriptions: migrated (0.0036s)
4955== 20210203130200 CreateBuildBackupsTable: migrating ==========================
4956-- create_table(:build_backups, {:id=>:integer})
4957 -> 0.0061s
4958== 20210203130200 CreateBuildBackupsTable: migrated (0.0062s) =================
4960== 20210203143155 AddConfirmationFieldsToUser: migrating ======================
4961-- add_column(:users, :confirmed_at, :timestamp, {:precision=>nil})
4962 -> 0.0012s
4963-- add_column(:users, :token_expires_at, :timestamp, {:precision=>nil})
4964 -> 0.0010s
4965-- add_column(:users, :confirmation_token, :string)
4966 -> 0.0009s
4967-- add_index(:users, :confirmation_token)
4968 -> 0.0027s
4969== 20210203143155 AddConfirmationFieldsToUser: migrated (0.0060s) =============
4971== 20210203143406 ConfirmCurrentUsers: migrating ==============================
4972== 20210203143406 ConfirmCurrentUsers: migrated (0.0000s) =====================
4974== 20210614140633 AddServerTypeToRepositories: migrating ======================
4975-- add_column(:repositories, :server_type, :string, {:limit=>20})
4976 -> 0.0022s
4977== 20210614140633 AddServerTypeToRepositories: migrated (0.0023s) =============
4979== 20220610092916 MostRecentJobIdsForUserRepositoriesByStatesLw: migrating ====
4980-- 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 ")
4981 -> 0.0023s
4982== 20220610092916 MostRecentJobIdsForUserRepositoriesByStatesLw: migrated (0.0023s)
4984== 20220621151453 AddColumnRestartedByToTableJobs: migrating ==================
4985-- add_column(:jobs, :restarted_by, :integer, {:default=>nil})
4986 -> 0.0019s
4987-- add_column(:deleted_jobs, :restarted_by, :integer, {:default=>nil})
4988 -> 0.0017s
4989== 20220621151453 AddColumnRestartedByToTableJobs: migrated (0.0037s) =========
4991== 20220722162400 CreateAuditsTable: migrating ================================
4992-- create_table(:audits)
4993 -> 0.0058s
4994== 20220722162400 CreateAuditsTable: migrated (0.0059s) =======================
4996== 20220825140522 CreateCustomKeysTable: migrating ============================
4997-- create_table(:custom_keys)
4998 -> 0.0076s
4999== 20220825140522 CreateCustomKeysTable: migrated (0.0076s) ===================
5001== 20220905144600 AddScanFailedAtToRepositories: migrating ====================
5002-- add_column(:repositories, :scan_failed_at, :timestamp)
5003 -> 0.0011s
5004== 20220905144600 AddScanFailedAtToRepositories: migrated (0.0011s) ===========
5006== 20221214171030 AddPurposeColumnToTokens: migrating =========================
5007-- add_column(:tokens, :purpose, :integer, {:limit=>4, :default=>0})
5008 -> 0.0017s
5009== 20221214171030 AddPurposeColumnToTokens: migrated (0.0017s) ================
5011== 20230208161446 AddCloneUrlToRepositories: migrating ========================
5012-- add_column(:repositories, :clone_url, :string)
5013 -> 0.0009s
5014== 20230208161446 AddCloneUrlToRepositories: migrated (0.0010s) ===============
5016== 20230505055250 RolifyCreateRoles: migrating ================================
5017-- create_table(:roles)
5018 -> 0.0085s
5019-- create_table(:role_names)
5020 -> 0.0055s
5021-- create_table(:users_roles, {:id=>false})
5022 -> 0.0048s
5023-- add_index(:roles, :name)
5024 -> 0.0019s
5025-- add_index(:role_names, :name)
5026 -> 0.0019s
5027-- add_index(:roles, [:name, :resource_type, :resource_id])
5028 -> 0.0020s
5029-- add_index(:users_roles, [:user_id, :role_id])
5030 -> 0.0019s
5031== 20230505055250 RolifyCreateRoles: migrated (0.0268s) =======================
5033== 20230505060110 CreatePolicies: migrating ===================================
5034-- create_table(:policy_permissions)
5035 -> 0.0070s
5036-- create_table(:role_permissions, {:id=>false})
5037 -> 0.0090s
5038-- add_index(:policy_permissions, :name)
5039 -> 0.0021s
5040-- add_index(:role_permissions, [:role_name_id, :policy_permission_id])
5041 -> 0.0019s
5042== 20230505060110 CreatePolicies: migrated (0.0202s) ==========================
5044== 20230713115855 CreatePermissionsSync: migrating ============================
5045-- create_table(:permissions_syncs)
5046 -> 0.0093s
5047== 20230713115855 CreatePermissionsSync: migrated (0.0094s) ===================
5049== 20231005111642 CreatePermissionsIndex: migrating ===========================
5050-- add_index(:permissions_syncs, [:user_id, :resource_type, :resource_id], {:name=>"index_permissions_syncs_on_user_and_resource"})
5051 -> 0.0023s
5052-- add_index(:role_names, :role_type)
5053 -> 0.0019s
5054== 20231005111642 CreatePermissionsIndex: migrated (0.0043s) ==================
5056== 20240823085523 AddVmsizeToJobs: migrating ==================================
5057-- add_column(:jobs, :vm_size, :string)
5058 -> 0.0009s
5059-- add_column(:deleted_jobs, :vm_size, :string)
5060 -> 0.0005s
5061== 20240823085523 AddVmsizeToJobs: migrated (0.0014s) =========================
5063 sets unique_number on INSERT
5064 does not set unique_number on INSERT if 0 is given as a value
5065 sets unique_number on UPDATE
5066 does not set unique_number on UPDATE if unique_number is 0
5068set_updated_at trigger
5069 jobs
5070 sets updated_at on INSERT
5071 sets updated_at on UPDATE
5072 works also for new columns
5073 builds
5074 sets updated_at on INSERT
5075 sets updated_at on UPDATE
5076 works also for new columns
5078soft delete repo
5079 ensure that soft delete tables have the same fields that the originals
5080 soft deleting a repo moves all of the related data to deleted_* tables
5082Rake tasks
5083 rake db:create
5084 migrates the main db
5085 rake db:schema:load
5086 loads the main schema
5088Deprecation Warnings:
5090Using `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)>'.
5093If you need more of the backtrace for any of these deprecations to
5094identify where to make the necessary changes, you can configure
5095`config.raise_errors_for_deprecations!`, and it will turn the
5096deprecation warnings into errors, giving you the full backtrace.
50981 deprecation warning total
5100Finished in 38.33 seconds (files took 0.37448 seconds to load)
510119 examples, 0 failures
5103The command "bundle exec rspec spec" exited with 0.
cache.2
5104store build cache
51050.00s1.48snothing changed
after_success
51070.20s$ script/upload_structure.rb
5108<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)
5109 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'
5110 from script/upload_structure.rb:5:in `<main>'
5112Done. Your build exited with 0.
Top