Pull Request #297 Release 2024 09 02

* added vm_size to jobs

* updated deleted_jobs

---------

Co-authored-by: AndriiMysko <andrii.mysko@devtactics.net>

Dominik avatar Dominik

Pull request event #3695 passed

  • Ran for
  • New branch build
AMD64
Ruby: 3.2.2
Git
Raw log
Scroll to End of Log
0.00s0.20s0.12s0.06s
worker_info
1Worker information
2hostname: 4ea65ba7-1c96-4a8b-9cbb-63375154adf5@1.worker-n2-com-696d86f5d9-lxm9v.gce-production-1
3version: v6.2.24-6-g098ca78 https://github.com/travis-ci/worker/tree/098ca78612c4c91c488169d6a2c94fbeee1fb89d
4instance: travis-job-489fc70f-dbe1-42d7-91cd-2c1ce9e26767 travis-ci-ubuntu-2004-1722508972-dca9c545 (via amqp)
5startup: 5.932216802s
60.29s0.00s0.01s0.00s0.01s
system_info
7Build system information
8Build language: ruby
9Build dist: focal
10Build id: 272137630
11Job id: 625714864
12Runtime kernel version: 5.15.0-1065-gcp
13travis-build version: 5243a51a
14Build image provisioning date and time
15Thu 01 Aug 2024 11:09:08 AM UTC
16Operating System Details
17Distributor ID: Ubuntu
18Description: Ubuntu 20.04.6 LTS
19Release: 20.04
20Codename: focal
21Systemd Version
22systemd 245 (245.4-4ubuntu3.23)
23Cookbooks Version
2450feb93 https://github.com/travis-ci/travis-cookbooks/tree/50feb93
25git version
26git version 2.46.0
27bash version
28GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)
29gcc version
30gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
31docker version
32Client:
33 Version: 24.0.7
34 API version: 1.43
35 Go version: go1.21.1
36 Git commit: 24.0.7-0ubuntu2~20.04.1
37 Built: Wed Mar 13 20:29:24 2024
38 OS/Arch: linux/amd64
39 Context: default
41Server:
42 Engine:
43 Version: 24.0.7
44 API version: 1.43 (minimum version 1.12)
45 Go version: go1.21.1
46 Git commit: 24.0.7-0ubuntu2~20.04.1
47 Built: Wed Mar 13 20:29:24 2024
48 OS/Arch: linux/amd64
49 Experimental: false
50 containerd:
51 Version: 1.7.12
52 GitCommit:
53 runc:
54 Version: 1.1.12-0ubuntu2~20.04.1
55 GitCommit:
56 docker-init:
57 Version: 0.19.0
58 GitCommit:
59clang version
60clang version 18.1.8
61jq version
62jq-1.7.1
63bats version
64Bats 1.11.0
65shellcheck version
660.10.0
67shfmt version
68v3.8.0
69ccache version
703.7.7
71cmake version
72cmake version 3.29.0
73heroku version
74heroku/9.1.0 linux-x64 node-v16.20.2
75imagemagick version
76Version: ImageMagick 6.9.10-23 Q16 x86_64 20190101 https://imagemagick.org
77md5deep version
784.4
79mercurial version
80version 6.5.2
81mysql version
82mysql Ver 8.0.39-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))
83openssl version
84OpenSSL 1.1.1f 31 Mar 2020
85packer version
86Packer v1.11.2
87postgresql client version
88psql (PostgreSQL) 13.15 (Ubuntu 13.15-1.pgdg20.04+1)
89ragel version
90Ragel State Machine Compiler version 6.10 March 2017
91sudo version
921.8.31
93gzip version
94gzip 1.10
95zip version
96Zip 3.0
97vim version
98VIM - Vi IMproved 8.1 (2018 May 18, compiled May 03 2024 02:36:35)
99iptables version
100iptables v1.8.4 (legacy)
101curl version
102curl 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
103wget version
104GNU Wget 1.20.3 built on linux-gnu.
105rsync version
106rsync version 3.1.3 protocol version 31
107gimme version
108v1.5.4
109nvm version
1100.40.0
111perlbrew version
112/home/travis/perl5/perlbrew/bin/perlbrew - App::perlbrew/0.95
113phpenv version
114rbenv 1.3.0
115rvm version
116rvm 1.29.12 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
117default ruby version
118ruby 3.3.1 (2024-04-23 revision c56cd86388) [x86_64-linux]
119default python version
120Python 3.7.17
121ElasticSearch version
1227.16.3
123Installed Firefox version
124firefox 99.0
125MongoDB version
126MongoDB 4.4.29
127PhantomJS version
1282.1.1
129Redis version
130redis-server 7.4.0
131Pre-installed Go versions
1321.22.5
133mvn version
134Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9)
135gradle version
136Gradle 8.3!
137lein version
138Leiningen 2.11.2 on Java 11.0.21 OpenJDK 64-Bit Server VM
139Pre-installed Node.js versions
140v10.24.1
141v12.22.12
142v14.21.3
143v16.15
144v16.20.2
145v18.20.3
146v18.20.4
147v20.16.0
148v4.9.1
149v6.17.1
150v8.17.0
151phpenv versions
152 system
153 7.4
154* 7.4.6 (set by /home/travis/.phpenv/version)
155 hhvm-stable
156 hhvm
157composer --version
158Composer version 1.10.6 2020-05-06 10:28:10
159Pre-installed Ruby versions
160ruby-2.7.6
161ruby-3.3.1
1630.02s0.01s0.83s0.31s0.05s0.01s0.04s0.00s0.03s0.01s0.03s0.01s0.01s0.00s0.37sOK
1640.00s0.06s0.00s0.01s0.13s0.00s0.00s0.00s0.01s0.00s0.13s0.00s0.98s0.00s0.12s6.04s0.00s3.99s0.00s2.25s
docker_mtu_and_registry_mirrors
resolvconf
apt
165Adding APT Sources
1660.75s$ curl -sSL "https://www.postgresql.org/media/keys/ACCC4CF8.asc" | sudo -E apt-key add -
167OK
1680.04s$ echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee -a ${TRAVIS_ROOT}/etc/apt/sources.list >/dev/null
16911.57s$ travis_apt_get_update
170Installing APT Packages
171PostgreSQL package is detected. Stopping postgresql service. See https://github.com/travis-ci/travis-ci/issues/5737 for more information.
172$ sudo systemctl stop postgresql
17311.51s$ sudo -E apt-get -yq --no-install-suggests --no-install-recommends $(travis_apt_get_options) install postgresql-11 postgresql-client-11
174Reading package lists...
175Building dependency tree...
176Reading state information...
177The following packages were automatically installed and are no longer required:
178 amd64-microcode intel-microcode iucode-tool libglu1-mesa
179 libjs-jquery-metadata libjs-jquery-tablesorter libnotify4 libwxbase3.0-0v5
180 libwxgtk3.0-gtk3-0v5 linux-image-unsigned-5.4.0-190-generic
181 linux-modules-5.4.0-190-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 46 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-4.pgdg20.04+1 [1,495 kB]
193Get:2 http://apt.postgresql.org/pub/repos/apt focal-pgdg/main amd64 postgresql-11 amd64 11.22-4.pgdg20.04+1 [14.3 MB]
194Preconfiguring packages ...
195Fetched 15.8 MB in 1s (30.4 MB/s)
196Selecting previously unselected package postgresql-client-11.
197(Reading database ... 172342 files and directories currently installed.)
198Preparing to unpack .../postgresql-client-11_11.22-4.pgdg20.04+1_amd64.deb ...
199Unpacking postgresql-client-11 (11.22-4.pgdg20.04+1) ...
200Selecting previously unselected package postgresql-11.
201Preparing to unpack .../postgresql-11_11.22-4.pgdg20.04+1_amd64.deb ...
202Unpacking postgresql-11 (11.22-4.pgdg20.04+1) ...
203Setting up postgresql-client-11 (11.22-4.pgdg20.04+1) ...
204Setting up postgresql-11 (11.22-4.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 (261.pgdg20.04+1) ...
232Building PostgreSQL dictionaries from installed myspell/hunspell packages...
233Removing obsolete dictionary files:
2343.01s
services
postgresql
2352.76s$ travis_setup_postgresql 11
236Starting PostgreSQL v11
237sudo systemctl start postgresql@11-main
git.checkout
2390.01s0.56s$ git clone --depth=50 https://github.com/travis-ci/travis-migrations.git travis-ci/travis-migrations
240Cloning into 'travis-ci/travis-migrations'...
241$ cd travis-ci/travis-migrations
2420.30s$ git fetch origin +refs/pull/297/merge: --depth=50
243From https://github.com/travis-ci/travis-migrations
244 * branch refs/pull/297/merge -> FETCH_HEAD
245$ git checkout -qf FETCH_HEAD
2470.00s
248Setting environment variables from repository settings
249$ export QUAY_ROBOT_HANDLE=[secure]
250$ export QUAY_ROBOT_TOKEN=[secure]
251$ export ARTIFACTS_BUCKET=travis-migrations-structure-dumps
252$ export ARTIFACTS_SECRET=[secure]
253$ export ARTIFACTS_KEY=[secure]
rvm
2553.34s$ rvm get head
256Downloading https://get.rvm.io
257Downloading https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer.asc
258Verifying /home/travis/.rvm/archives/rvm-installer.asc
259gpg: Signature made Tue 21 Feb 2023 11:35:16 PM UTC
260gpg: using RSA key 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
261gpg: Good signature from "Piotr Kuczynski <piotr.kuczynski@gmail.com>" [unknown]
262gpg: WARNING: This key is not certified with a trusted signature!
263gpg: There is no indication that the signature belongs to the owner.
264Primary key fingerprint: 7D2B AF1C F37B 13E2 069D 6956 105B D0E7 3949 9BDB
265GPG verified '/home/travis/.rvm/archives/rvm-installer'
266Downloading https://github.com/rvm/rvm/archive/master.tar.gz
267Upgrading the RVM installation in /home/travis/.rvm/
268 RVM PATH line found in /home/travis/.mkshrc /home/travis/.profile /home/travis/.zshrc.
269 RVM PATH line not found for Bash, rerun this command with '--auto-dotfiles' flag to fix it.
270 RVM sourcing line found in /home/travis/.profile /home/travis/.bashrc /home/travis/.zlogin.
271Upgrade of RVM in /home/travis/.rvm/ is complete.
273<warn>Thanks for installing RVM 🙏</warn>
274Please consider donating to our open collective to help us maintain RVM.
276👉 Donate: <code>https://opencollective.com/rvm/donate</code>
279RVM reloaded!
28022.99s$ rvm use 3.2.2 --install --binary --fuzzy
281curl: (22) The requested URL returned error: 404
282Required ruby-3.2.2 is not installed - installing.
283curl: (22) The requested URL returned error: 404
284Searching for binary rubies, this might take some time.
285Found remote file https://rubies.travis-ci.org/ubuntu/20.04/x86_64/ruby-3.2.2.tar.bz2
286Checking requirements for ubuntu.
287requirements_ubuntu_define_libncurses: command not found
288Requirements installation successful.
289ruby-3.2.2 - #configure
290ruby-3.2.2 - #download
291 % Total % Received % Xferd Average Speed Time Time Time Current
292 Dload Upload Total Spent Left Speed
293 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
294100 32.0M 100 32.0M 0 0 21.9M 0 0:00:01 0:00:01 --:--:-- 48.1M
295No checksum for downloaded archive, recording checksum in user configuration.
296ruby-3.2.2 - #validate archive
297ruby-3.2.2 - #extract
298ruby-3.2.2 - #validate binary
299ruby-3.2.2 - #setup
300ruby-3.2.2 - #gemset created /home/travis/.rvm/gems/ruby-3.2.2@global
301ruby-3.2.2 - #importing gemset /home/travis/.rvm/gemsets/global.gems..................................
302ruby-3.2.2 - #generating global wrappers........
303ruby-3.2.2 - #uninstalling gem rubygems-bundler-1.4.5.
304ruby-3.2.2 - #gemset created /home/travis/.rvm/gems/ruby-3.2.2
305ruby-3.2.2 - #importing gemset /home/travis/.rvm/gemsets/default.gems..............
306ruby-3.2.2 - #generating default wrappers........
307Using /home/travis/.rvm/gems/ruby-3.2.2
309$ export BUNDLE_GEMFILE=$PWD/Gemfile
cache.1
310Setting up build cache
311$ export CASHER_DIR=${TRAVIS_HOME}/.casher
3120.16s$ Installing caching utilities
3130.00s1.55sattempting to download cache archive
314fetching PR.297/cache--linux-focal-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855--rvm-3.2.2--gemfile-Gemfile.tgz
315fetching PR.297/cache-linux-focal-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855--rvm-3.2.2--gemfile-Gemfile.tgz
316fetching PR.297/cache--rvm-3.2.2--gemfile-Gemfile.tgz
317fetching master/cache--linux-focal-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855--rvm-3.2.2--gemfile-Gemfile.tgz
318found cache
3190.00s1.99sadding /home/travis/build/travis-ci/travis-migrations/vendor/bundle to cache
320creating directory /home/travis/build/travis-ci/travis-migrations/vendor/bundle
ruby.versions
323$ ruby --version
324ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]
325$ rvm --version
326rvm 1.29.12-next (master) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
327$ bundle --version
328Bundler version 2.4.10
329$ gem --version
3303.4.10
before_install.1
3324.14s$ gem update --system
333Updating rubygems-update
334Successfully installed rubygems-update-3.5.18
335Installing RubyGems 3.5.18
336 Successfully built RubyGem
337 Name: bundler
338 Version: 2.5.18
339 File: bundler-2.5.18.gem
340Bundler 2.5.18 installed
341RubyGems 3.5.18 installed
342Regenerating binstubs
343Regenerating plugins
345# 3.5.18 / 2024-08-26
347## Enhancements:
349* Installs bundler 2.5.18 as a default gem.
351## Bug fixes:
353* Fix `gem uninstall <name>:<version>` failing on shadowed default gems.
354 Pull request [#7949](https://github.com/rubygems/rubygems/pull/7949) by
355 deivid-rodriguez
357# 3.5.17 / 2024-08-01
359## Enhancements:
361* Explicitly encode `Gem::Dependency` to yaml. Pull request
362 [#7867](https://github.com/rubygems/rubygems/pull/7867) by segiddins
363* Installs bundler 2.5.17 as a default gem.
365## Bug fixes:
367* Fix `gem list` regression when a regular gem shadows a default one. Pull
368 request [#7892](https://github.com/rubygems/rubygems/pull/7892) by
369 deivid-rodriguez
370* Always leave default gem executables around. Pull request
371 [#7879](https://github.com/rubygems/rubygems/pull/7879) by
372 deivid-rodriguez
373* Fix line comment issue for hash when loading gemrc. Pull request
374 [#7857](https://github.com/rubygems/rubygems/pull/7857) by leetking
376# 3.5.16 / 2024-07-18
378## Enhancements:
380* Installs bundler 2.5.16 as a default gem.
382## Bug fixes:
384* Fix gemspec `require_paths` validation. Pull request
385 [#7866](https://github.com/rubygems/rubygems/pull/7866) by
386 deivid-rodriguez
387* Fix loading of nested `gemrc` config keys when specified as symbols.
388 Pull request [#7851](https://github.com/rubygems/rubygems/pull/7851) by
389 moofkit
391## Performance:
393* Use `caller_locations` instead of splitting `caller`. Pull request
394 [#7708](https://github.com/rubygems/rubygems/pull/7708) by nobu
396# 3.5.15 / 2024-07-09
398## Enhancements:
400* Installs bundler 2.5.15 as a default gem.
402## Bug fixes:
404* Restrict generic `arm` to only match 32-bit arm. Pull request
405 [#7830](https://github.com/rubygems/rubygems/pull/7830) by ntkme
406* Protect creating binstubs with a file lock. Pull request
407 [#7806](https://github.com/rubygems/rubygems/pull/7806) by
408 deivid-rodriguez
410## Documentation:
412* Make it clearer that `add_dependency` is the main way to add
413 non-development dependencies. Pull request
414 [#7800](https://github.com/rubygems/rubygems/pull/7800) by jeromedalbert
416# 3.5.14 / 2024-06-21
418## Enhancements:
420* Installs bundler 2.5.14 as a default gem.
422## Bug fixes:
424* Make "bundler? update --bundler" behave identically. Pull request
425 [#7778](https://github.com/rubygems/rubygems/pull/7778) by x-yuri
427# 3.5.13 / 2024-06-14
429## Enhancements:
431* Installs bundler 2.5.13 as a default gem.
433## Bug fixes:
435* Never remove executables that may belong to a default gem. Pull request
436 [#7747](https://github.com/rubygems/rubygems/pull/7747) by
437 deivid-rodriguez
439# 3.5.12 / 2024-06-13
441## Enhancements:
443* Installs bundler 2.5.12 as a default gem.
445## Bug fixes:
447* Fix `gem uninstall` unresolved specifications warning. Pull request
448 [#7667](https://github.com/rubygems/rubygems/pull/7667) by
449 deivid-rodriguez
450* Fix `gem pristine` sometimes failing to pristine user installed gems.
451 Pull request [#7664](https://github.com/rubygems/rubygems/pull/7664) by
452 deivid-rodriguez
454# 3.5.11 / 2024-05-28
456## Enhancements:
458* Update SPDX license list as of 2024-05-22. Pull request
459 [#7689](https://github.com/rubygems/rubygems/pull/7689) by
460 github-actions[bot]
461* Fix the update_rubygems inconsistency (--disable-gems). Pull request
462 [#7658](https://github.com/rubygems/rubygems/pull/7658) by x-yuri
463* Accept WASI as an OS name in Gem::Platform. Pull request
464 [#7629](https://github.com/rubygems/rubygems/pull/7629) by kateinoigakukun
465* Warn if RubyGems version explicitly set in gemspec does not match
466 running version. Pull request
467 [#7460](https://github.com/rubygems/rubygems/pull/7460) by
468 deivid-rodriguez
469* Installs bundler 2.5.11 as a default gem.
471## Bug fixes:
473* Fix binstubs sometimes not getting regenerated when `--destdir` is
474 given. Pull request
475 [#7660](https://github.com/rubygems/rubygems/pull/7660) by
476 deivid-rodriguez
477* Fix `gem uninstall --user-install` for symlinked HOME. Pull request
478 [#7645](https://github.com/rubygems/rubygems/pull/7645) by
479 deivid-rodriguez
480* Fix issue when plugin stubs would sometimes not be properly removed by
481 `gem uninstall`. Pull request
482 [#7631](https://github.com/rubygems/rubygems/pull/7631) by
483 deivid-rodriguez
484* Fix plugins uninstallation for user installed gems. Pull request
485 [#6456](https://github.com/rubygems/rubygems/pull/6456) by voxik
487## Performance:
489* Use a constant empty tar header to avoid extra allocations. Pull request
490 [#7484](https://github.com/rubygems/rubygems/pull/7484) by segiddins
492## Documentation:
494* Recommend `bin/rake` over `rake` in contributing docs. Pull request
495 [#7648](https://github.com/rubygems/rubygems/pull/7648) by
496 deivid-rodriguez
498# 3.5.10 / 2024-05-03
500## Security:
502* Add a limit to the size of the metadata and checksums files in a gem
503 package. Pull request
504 [#7568](https://github.com/rubygems/rubygems/pull/7568) by segiddins
506## Enhancements:
508* Don't fully require `rubygems` from `rubygems/package` to prevent some
509 circular require warnings when using Bundler. Pull request
510 [#7612](https://github.com/rubygems/rubygems/pull/7612) by
511 deivid-rodriguez
512* Installs bundler 2.5.10 as a default gem.
514## Bug fixes:
516* Rename credential email to identifier in WebAuthn poller. Pull request
517 [#7623](https://github.com/rubygems/rubygems/pull/7623) by jenshenny
519# 3.5.9 / 2024-04-12
521## Enhancements:
523* Installs bundler 2.5.9 as a default gem.
525# 3.5.8 / 2024-04-11
527## Security:
529* Respect global umask when writing regular files. Pull request
530 [#7518](https://github.com/rubygems/rubygems/pull/7518) by
531 deivid-rodriguez
533## Enhancements:
535* Allow string keys with gemrc. Pull request
536 [#7543](https://github.com/rubygems/rubygems/pull/7543) by hsbt
537* [Experimental] Add "gem rebuild" command. Pull request
538 [#4913](https://github.com/rubygems/rubygems/pull/4913) by duckinator
539* Installs bundler 2.5.8 as a default gem.
541## Bug fixes:
543* Fix NoMethodError crash when building errors about corrupt package
544 files. Pull request
545 [#7539](https://github.com/rubygems/rubygems/pull/7539) by jez
546* Fix resolver to properly intersect Arrays of `Gem::Resolver::Activation`
547 objects. Pull request
548 [#7537](https://github.com/rubygems/rubygems/pull/7537) by
549 deivid-rodriguez
551# 3.5.7 / 2024-03-22
553## Enhancements:
555* Warn on empty or open required_ruby_version specification attribute.
556 Pull request [#5010](https://github.com/rubygems/rubygems/pull/5010) by
557 simi
558* Control whether YAML aliases are enabled in Gem::SafeYAML.safe_load via
559 attribute. Pull request
560 [#7464](https://github.com/rubygems/rubygems/pull/7464) by segiddins
561* Update SPDX license list as of 2024-02-08. Pull request
562 [#7468](https://github.com/rubygems/rubygems/pull/7468) by
563 github-actions[bot]
564* Installs bundler 2.5.7 as a default gem.
566## Bug fixes:
568* Allow prerelease activation (even if requirement is not explicit about
569 it) when it's the only possibility. Pull request
570 [#7428](https://github.com/rubygems/rubygems/pull/7428) by kimesf
572## Documentation:
574* Fix a typo. Pull request
575 [#7505](https://github.com/rubygems/rubygems/pull/7505) by hsbt
576* Use https instead of http in documentation links. Pull request
577 [#7481](https://github.com/rubygems/rubygems/pull/7481) by hsbt
579# 3.5.6 / 2024-02-06
581## Enhancements:
583* Deep copy requirements in `Gem::Specification` and `Gem::Requirement`.
584 Pull request [#7439](https://github.com/rubygems/rubygems/pull/7439) by
585 flavorjones
586* Change gem login message to clear up that username can be also used.
587 Pull request [#7422](https://github.com/rubygems/rubygems/pull/7422) by
588 VitaliySerov
589* Add metadata for rubygems.org. Pull request
590 [#7435](https://github.com/rubygems/rubygems/pull/7435) by m-nakamura145
591* Improve gem login scope selection. Pull request
592 [#7342](https://github.com/rubygems/rubygems/pull/7342) by williantenfen
593* Vendor uri in RubyGems. Pull request
594 [#7386](https://github.com/rubygems/rubygems/pull/7386) by
595 deivid-rodriguez
596* Installs bundler 2.5.6 as a default gem.
598## Bug fixes:
600* Skip to load commented out words. Pull request
601 [#7413](https://github.com/rubygems/rubygems/pull/7413) by hsbt
602* Fix rake runtime dependency warning for rake based extension. Pull
603 request [#7395](https://github.com/rubygems/rubygems/pull/7395) by ntkme
605# 3.5.5 / 2024-01-18
607## Enhancements:
609* Installs bundler 2.5.5 as a default gem.
611## Bug fixes:
613* Fix `require` activation conflicts when requiring default gems under
614 some situations. Pull request
615 [#7379](https://github.com/rubygems/rubygems/pull/7379) by
616 deivid-rodriguez
617* Use cache_home instead of data_home in default_spec_cache_dir. Pull
618 request [#7331](https://github.com/rubygems/rubygems/pull/7331) by mrkn
620## Documentation:
622* Use squiggly heredocs in `Gem::Specification#description` documentation,
623 so it doesn't add leading whitespace. Pull request
624 [#7373](https://github.com/rubygems/rubygems/pull/7373) by bravehager
626# 3.5.4 / 2024-01-04
628## Enhancements:
630* Always avoid "Updating rubygems-update" message. Pull request
631 [#7335](https://github.com/rubygems/rubygems/pull/7335) by
632 deivid-rodriguez
633* Installs bundler 2.5.4 as a default gem.
635## Bug fixes:
637* Make `gem update --system` respect ruby version constraints. Pull
638 request [#7334](https://github.com/rubygems/rubygems/pull/7334) by
639 deivid-rodriguez
641# 3.5.3 / 2023-12-22
643## Enhancements:
645* Installs bundler 2.5.3 as a default gem.
647# 3.5.2 / 2023-12-21
649## Enhancements:
651* Support dynamic library loading with extension .so or .o. Pull request
652 [#7241](https://github.com/rubygems/rubygems/pull/7241) by hogelog
653* Installs bundler 2.5.2 as a default gem.
655## Performance:
657* Replace `object_id` comparison with identity Hash. Pull request
658 [#7303](https://github.com/rubygems/rubygems/pull/7303) by amomchilov
659* Use IO.copy_stream when reading, writing. Pull request
660 [#6958](https://github.com/rubygems/rubygems/pull/6958) by martinemde
662# 3.5.1 / 2023-12-15
664## Enhancements:
666* Installs bundler 2.5.1 as a default gem.
668# 3.5.0 / 2023-12-15
670## Security:
672* Replace `Marshal.load` with a fully-checked safe gemspec loader. Pull
673 request [#6896](https://github.com/rubygems/rubygems/pull/6896) by
674 segiddins
676## Breaking changes:
678* Drop ruby 2.6 and 2.7 support. Pull request
679 [#7116](https://github.com/rubygems/rubygems/pull/7116) by
680 deivid-rodriguez
681* Release package no longer includes test files. Pull request
682 [#6781](https://github.com/rubygems/rubygems/pull/6781) by hsbt
683* Hide `Gem::MockGemUi` from users. Pull request
684 [#6623](https://github.com/rubygems/rubygems/pull/6623) by hsbt
685* Deprecated `Gem.datadir` has been removed. Pull request
686 [#6469](https://github.com/rubygems/rubygems/pull/6469) by hsbt
688## Deprecations:
690* Deprecate `Gem::Platform.match?`. Pull request
691 [#6783](https://github.com/rubygems/rubygems/pull/6783) by hsbt
692* Deprecate `Gem::List`. Pull request
693 [#6311](https://github.com/rubygems/rubygems/pull/6311) by segiddins
695## Features:
697* The `generate_index` command can now generate compact index files and
698 lives as an external `rubygems-generate_index` gem. Pull request
699 [#7085](https://github.com/rubygems/rubygems/pull/7085) by segiddins
700* Make `gem install` fallback to user installation directory if default
701 gem home is not writable. Pull request
702 [#5327](https://github.com/rubygems/rubygems/pull/5327) by duckinator
703* Leverage ruby feature to warn when requiring default gems from stdlib
704 that will be turned into bundled gems in the future. Pull request
705 [#6840](https://github.com/rubygems/rubygems/pull/6840) by hsbt
707## Performance:
709* Use match? when regexp match data is unused. Pull request
710 [#7263](https://github.com/rubygems/rubygems/pull/7263) by segiddins
711* Fewer allocations in gem installation. Pull request
712 [#6975](https://github.com/rubygems/rubygems/pull/6975) by segiddins
713* Optimize allocations in `Gem::Version`. Pull request
714 [#6970](https://github.com/rubygems/rubygems/pull/6970) by segiddins
716## Enhancements:
718* Warn for duplicate meta data links when building gems. Pull request
719 [#7213](https://github.com/rubygems/rubygems/pull/7213) by etherbob
720* Vendor `net-http`, `net-protocol`, `resolv`, and `timeout` to reduce
721 conflicts between Gemfile gems and internal dependencies. Pull request
722 [#6793](https://github.com/rubygems/rubygems/pull/6793) by
723 deivid-rodriguez
724* Remove non-transparent requirement added to prerelease gems. Pull
725 request [#7226](https://github.com/rubygems/rubygems/pull/7226) by
726 deivid-rodriguez
727* Stream output from ext builds when --verbose. Pull request
728 [#7240](https://github.com/rubygems/rubygems/pull/7240) by osyoyu
729* Add missing services to CI detection and make it consistent between
730 RubyGems and Bundler. Pull request
731 [#7205](https://github.com/rubygems/rubygems/pull/7205) by nevinera
732* Update generate licenses template to not freeze regexps. Pull request
733 [#7154](https://github.com/rubygems/rubygems/pull/7154) by
734 github-actions[bot]
735* Don't check `LIBRUBY_RELATIVE` in truffleruby to signal a bash prelude
736 in rubygems binstubs. Pull request
737 [#7156](https://github.com/rubygems/rubygems/pull/7156) by
738 deivid-rodriguez
739* Update SPDX list and warn on deprecated identifiers. Pull request
740 [#6926](https://github.com/rubygems/rubygems/pull/6926) by simi
741* Simplify extended `require` to potentially fix some deadlocks. Pull
742 request [#6827](https://github.com/rubygems/rubygems/pull/6827) by nobu
743* Small refactors for `Gem::Resolver`. Pull request
744 [#6766](https://github.com/rubygems/rubygems/pull/6766) by hsbt
745* Use double-quotes instead of single-quotes consistently in warnings.
746 Pull request [#6550](https://github.com/rubygems/rubygems/pull/6550) by
747 hsbt
748* Add debug message for `nil` version gemspec. Pull request
749 [#6436](https://github.com/rubygems/rubygems/pull/6436) by hsbt
750* Installs bundler 2.5.0 as a default gem.
752## Bug fixes:
754* Fix installing from source with same default bundler version already
755 installed. Pull request
756 [#7244](https://github.com/rubygems/rubygems/pull/7244) by
757 deivid-rodriguez
759## Documentation:
761* Improve comment explaining the necessity of `write_default_spec` method.
762 Pull request [#6563](https://github.com/rubygems/rubygems/pull/6563) by
763 voxik
765# 3.4.22 / 2023-11-09
767## Enhancements:
769* Update SPDX license list as of 2023-10-05. Pull request
770 [#7040](https://github.com/rubygems/rubygems/pull/7040) by
771 github-actions[bot]
772* Remove unnecessary rescue. Pull request
773 [#7109](https://github.com/rubygems/rubygems/pull/7109) by
774 deivid-rodriguez
775* Installs bundler 2.4.22 as a default gem.
777## Bug fixes:
779* Handle empty array at built-in YAML serializer. Pull request
780 [#7099](https://github.com/rubygems/rubygems/pull/7099) by hsbt
781* Ignore non-tar format `.gem` files during search. Pull request
782 [#7095](https://github.com/rubygems/rubygems/pull/7095) by dearblue
783* Allow explicitly uninstalling multiple versions of same gem. Pull
784 request [#7063](https://github.com/rubygems/rubygems/pull/7063) by
785 kstevens715
787## Performance:
789* Avoid regexp match on every call to `Gem::Platform.local`. Pull request
790 [#7104](https://github.com/rubygems/rubygems/pull/7104) by segiddins
792## Documentation:
794* Get `Gem::Specification#extensions_dir` documented. Pull request
795 [#6218](https://github.com/rubygems/rubygems/pull/6218) by
796 deivid-rodriguez
798# 3.4.21 / 2023-10-17
800## Enhancements:
802* Abort `setup.rb` if Ruby is too old. Pull request
803 [#7011](https://github.com/rubygems/rubygems/pull/7011) by
804 deivid-rodriguez
805* Remove usage of Dir.chdir that only execute a subprocess. Pull request
806 [#6930](https://github.com/rubygems/rubygems/pull/6930) by segiddins
807* Freeze more strings in generated gemspecs. Pull request
808 [#6974](https://github.com/rubygems/rubygems/pull/6974) by segiddins
809* Use pure-ruby YAML parser for loading configuration at RubyGems. Pull
810 request [#6615](https://github.com/rubygems/rubygems/pull/6615) by hsbt
811* Installs bundler 2.4.21 as a default gem.
813## Documentation:
815* Update suggested variable for bindir. Pull request
816 [#7028](https://github.com/rubygems/rubygems/pull/7028) by hsbt
817* Fix invalid links in documentation. Pull request
818 [#7008](https://github.com/rubygems/rubygems/pull/7008) by simi
820# 3.4.20 / 2023-09-27
822## Enhancements:
824* Raise `Gem::Package::FormatError` when gem encounters corrupt EOF.
825 Pull request [#6882](https://github.com/rubygems/rubygems/pull/6882)
826 by martinemde
827* Allow skipping empty license `gem build` warning by setting license to
828 `nil`. Pull request
829 [#6879](https://github.com/rubygems/rubygems/pull/6879) by jhong97
830* Update SPDX license list as of 2023-06-18. Pull request
831 [#6891](https://github.com/rubygems/rubygems/pull/6891) by
832 github-actions[bot]
833* Update SPDX license list as of 2023-04-28. Pull request
834 [#6642](https://github.com/rubygems/rubygems/pull/6642) by segiddins
835* Update SPDX license list as of 2023-01-26. Pull request
836 [#6310](https://github.com/rubygems/rubygems/pull/6310) by segiddins
837* Installs bundler 2.4.20 as a default gem.
839## Bug fixes:
841* Fixed false positive SymlinkError in symbolic link directory. Pull
842 request [#6947](https://github.com/rubygems/rubygems/pull/6947) by
843 negi0109
844* Ensure that loading multiple gemspecs with legacy YAML class references
845 does not warn. Pull request
846 [#6889](https://github.com/rubygems/rubygems/pull/6889) by segiddins
847* Fix NoMethodError when choosing a too big number from `gem uni` list.
848 Pull request [#6901](https://github.com/rubygems/rubygems/pull/6901) by
849 amatsuda
851## Performance:
853* Reduce allocations for stub specifications. Pull request
854 [#6972](https://github.com/rubygems/rubygems/pull/6972) by segiddins
856# 3.4.19 / 2023-08-17
858## Enhancements:
860* Installs bundler 2.4.19 as a default gem.
862## Performance:
864* Speedup building docs when updating rubygems. Pull request
865 [#6864](https://github.com/rubygems/rubygems/pull/6864) by
866 deivid-rodriguez
868# 3.4.18 / 2023-08-02
870## Enhancements:
872* Add poller to fetch WebAuthn OTP. Pull request
873 [#6774](https://github.com/rubygems/rubygems/pull/6774) by jenshenny
874* Remove side effects when unmarshaling old `Gem::Specification`. Pull
875 request [#6825](https://github.com/rubygems/rubygems/pull/6825) by nobu
876* Ship rubygems executables in `exe` folder. Pull request
877 [#6704](https://github.com/rubygems/rubygems/pull/6704) by hsbt
878* Installs bundler 2.4.18 as a default gem.
880# 3.4.17 / 2023-07-14
882## Enhancements:
884* Installs bundler 2.4.17 as a default gem.
886## Performance:
888* Avoid unnecessary work for private local gem installation. Pull request
889 [#6810](https://github.com/rubygems/rubygems/pull/6810) by
890 deivid-rodriguez
892# 3.4.16 / 2023-07-10
894## Enhancements:
896* Installs bundler 2.4.16 as a default gem.
898# 3.4.15 / 2023-06-29
900## Enhancements:
902* Installs bundler 2.4.15 as a default gem.
904## Bug fixes:
906* Autoload shellwords when it's needed. Pull request
907 [#6734](https://github.com/rubygems/rubygems/pull/6734) by ioquatix
909## Documentation:
911* Update command to test local gem command changes. Pull request
912 [#6761](https://github.com/rubygems/rubygems/pull/6761) by jenshenny
914# 3.4.14 / 2023-06-12
916## Enhancements:
918* Load plugin immediately. Pull request
919 [#6673](https://github.com/rubygems/rubygems/pull/6673) by kou
920* Installs bundler 2.4.14 as a default gem.
922## Documentation:
924* Clarify what the `rubygems-update` gem is for, and link to source code
925 and guides. Pull request
926 [#6710](https://github.com/rubygems/rubygems/pull/6710) by davetron5000
928# 3.4.13 / 2023-05-09
930## Enhancements:
932* Installs bundler 2.4.13 as a default gem.
934# 3.4.12 / 2023-04-11
936## Enhancements:
938* [Experimental] Add WebAuthn Support to the CLI. Pull request
939 [#6560](https://github.com/rubygems/rubygems/pull/6560) by jenshenny
940* Installs bundler 2.4.12 as a default gem.
942# 3.4.11 / 2023-04-10
944## Enhancements:
946* Installs bundler 2.4.11 as a default gem.
949------------------------------------------------------------------------------
951RubyGems installed the following executables:
952 /home/travis/.rvm/rubies/ruby-3.2.2/bin/gem
953 /home/travis/.rvm/rubies/ruby-3.2.2/bin/bundle
954 /home/travis/.rvm/rubies/ruby-3.2.2/bin/bundler
956RubyGems system software updated
before_install.2
9570.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
9580.01s$ sudo sed -i -e 's/^port = 5433/port = 5432/' /etc/postgresql/11/main/postgresql.conf
before_install.4
9592.38s$ sudo systemctl restart postgresql@11-main
install.bundler
9601.57s$ bundle install --jobs=3 --retry=3 --deployment
961[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
962Bundler 2.5.18 is running, but your lockfile was generated with 2.4.14. Installing Bundler 2.4.14 and restarting using that version.
963Fetching gem metadata from https://rubygems.org/.
964Fetching bundler 2.4.14
965Installing bundler 2.4.14
966[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
967Using rake 13.0.6
968Using concurrent-ruby 1.2.2
969Using i18n 1.14.1
970Using minitest 5.18.1
971Using tzinfo 2.0.6
972Using activesupport 7.0.6
973Using builder 3.2.4
974Using erubi 1.12.0
975Using racc 1.7.1
976Using nokogiri 1.15.2 (x86_64-linux)
977Using rails-dom-testing 2.1.1
978Using crass 1.0.6
979Using loofah 2.21.3
980Using rails-html-sanitizer 1.6.0
981Using actionview 7.0.6
982Using rack 2.2.7
983Using rack-test 2.1.0
984Using actionpack 7.0.6
985Using nio4r 2.5.9
986Using websocket-extensions 0.1.5
987Using websocket-driver 0.7.5
988Using actioncable 7.0.6
989Using globalid 1.1.0
990Using activejob 7.0.6
991Using activemodel 7.0.6
992Using activerecord 7.0.6
993Using marcel 1.0.2
994Using mini_mime 1.1.2
995Using activestorage 7.0.6
996Using date 3.3.3
997Using timeout 0.4.0
998Using net-protocol 0.2.1
999Using net-imap 0.3.6
1000Using net-pop 0.1.2
1001Using net-smtp 0.3.3
1002Using mail 2.8.1
1003Using actionmailbox 7.0.6
1004Using actionmailer 7.0.6
1005Using actiontext 7.0.6
1006Using ansi 1.5.0
1007Using ast 2.4.2
1008Using aws-eventstream 1.2.0
1009Using aws-partitions 1.783.0
1010Using aws-sigv4 1.6.0
1011Using jmespath 1.6.2
1012Using aws-sdk-core 3.176.1
1013Using aws-sdk-kms 1.68.0
1014Using aws-sdk-s3 1.127.0
1015Using bundler 2.4.14
1016Using colored 1.2
1017Using diff-lcs 1.5.0
1018Using docile 1.4.0
1019Using json 2.6.3
1020Using language_server-protocol 3.17.0.3
1021Using method_source 1.0.0
1022Using parallel 1.23.0
1023Using parser 3.2.2.3
1024Using pg 1.5.3
1025Using thor 1.2.2
1026Using zeitwerk 2.6.8
1027Using railties 7.0.6
1028Using rails 7.0.6
1029Using rainbow 3.1.1
1030Using rake-notes 0.2.2
1031Using regexp_parser 2.8.1
1032Using rexml 3.2.5
1033Using routes 0.2.0
1034Using rspec-support 3.12.1
1035Using rspec-core 3.12.2
1036Using rspec-expectations 3.12.3
1037Using rspec-mocks 3.12.5
1038Using rspec 3.12.0
1039Using rubocop-ast 1.29.0
1040Using ruby-progressbar 1.13.0
1041Using unicode-display_width 2.4.2
1042Using rubocop 1.54.1
1043Using rubocop-capybara 2.18.0
1044Using rubocop-factory_bot 2.23.1
1045Using rubocop-performance 1.18.0
1046Using rubocop-rspec 2.22.0
1047Using simplecov-html 0.12.3
1048Using simplecov_json_formatter 0.1.4
1049Using simplecov 0.22.0
1050Using terminal-table 3.0.2
1051Using simplecov-console 0.9.1
1052Bundle complete! 12 Gemfile dependencies, 85 gems now installed.
1053Bundled gems are installed into `./vendor/bundle`
before_script.1
10550.01s$ psql --version
1056psql (PostgreSQL) 11.22 (Ubuntu 11.22-4.pgdg20.04+1)
before_script.2
10570.25s$ psql -c 'CREATE DATABASE travis_test;'
1058CREATE DATABASE
before_script.3
10591.12s$ curl -fs https://raw.githubusercontent.com/travis-ci/travis-migrations/master/db/main/structure.sql | psql -v ON_ERROR_STOP=1 travis_test
1060SET
1061SET
1062SET
1063SET
1064SET
1065 set_config
1066------------
1068(1 row)
1070SET
1071SET
1072SET
1073SET
1074CREATE EXTENSION
1075COMMENT
1076CREATE EXTENSION
1077COMMENT
1078CREATE TYPE
1079CREATE FUNCTION
1080CREATE FUNCTION
1081CREATE FUNCTION
1082CREATE FUNCTION
1083CREATE FUNCTION
1084CREATE FUNCTION
1085CREATE FUNCTION
1086CREATE FUNCTION
1087CREATE FUNCTION
1088CREATE FUNCTION
1089CREATE FUNCTION
1090CREATE FUNCTION
1091CREATE FUNCTION
1092CREATE FUNCTION
1093CREATE FUNCTION
1094CREATE FUNCTION
1095CREATE FUNCTION
1096CREATE FUNCTION
1097CREATE FUNCTION
1098CREATE FUNCTION
1099CREATE FUNCTION
1100CREATE FUNCTION
1101CREATE FUNCTION
1102CREATE FUNCTION
1103CREATE FUNCTION
1104CREATE FUNCTION
1105CREATE FUNCTION
1106CREATE FUNCTION
1107CREATE FUNCTION
1108CREATE FUNCTION
1109SET
1110CREATE TABLE
1111CREATE SEQUENCE
1112ALTER SEQUENCE
1113CREATE TABLE
1114CREATE TABLE
1115CREATE SEQUENCE
1116ALTER SEQUENCE
1117CREATE TABLE
1118CREATE SEQUENCE
1119ALTER SEQUENCE
1120CREATE TABLE
1121CREATE SEQUENCE
1122ALTER SEQUENCE
1123CREATE TABLE
1124CREATE SEQUENCE
1125ALTER SEQUENCE
1126CREATE TABLE
1127CREATE SEQUENCE
1128ALTER SEQUENCE
1129CREATE TABLE
1130CREATE SEQUENCE
1131ALTER SEQUENCE
1132CREATE TABLE
1133CREATE SEQUENCE
1134ALTER SEQUENCE
1135CREATE SEQUENCE
1136CREATE TABLE
1137CREATE SEQUENCE
1138ALTER SEQUENCE
1139CREATE TABLE
1140CREATE SEQUENCE
1141ALTER SEQUENCE
1142CREATE TABLE
1143CREATE SEQUENCE
1144ALTER SEQUENCE
1145CREATE TABLE
1146CREATE SEQUENCE
1147ALTER SEQUENCE
1148CREATE TABLE
1149CREATE SEQUENCE
1150ALTER SEQUENCE
1151CREATE TABLE
1152CREATE SEQUENCE
1153ALTER SEQUENCE
1154CREATE TABLE
1155CREATE TABLE
1156CREATE TABLE
1157CREATE TABLE
1158CREATE TABLE
1159CREATE TABLE
1160CREATE TABLE
1161CREATE TABLE
1162CREATE TABLE
1163CREATE TABLE
1164CREATE TABLE
1165CREATE TABLE
1166CREATE TABLE
1167CREATE TABLE
1168CREATE TABLE
1169CREATE TABLE
1170CREATE SEQUENCE
1171ALTER SEQUENCE
1172CREATE TABLE
1173CREATE SEQUENCE
1174ALTER SEQUENCE
1175CREATE TABLE
1176CREATE SEQUENCE
1177ALTER SEQUENCE
1178CREATE TABLE
1179CREATE SEQUENCE
1180ALTER SEQUENCE
1181CREATE TABLE
1182CREATE SEQUENCE
1183ALTER SEQUENCE
1184CREATE TABLE
1185CREATE SEQUENCE
1186ALTER SEQUENCE
1187CREATE TABLE
1188CREATE SEQUENCE
1189ALTER SEQUENCE
1190CREATE TABLE
1191CREATE SEQUENCE
1192ALTER SEQUENCE
1193CREATE TABLE
1194CREATE SEQUENCE
1195ALTER SEQUENCE
1196CREATE TABLE
1197CREATE SEQUENCE
1198ALTER SEQUENCE
1199CREATE TABLE
1200CREATE SEQUENCE
1201ALTER SEQUENCE
1202CREATE TABLE
1203CREATE SEQUENCE
1204ALTER SEQUENCE
1205CREATE TABLE
1206CREATE SEQUENCE
1207ALTER SEQUENCE
1208CREATE TABLE
1209CREATE SEQUENCE
1210ALTER SEQUENCE
1211CREATE TABLE
1212CREATE SEQUENCE
1213ALTER SEQUENCE
1214CREATE TABLE
1215CREATE SEQUENCE
1216ALTER SEQUENCE
1217CREATE TABLE
1218CREATE SEQUENCE
1219ALTER SEQUENCE
1220CREATE TABLE
1221CREATE TABLE
1222CREATE SEQUENCE
1223ALTER SEQUENCE
1224CREATE TABLE
1225CREATE SEQUENCE
1226ALTER SEQUENCE
1227CREATE TABLE
1228CREATE SEQUENCE
1229ALTER SEQUENCE
1230CREATE TABLE
1231CREATE SEQUENCE
1232ALTER SEQUENCE
1233CREATE TABLE
1234CREATE SEQUENCE
1235ALTER SEQUENCE
1236CREATE TABLE
1237CREATE SEQUENCE
1238ALTER SEQUENCE
1239CREATE TABLE
1240CREATE SEQUENCE
1241ALTER SEQUENCE
1242CREATE TABLE
1243CREATE SEQUENCE
1244ALTER SEQUENCE
1245CREATE TABLE
1246CREATE TABLE
1247CREATE SEQUENCE
1248ALTER SEQUENCE
1249CREATE TABLE
1250CREATE TABLE
1251CREATE SEQUENCE
1252ALTER SEQUENCE
1253CREATE TABLE
1254CREATE SEQUENCE
1255ALTER SEQUENCE
1256CREATE TABLE
1257CREATE SEQUENCE
1258ALTER SEQUENCE
1259CREATE TABLE
1260CREATE SEQUENCE
1261ALTER SEQUENCE
1262CREATE TABLE
1263CREATE SEQUENCE
1264ALTER SEQUENCE
1265CREATE TABLE
1266CREATE SEQUENCE
1267ALTER SEQUENCE
1268CREATE TABLE
1269CREATE SEQUENCE
1270ALTER SEQUENCE
1271CREATE TABLE
1272CREATE SEQUENCE
1273ALTER SEQUENCE
1274CREATE TABLE
1275CREATE SEQUENCE
1276ALTER SEQUENCE
1277CREATE TABLE
1278CREATE SEQUENCE
1279ALTER SEQUENCE
1280CREATE TABLE
1281CREATE SEQUENCE
1282ALTER SEQUENCE
1283CREATE TABLE
1284CREATE SEQUENCE
1285ALTER SEQUENCE
1286CREATE TABLE
1287CREATE SEQUENCE
1288ALTER SEQUENCE
1289CREATE TABLE
1290ALTER TABLE
1291ALTER TABLE
1292ALTER TABLE
1293ALTER TABLE
1294ALTER TABLE
1295ALTER TABLE
1296ALTER TABLE
1297ALTER TABLE
1298ALTER TABLE
1299ALTER TABLE
1300ALTER TABLE
1301ALTER TABLE
1302ALTER TABLE
1303ALTER TABLE
1304ALTER TABLE
1305ALTER TABLE
1306ALTER TABLE
1307ALTER TABLE
1308ALTER TABLE
1309ALTER TABLE
1310ALTER TABLE
1311ALTER TABLE
1312ALTER TABLE
1313ALTER TABLE
1314ALTER TABLE
1315ALTER TABLE
1316ALTER TABLE
1317ALTER TABLE
1318ALTER TABLE
1319ALTER TABLE
1320ALTER TABLE
1321ALTER TABLE
1322ALTER TABLE
1323ALTER TABLE
1324ALTER TABLE
1325ALTER TABLE
1326ALTER TABLE
1327ALTER TABLE
1328ALTER TABLE
1329ALTER TABLE
1330ALTER TABLE
1331ALTER TABLE
1332ALTER TABLE
1333ALTER TABLE
1334ALTER TABLE
1335ALTER TABLE
1336ALTER TABLE
1337ALTER TABLE
1338ALTER TABLE
1339ALTER TABLE
1340ALTER TABLE
1341ALTER TABLE
1342ALTER TABLE
1343ALTER TABLE
1344ALTER TABLE
1345ALTER TABLE
1346ALTER TABLE
1347ALTER TABLE
1348ALTER TABLE
1349ALTER TABLE
1350ALTER TABLE
1351ALTER TABLE
1352ALTER TABLE
1353ALTER TABLE
1354ALTER TABLE
1355ALTER TABLE
1356ALTER TABLE
1357ALTER TABLE
1358ALTER TABLE
1359ALTER TABLE
1360ALTER TABLE
1361ALTER TABLE
1362ALTER TABLE
1363ALTER TABLE
1364ALTER TABLE
1365ALTER TABLE
1366ALTER TABLE
1367ALTER TABLE
1368ALTER TABLE
1369ALTER TABLE
1370ALTER TABLE
1371ALTER TABLE
1372ALTER TABLE
1373ALTER TABLE
1374ALTER TABLE
1375ALTER TABLE
1376ALTER TABLE
1377ALTER TABLE
1378ALTER TABLE
1379ALTER TABLE
1380ALTER TABLE
1381ALTER TABLE
1382ALTER TABLE
1383ALTER TABLE
1384ALTER TABLE
1385ALTER TABLE
1386ALTER TABLE
1387ALTER TABLE
1388ALTER TABLE
1389ALTER TABLE
1390ALTER TABLE
1391ALTER TABLE
1392ALTER TABLE
1393ALTER TABLE
1394ALTER TABLE
1395ALTER TABLE
1396CREATE INDEX
1397CREATE INDEX
1398CREATE INDEX
1399CREATE INDEX
1400CREATE INDEX
1401CREATE INDEX
1402CREATE INDEX
1403CREATE INDEX
1404CREATE INDEX
1405CREATE INDEX
1406CREATE INDEX
1407CREATE INDEX
1408CREATE INDEX
1409CREATE INDEX
1410CREATE INDEX
1411CREATE INDEX
1412CREATE INDEX
1413CREATE INDEX
1414CREATE INDEX
1415CREATE INDEX
1416CREATE INDEX
1417CREATE INDEX
1418CREATE INDEX
1419CREATE INDEX
1420CREATE INDEX
1421CREATE INDEX
1422CREATE INDEX
1423CREATE INDEX
1424CREATE INDEX
1425CREATE INDEX
1426CREATE INDEX
1427CREATE INDEX
1428CREATE INDEX
1429CREATE INDEX
1430CREATE INDEX
1431CREATE INDEX
1432CREATE INDEX
1433CREATE INDEX
1434CREATE INDEX
1435CREATE INDEX
1436CREATE INDEX
1437CREATE INDEX
1438CREATE INDEX
1439CREATE INDEX
1440CREATE INDEX
1441CREATE INDEX
1442CREATE INDEX
1443CREATE INDEX
1444CREATE INDEX
1445CREATE INDEX
1446CREATE INDEX
1447CREATE INDEX
1448CREATE INDEX
1449CREATE INDEX
1450CREATE INDEX
1451CREATE INDEX
1452CREATE INDEX
1453CREATE INDEX
1454CREATE INDEX
1455CREATE INDEX
1456CREATE INDEX
1457CREATE INDEX
1458CREATE INDEX
1459CREATE INDEX
1460CREATE INDEX
1461CREATE INDEX
1462CREATE INDEX
1463CREATE INDEX
1464CREATE INDEX
1465CREATE INDEX
1466CREATE INDEX
1467CREATE INDEX
1468CREATE INDEX
1469CREATE INDEX
1470CREATE INDEX
1471CREATE INDEX
1472CREATE INDEX
1473CREATE INDEX
1474CREATE INDEX
1475CREATE INDEX
1476CREATE INDEX
1477CREATE INDEX
1478CREATE INDEX
1479CREATE INDEX
1480CREATE INDEX
1481CREATE INDEX
1482CREATE INDEX
1483CREATE INDEX
1484CREATE INDEX
1485CREATE INDEX
1486CREATE INDEX
1487CREATE INDEX
1488CREATE INDEX
1489CREATE INDEX
1490CREATE INDEX
1491CREATE INDEX
1492CREATE INDEX
1493CREATE INDEX
1494CREATE INDEX
1495CREATE INDEX
1496CREATE INDEX
1497CREATE INDEX
1498CREATE INDEX
1499CREATE INDEX
1500CREATE INDEX
1501CREATE INDEX
1502CREATE INDEX
1503CREATE INDEX
1504CREATE INDEX
1505CREATE INDEX
1506CREATE INDEX
1507CREATE INDEX
1508CREATE INDEX
1509CREATE INDEX
1510CREATE INDEX
1511CREATE INDEX
1512CREATE INDEX
1513CREATE INDEX
1514CREATE INDEX
1515CREATE INDEX
1516CREATE INDEX
1517CREATE INDEX
1518CREATE INDEX
1519CREATE INDEX
1520CREATE INDEX
1521CREATE INDEX
1522CREATE INDEX
1523CREATE INDEX
1524CREATE INDEX
1525CREATE INDEX
1526CREATE INDEX
1527CREATE INDEX
1528CREATE INDEX
1529CREATE INDEX
1530CREATE INDEX
1531CREATE INDEX
1532CREATE INDEX
1533CREATE INDEX
1534CREATE INDEX
1535CREATE INDEX
1536CREATE INDEX
1537CREATE INDEX
1538CREATE INDEX
1539CREATE INDEX
1540CREATE INDEX
1541CREATE INDEX
1542CREATE INDEX
1543CREATE INDEX
1544CREATE INDEX
1545CREATE INDEX
1546CREATE INDEX
1547CREATE INDEX
1548CREATE INDEX
1549CREATE INDEX
1550CREATE INDEX
1551CREATE INDEX
1552CREATE INDEX
1553CREATE INDEX
1554CREATE INDEX
1555CREATE INDEX
1556CREATE INDEX
1557CREATE INDEX
1558CREATE INDEX
1559CREATE INDEX
1560CREATE INDEX
1561CREATE INDEX
1562CREATE INDEX
1563CREATE INDEX
1564CREATE INDEX
1565CREATE INDEX
1566CREATE INDEX
1567CREATE INDEX
1568CREATE INDEX
1569CREATE INDEX
1570CREATE INDEX
1571CREATE INDEX
1572CREATE INDEX
1573CREATE INDEX
1574CREATE INDEX
1575CREATE INDEX
1576CREATE INDEX
1577CREATE INDEX
1578CREATE INDEX
1579CREATE INDEX
1580CREATE INDEX
1581CREATE INDEX
1582CREATE INDEX
1583CREATE INDEX
1584CREATE INDEX
1585CREATE INDEX
1586CREATE INDEX
1587CREATE INDEX
1588CREATE INDEX
1589CREATE INDEX
1590CREATE INDEX
1591CREATE INDEX
1592CREATE INDEX
1593CREATE INDEX
1594CREATE INDEX
1595CREATE INDEX
1596CREATE INDEX
1597CREATE INDEX
1598CREATE INDEX
1599CREATE INDEX
1600CREATE INDEX
1601CREATE INDEX
1602CREATE INDEX
1603CREATE INDEX
1604CREATE INDEX
1605CREATE TRIGGER
1606CREATE TRIGGER
1607CREATE TRIGGER
1608CREATE TRIGGER
1609CREATE TRIGGER
1610CREATE TRIGGER
1611CREATE TRIGGER
1612CREATE TRIGGER
1613CREATE TRIGGER
1614CREATE TRIGGER
1615CREATE TRIGGER
1616CREATE TRIGGER
1617CREATE TRIGGER
1618CREATE TRIGGER
1619CREATE TRIGGER
1620CREATE TRIGGER
1621CREATE TRIGGER
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
1655SET
1656INSERT 0 392
165739.50s$ bundle exec rspec spec
1659Repo counts
1660 before aggregation
1661 after aggregating per repo
1662 after aggregating all counts
1663 does not raise if repos are missing
1664 does not raise if builds are deleted before stages
1666set_updated_at trigger
1667Dropped database 'travis_test'
1668Created database 'travis_test'
1669== 201207261749 CreatePlans: migrating ========================================
1670-- create_table(:plans, {:id=>:integer})
1671 -> 0.0055s
1672== 201207261749 CreatePlans: migrated (0.0056s) ===============================
1674== 20101126174706 CreateRepositories: migrating ===============================
1675-- create_table(:repositories, {:id=>:integer})
1676 -> 0.0052s
1677== 20101126174706 CreateRepositories: migrated (0.0053s) ======================
1679== 20101126174715 CreateBuilds: migrating =====================================
1680-- create_table(:builds, {:id=>:integer})
1681 -> 0.0074s
1682== 20101126174715 CreateBuilds: migrated (0.0074s) ============================
1684== 20110109130532 DeviseCreateUsers: migrating ================================
1685-- create_table(:users, {:id=>:integer})
1686 -> 0.0049s
1687-- add_index(:users, :login, {:unique=>true})
1688 -> 0.0020s
1689== 20110109130532 DeviseCreateUsers: migrated (0.0070s) =======================
1691== 20110116155100 RepositoriesAddUsername: migrating ==========================
1692-- change_table(:repositories)
1693 -> 0.0007s
1694== 20110116155100 RepositoriesAddUsername: migrated (0.0008s) =================
1696== 20110130102621 CreateTokens: migrating =====================================
1697-- create_table(:tokens, {:id=>:integer})
1698 -> 0.0058s
1699== 20110130102621 CreateTokens: migrated (0.0058s) ============================
1701== 20110301071656 AddBuildParentIdAndConfiguration: migrating =================
1702-- change_table(:builds)
1703 -> 0.0012s
1704-- change_column(:builds, :number, :string)
1705 -> 0.0052s
1706-- add_index(:builds, :repository_id)
1707 -> 0.0023s
1708-- add_index(:builds, :parent_id)
1709 -> 0.0020s
1710== 20110301071656 AddBuildParentIdAndConfiguration: migrated (0.0113s) ========
1712== 20110316174721 RepositoriesDenormalizeLastBuildAttributes: migrating =======
1713-- change_table(:repositories)
1714 -> 0.0024s
1715== 20110316174721 RepositoriesDenormalizeLastBuildAttributes: migrated (0.0024s)
1717== 20110321075539 RepositoriesAddOwnerNameAndOwnerEmail: migrating ============
1718-- change_table(:repositories)
1719 -> 0.0014s
1720-- remove_column(:repositories, :username)
1721 -> 0.0003s
1722== 20110321075539 RepositoriesAddOwnerNameAndOwnerEmail: migrated (0.0018s) ===
1724== 20110411171936 CreateHistoriesTable: migrating =============================
1725-- create_table(:histories, {:id=>:integer})
1726 -> 0.0049s
1727-- add_index(:histories, [:item, :table, :month, :year])
1728 -> 0.0020s
1729== 20110411171936 CreateHistoriesTable: migrated (0.0070s) ====================
1731== 20110411171937 RenameHistoriesToRailsAdminHistories: migrating =============
1732-- remove_index(:histories, nil, {:name=>:index_histories_on_item_and_table_and_month_and_year})
1733 -> 0.0004s
1734-- rename_table(:histories, :rails_admin_histories)
1735 -> 0.0032s
1736-- add_index("rails_admin_histories", ["item", "table", "month", "year"], {:name=>"index_histories_on_item_and_table_and_month_and_year"})
1737 -> 0.0020s
1738== 20110411171937 RenameHistoriesToRailsAdminHistories: migrated (0.0069s) ====
1740== 20110411172518 AddAdminFlagToUser: migrating ===============================
1741-- change_table(:users)
1742 -> 0.0011s
1743== 20110411172518 AddAdminFlagToUser: migrated (0.0012s) ======================
1745== 20110413101057 BuildsAddRef: migrating =====================================
1746-- change_table(:builds)
1747 -> 0.0010s
1748== 20110413101057 BuildsAddRef: migrated (0.0011s) ============================
1750== 20110414131100 BuildsAddGithubPayload: migrating ===========================
1751-- change_table(:builds)
1752 -> 0.0006s
1753== 20110414131100 BuildsAddGithubPayload: migrated (0.0007s) ==================
1755== 20110503150504 AddGithubIdToUsersTable: migrating ==========================
1756-- add_column(:users, :github_id, :integer)
1757 -> 0.0006s
1758-- add_index(:users, :github_id)
1759 -> 0.0020s
1760== 20110503150504 AddGithubIdToUsersTable: migrated (0.0027s) =================
1762== 20110523012243 RepositoriesChangeOwnerEmailType: migrating =================
1763-- change_column(:repositories, :owner_email, :text)
1764 -> 0.0006s
1765== 20110523012243 RepositoriesChangeOwnerEmailType: migrated (0.0007s) ========
1767== 20110611203537 AddGithubOauthTokenToUser: migrating ========================
1768-- add_column(:users, :github_oauth_token, :string)
1769 -> 0.0008s
1770-- add_index(:users, :github_oauth_token)
1771 -> 0.0017s
1772== 20110611203537 AddGithubOauthTokenToUser: migrated (0.0025s) ===============
1774== 20110613210252 AddCompareUrlToBuild: migrating =============================
1775-- add_column(:builds, :compare_url, :string)
1776 -> 0.0006s
1777== 20110613210252 AddCompareUrlToBuild: migrated (0.0006s) ====================
1779== 20110615152003 BuildsRemoveJobId: migrating ================================
1780-- change_table(:builds)
1781 -> 0.0006s
1782== 20110615152003 BuildsRemoveJobId: migrated (0.0006s) =======================
1784== 20110616211744 BuildRemoveLastBuiltAt: migrating ===========================
1785-- change_table(:repositories)
1786 -> 0.0006s
1787== 20110616211744 BuildRemoveLastBuiltAt: migrated (0.0006s) ==================
1789== 20110617114728 AddMissingIndexes: migrating ================================
1790-- add_index(:repositories, :last_build_started_at)
1791 -> 0.0023s
1792-- add_index(:repositories, [:owner_name, :name])
1793 -> 0.0018s
1794-- add_index(:builds, [:repository_id, :parent_id, :started_at])
1795 -> 0.0019s
1796== 20110617114728 AddMissingIndexes: migrated (0.0061s) =======================
1798== 20110619100906 AddActiveToRepositories: migrating ==========================
1799-- add_column(:repositories, :is_active, :boolean)
1800 -> 0.0006s
1801== 20110619100906 AddActiveToRepositories: migrated (0.0006s) =================
1803== 20110729094426 StoreTokenInBuild: migrating ================================
1804-- add_column(:builds, :token, :string)
1805 -> 0.0006s
1806== 20110729094426 StoreTokenInBuild: migrated (0.0006s) =======================
1808== 20110801161819 CreateRequestsCommitsAndTasks: migrating ====================
1809-- change_table(:builds)
1810 -> 0.0014s
1811-- create_table(:commits, {:force=>true, :id=>:integer})
1812 -> 0.0050s
1813-- create_table(:requests, {:force=>true, :id=>:integer})
1814 -> 0.0049s
1815-- create_table(:tasks, {:force=>true, :id=>:integer})
1816 -> 0.0056s
1817-- add_index(:commits, :commit)
1818 -> 0.0018s
1819-- add_index(:builds, :commit)
1820 -> 0.0019s
1821-- add_index(:requests, :commit)
1822 -> 0.0019s
1823-- add_index(:tasks, :commit)
1824 -> 0.0019s
1825-- execute("UPDATE requests SET commit_id = (SELECT commits.id FROM commits WHERE commits.commit = requests.commit LIMIT 1)")
1826 -> 0.0006s
1827-- execute("UPDATE tasks SET commit_id = (SELECT commits.id FROM commits WHERE commits.commit = tasks.commit LIMIT 1)")
1828 -> 0.0004s
1829-- execute("DELETE FROM builds WHERE parent_id IS NOT NULL")
1830 -> 0.0005s
1831-- execute("UPDATE builds SET request_id = (SELECT requests.id FROM requests WHERE requests.commit = builds.commit LIMIT 1)")
1832 -> 0.0004s
1833-- execute("UPDATE builds SET commit_id = (SELECT commits.id FROM commits WHERE commits.commit = builds.commit LIMIT 1)")
1834 -> 0.0003s
1835-- execute("CREATE SEQUENCE shared_builds_tasks_seq CACHE 30")
1836 -> 0.0005s
1837-- execute("ALTER TABLE builds ALTER COLUMN id TYPE BIGINT")
1838 -> 0.0109s
1839-- execute("ALTER TABLE builds ALTER COLUMN id SET DEFAULT nextval('shared_builds_tasks_seq')")
1840 -> 0.0005s
1841-- execute("ALTER TABLE tasks ALTER COLUMN id TYPE BIGINT")
1842 -> 0.0064s
1843-- execute("ALTER TABLE tasks ALTER COLUMN id SET DEFAULT nextval('shared_builds_tasks_seq')")
1844 -> 0.0005s
1845-- select_value("SELECT max(id) FROM commits")
1846 -> 0.0006s
1847-- execute("SELECT setval('commits_id_seq', 1)")
1848 -> 0.0003s
1849-- select_value("SELECT max(id) FROM requests")
1850 -> 0.0004s
1851-- execute("SELECT setval('requests_id_seq', 1)")
1852 -> 0.0003s
1853-- select_value("SELECT max(id) FROM tasks")
1854 -> 0.0005s
1855-- execute("SELECT setval('tasks_id_seq', 1)")
1856 -> 0.0003s
1857-- remove_column(:builds, :parent_id)
1858 -> 0.0004s
1859-- remove_column(:builds, :commit)
1860 -> 0.0004s
1861-- remove_column(:requests, :commit)
1862 -> 0.0004s
1863-- remove_column(:tasks, :commit)
1864 -> 0.0004s
1865== 20110801161819 CreateRequestsCommitsAndTasks: migrated (0.0501s) ===========
1867== 20110805030147 RepositoryRenameIsActiveToActive: migrating =================
1868-- rename_column(:repositories, :is_active, :active)
1869 -> 0.0162s
1870== 20110805030147 RepositoryRenameIsActiveToActive: migrated (0.0167s) ========
1872== 20110819232908 TasksAddTags: migrating =====================================
1873-- add_column(:tasks, :tags, :text)
1874 -> 0.0008s
1875== 20110819232908 TasksAddTags: migrated (0.0009s) ============================
1877== 20110911204538 CacheOneNumberForSharedBuildsTasksSequence: migrating =======
1878-- execute("ALTER SEQUENCE shared_builds_tasks_seq CACHE 1 NO MAXVALUE NO CYCLE")
1879 -> 0.0007s
1880== 20110911204538 CacheOneNumberForSharedBuildsTasksSequence: migrated (0.0008s)
1882== 20111107134436 RenameTasksToJobs: migrating ================================
1883-- rename_table(:tasks, :jobs)
1884 -> 0.0051s
1885-- execute("UPDATE jobs SET type = 'Job::Test' WHERE type = 'Task::Test'")
1886 -> 0.0005s
1887-- execute("UPDATE jobs SET type = 'Job::Configure' WHERE type = 'Task::Configure'")
1888 -> 0.0004s
1889== 20111107134436 RenameTasksToJobs: migrated (0.0075s) =======================
1891== 20111107134437 CreateArtifacts: migrating ==================================
1892-- create_table(:artifacts, {:id=>:integer})
1893 -> 0.0067s
1894-- execute("UPDATE artifacts SET job_id = id")
1895 -> 0.0004s
1896-- execute("select setval('artifacts_id_seq', (select max(id) + 1 from artifacts));")
1897 -> 0.0004s
1898-- add_index(:artifacts, [:type, :job_id])
1899 -> 0.0020s
1900== 20111107134437 CreateArtifacts: migrated (0.0098s) =========================
1902== 20111107134438 CreateWorkers: migrating ====================================
1903-- create_table(:workers, {:id=>:integer})
1904 -> 0.0057s
1905-- add_index(:workers, [:name, :host])
1906 -> 0.0022s
1907== 20111107134438 CreateWorkers: migrated (0.0080s) ===========================
1909== 20111107134439 JobsAddRetries: migrating ===================================
1910-- change_table(:jobs)
1911 -> 0.0014s
1912== 20111107134439 JobsAddRetries: migrated (0.0014s) ==========================
1914== 20111107134440 RemoveRailsAdmin: migrating =================================
1915-- drop_table(:rails_admin_histories)
1916 -> 0.0014s
1917== 20111107134440 RemoveRailsAdmin: migrated (0.0015s) ========================
1919== 20111128235043 AddIndexesToJobs: migrating =================================
1920-- add_index(:jobs, [:queue, :state])
1921 -> 0.0026s
1922== 20111128235043 AddIndexesToJobs: migrated (0.0027s) ========================
1924== 20111129014329 AddRepositoryIdIndexToJobs: migrating =======================
1925-- add_index(:jobs, :repository_id)
1926 -> 0.0026s
1927== 20111129014329 AddRepositoryIdIndexToJobs: migrated (0.0026s) ==============
1929== 20111129022625 AddOwnerAndTypeIndexToJobs: migrating =======================
1930-- add_index(:jobs, [:type, :owner_id, :owner_type])
1931 -> 0.0027s
1932== 20111129022625 AddOwnerAndTypeIndexToJobs: migrated (0.0028s) ==============
1934== 20111201113500 WorkersAddPayloadAndLastError: migrating ====================
1935-- change_table(:workers)
1936 -> 0.0016s
1937== 20111201113500 WorkersAddPayloadAndLastError: migrated (0.0017s) ===========
1939== 20111203002341 RepositoriesAddDescriptionAndLastLanguage: migrating ========
1940-- change_table(:repositories)
1941 -> 0.0015s
1942-- change_table(:builds)
1943 -> 0.0006s
1944== 20111203002341 RepositoriesAddDescriptionAndLastLanguage: migrated (0.0022s)
1946== 20111203221720 BuildsAddArchivedAt: migrating ==============================
1947-- change_table(:builds)
1948 -> 0.0009s
1949== 20111203221720 BuildsAddArchivedAt: migrated (0.0010s) =====================
1951== 20111207093700 MimicProductionDb: migrating ================================
1952-- column_exists?(:users, :oauth2_uid, :integer)
1953 -> 0.0030s
1954-- column_exists?(:users, :oauth2_token, :string)
1955 -> 0.0019s
1956-- column_exists?(:repositories, :user_id, :integer)
1957 -> 0.0025s
1958== 20111207093700 MimicProductionDb: migrated (0.0075s) =======================
1960== 20111212103859 BuildsAddDuration: migrating ================================
1961-- change_table(:builds)
1962 -> 0.0010s
1963== 20111212103859 BuildsAddDuration: migrated (0.0011s) =======================
1965== 20111212112411 RepositoriesAddLastBuildDuration: migrating =================
1966-- change_table(:repositories)
1967 -> 0.0009s
1968== 20111212112411 RepositoriesAddLastBuildDuration: migrated (0.0010s) ========
1970== 20111214173922 CreateSslKeys: migrating ====================================
1971-- create_table(:ssl_keys, {:id=>:integer})
1972 -> 0.0050s
1973-- add_index("ssl_keys", ["repository_id"], {:name=>"index_ssl_key_on_repository_id"})
1974 -> 0.0020s
1975== 20111214173922 CreateSslKeys: migrated (0.0072s) ===========================
1977== 20120114125404 AddAllowFailureToJobs: migrating ============================
1978-- add_column(:jobs, :allow_failure, :boolean, {:default=>false})
1979 -> 0.0010s
1980== 20120114125404 AddAllowFailureToJobs: migrated (0.0010s) ===================
1982== 20120216133223 AddPullRequestFieldsToRequest: migrating ====================
1983-- add_column(:requests, :event_type, :string)
1984 -> 0.0006s
1985-- add_column(:requests, :comments_url, :string)
1986 -> 0.0004s
1987-- add_column(:requests, :base_commit, :string)
1988 -> 0.0004s
1989-- add_column(:requests, :head_commit, :string)
1990 -> 0.0004s
1991== 20120216133223 AddPullRequestFieldsToRequest: migrated (0.0018s) ===========
1993== 20120222082522 AddGravatarIdToUsers: migrating =============================
1994-- add_column(:users, :gravatar_id, :string)
1995 -> 0.0007s
1996== 20120222082522 AddGravatarIdToUsers: migrated (0.0007s) ====================
1998== 20120301131209 OrganizationsCreate: migrating ==============================
1999-- create_table(:organizations, {:id=>:integer})
2000 -> 0.0049s
2001== 20120301131209 OrganizationsCreate: migrated (0.0049s) =====================
2003== 20120304000502 JobsRenameOwnerToSource: migrating ==========================
2004-- change_table(:jobs)
2005 -> 0.0056s
2006== 20120304000502 JobsRenameOwnerToSource: migrated (0.0056s) =================
2008== 20120304000503 RepositoriesAddOwner: migrating =============================
2009-- change_table(:repositories)
2010 -> 0.0011s
2011== 20120304000503 RepositoriesAddOwner: migrated (0.0011s) ====================
2013== 20120304000504 BuildsAddOwner: migrating ===================================
2014-- change_table(:builds)
2015 -> 0.0010s
2016== 20120304000504 BuildsAddOwner: migrated (0.0010s) ==========================
2018== 20120304000505 JobsAddOwner: migrating =====================================
2019-- change_table(:jobs)
2020 -> 0.0010s
2021== 20120304000505 JobsAddOwner: migrated (0.0010s) ============================
2023== 20120304000506 RequestsAddOwner: migrating =================================
2024-- change_table(:requests)
2025 -> 0.0011s
2026== 20120304000506 RequestsAddOwner: migrated (0.0011s) ========================
2028== 20120311234933 AddLocaleToUser: migrating ==================================
2029-- add_column(:users, :locale, :string)
2030 -> 0.0006s
2031== 20120311234933 AddLocaleToUser: migrated (0.0006s) =========================
2033== 20120316123726 CreateMemberships: migrating ================================
2034-- create_table(:memberships, {:id=>:integer})
2035 -> 0.0032s
2036== 20120316123726 CreateMemberships: migrated (0.0032s) =======================
2038== 20120319170001 RepositoriesAddPrivate: migrating ===========================
2039-- change_table(:repositories)
2040 -> 0.0010s
2041== 20120319170001 RepositoriesAddPrivate: migrated (0.0010s) ==================
2043== 20120324104051 CreateUrls: migrating =======================================
2044-- create_table(:urls, {:id=>:integer})
2045 -> 0.0051s
2046== 20120324104051 CreateUrls: migrated (0.0052s) ==============================
2048== 20120505165100 CopyStatusToResult: migrating ===============================
2049-- add_column(:builds, :result, :integer)
2050 -> 0.0006s
2051-- add_column(:jobs, :result, :integer)
2052 -> 0.0004s
2053-- add_column(:repositories, :last_build_result, :integer)
2054 -> 0.0004s
2055Executing: UPDATE builds SET result = status;
2056Executing: UPDATE jobs SET result = status;
2057Executing: UPDATE repositories SET last_build_result = last_build_status;
2058== 20120505165100 CopyStatusToResult: migrated (0.0028s) ======================
2060== 20120511171900 RequestsAddIndexOnHeadCommit: migrating =====================
2061-- add_index(:requests, :head_commit)
2062 -> 0.0023s
2063== 20120511171900 RequestsAddIndexOnHeadCommit: migrated (0.0023s) ============
2065== 20120521174400 CreatePermissions: migrating ================================
2066-- create_table(:permissions, {:id=>:integer})
2067 -> 0.0051s
2068-- add_index(:permissions, :user_id)
2069 -> 0.0021s
2070-- add_index(:permissions, :repository_id)
2071 -> 0.0019s
2072== 20120521174400 CreatePermissions: migrated (0.0093s) =======================
2074== 20120527235800 BuildsAddPreviousResult: migrating ==========================
2075-- change_table(:builds)
2076 -> 0.0010s
2077== 20120527235800 BuildsAddPreviousResult: migrated (0.0011s) =================
2079== 20120702111126 CreateSubscriptions: migrating ==============================
2080-- create_table(:subscriptions, {:id=>:integer})
2081 -> 0.0067s
2082== 20120702111126 CreateSubscriptions: migrated (0.0068s) =====================
2084== 20120703114226 AddBillingEmailCreditCardDataToSubscriptions: migrating =====
2085-- change_table(:subscriptions)
2086 -> 0.0027s
2087== 20120703114226 AddBillingEmailCreditCardDataToSubscriptions: migrated (0.0027s)
2089== 20120713140816 AddSyncInfoToUser: migrating ================================
2090-- add_column(:users, :in_sync, :boolean)
2091 -> 0.0009s
2092-- add_column(:users, :synced_at, :timestamp)
2093 -> 0.0006s
2094== 20120713140816 AddSyncInfoToUser: migrated (0.0015s) =======================
2096== 20120713153215 RenameInSyncToIsSyncing: migrating ==========================
2097-- rename_column(:users, :in_sync, :is_syncing)
2098 -> 0.0035s
2099== 20120713153215 RenameInSyncToIsSyncing: migrated (0.0036s) =================
2101== 20120725005300 AddQueueToWorkers: migrating ================================
2102-- add_column(:workers, :queue, :string)
2103 -> 0.0009s
2104== 20120725005300 AddQueueToWorkers: migrated (0.0010s) =======================
2106== 20120727151900 AddJobsIndexOnStateOwnerTypeOwnerId: migrating ==============
2107-- add_index(:jobs, ["state", "owner_id", "owner_type"], {:name=>"index_jobs_on_state_owner_type_owner_id"})
2108 -> 0.0062s
2109== 20120727151900 AddJobsIndexOnStateOwnerTypeOwnerId: migrated (0.0063s) =====
2111== 20120731005301 AddQueuedAtToJobs: migrating ================================
2112-- add_column(:jobs, :queued_at, :timestamp, {:precision=>nil})
2113 -> 0.0025s
2114== 20120731005301 AddQueuedAtToJobs: migrated (0.0029s) =======================
2116== 20120731074000 AddAmountToPlans: migrating =================================
2117-- change_table(:plans)
2118 -> 0.0027s
2119== 20120731074000 AddAmountToPlans: migrated (0.0031s) ========================
2121== 20120802001001 AddPushAndPullToPermissions: migrating ======================
2122-- add_column(:permissions, :push, :boolean, {:default=>false})
2123 -> 0.0032s
2124-- add_column(:permissions, :pull, :boolean, {:default=>false})
2125 -> 0.0023s
2126-- change_column_default(:permissions, :admin, false)
2127 -> 0.0043s
2128== 20120802001001 AddPushAndPullToPermissions: migrated (0.0106s) =============
2130== 20120803164000 CreateInvoices: migrating ===================================
2131-- create_table(:invoices, {:id=>:integer})
2132 -> 0.0085s
2133== 20120803164000 CreateInvoices: migrated (0.0086s) ==========================
2135== 20120803182300 AddInvoiceIdToInvoices: migrating ===========================
2136-- change_table(:invoices)
2137 -> 0.0024s
2138== 20120803182300 AddInvoiceIdToInvoices: migrated (0.0025s) ==================
2140== 20120804122700 AddStripeInvoiceIdToInvoices: migrating =====================
2141-- change_table(:invoices)
2142 -> 0.0007s
2143-- add_index(:invoices, :stripe_id)
2144 -> 0.0019s
2145== 20120804122700 AddStripeInvoiceIdToInvoices: migrated (0.0026s) ============
2147== 20120806120400 AddPlanToSubscriptions: migrating ===========================
2148-- change_table(:subscriptions)
2149 -> 0.0007s
2150== 20120806120400 AddPlanToSubscriptions: migrated (0.0007s) ==================
2152== 20120820164000 RenamePlanOnSubscriptions: migrating ========================
2153-- change_table(:subscriptions)
2154 -> 0.0012s
2155== 20120820164000 RenamePlanOnSubscriptions: migrated (0.0013s) ===============
2157== 20120905093300 CreateStripeEvents: migrating ===============================
2158-- create_table(:stripe_events, {:id=>:integer})
2159 -> 0.0046s
2160-- add_index(:stripe_events, :event_type)
2161 -> 0.0018s
2162-- add_index(:stripe_events, :date)
2163 -> 0.0017s
2164== 20120905093300 CreateStripeEvents: migrated (0.0081s) ======================
2166== 20120905171300 AddEventIdToStripeEvents: migrating =========================
2167-- change_table(:stripe_events)
2168 -> 0.0006s
2169-- add_index(:stripe_events, :event_id)
2170 -> 0.0018s
2171== 20120905171300 AddEventIdToStripeEvents: migrated (0.0025s) ================
2173== 20120911160000 AddBuildsIndexOnRepositoryIdAndState: migrating =============
2174-- remove_index("builds", nil, {:column=>"repository_id", :name=>"index_builds_on_repository_id"})
2175 -> 0.0016s
2176-- add_index("builds", ["repository_id", "state"])
2177 -> 0.0021s
2178== 20120911160000 AddBuildsIndexOnRepositoryIdAndState: migrated (0.0047s) ====
2180== 20120911230000 ArtifactsAddAggregatedAt: migrating =========================
2181-- add_column(:artifacts, :aggregated_at, :timestamp, {:precision=>nil})
2182 -> 0.0006s
2183== 20120911230000 ArtifactsAddAggregatedAt: migrated (0.0007s) ================
2185== 20120911230001 AddArtifactParts: migrating =================================
2186-- create_table(:artifact_parts, {:id=>:integer})
2187 -> 0.0047s
2188-- add_index(:artifact_parts, [:artifact_id, :number])
2189 -> 0.0021s
2190== 20120911230001 AddArtifactParts: migrated (0.0068s) ========================
2192== 20120913143800 AddSubscriptionsCoupon: migrating ===========================
2193-- change_table(:subscriptions)
2194 -> 0.0007s
2195== 20120913143800 AddSubscriptionsCoupon: migrated (0.0007s) ==================
2197== 20120915012000 BuildsAddIndexOnFinishedAt: migrating =======================
2198-- add_index("builds", "finished_at")
2199 -> 0.0023s
2200== 20120915012000 BuildsAddIndexOnFinishedAt: migrated (0.0023s) ==============
2202== 20120915012001 CommitsAddIndexOnBranch: migrating ==========================
2203-- add_index("commits", "branch")
2204 -> 0.0022s
2205== 20120915012001 CommitsAddIndexOnBranch: migrated (0.0022s) =================
2207== 20120915150000 JobsAddIndexOnCreatedAt: migrating ==========================
2208-- add_index("jobs", "created_at")
2209 -> 0.0022s
2210== 20120915150000 JobsAddIndexOnCreatedAt: migrated (0.0023s) =================
2212== 20121015002500 CreateEvents: migrating =====================================
2213-- create_table(:events, {:id=>:integer})
2214 -> 0.0050s
2215== 20121015002500 CreateEvents: migrated (0.0051s) ============================
2217== 20121015002501 RequestsAddResultAndMessage: migrating ======================
2218-- add_column(:requests, :result, :string)
2219 -> 0.0006s
2220-- add_column(:requests, :message, :string)
2221 -> 0.0004s
2222== 20121015002501 RequestsAddResultAndMessage: migrated (0.0011s) =============
2224== 20121017040100 CreateBroadcasts: migrating =================================
2225-- create_table(:broadcasts, {:id=>:integer})
2226 -> 0.0046s
2227== 20121017040100 CreateBroadcasts: migrated (0.0047s) ========================
2229== 20121017040200 EventsChangeDataToText: migrating ===========================
2230-- change_column(:events, :data, :text)
2231 -> 0.0006s
2232== 20121017040200 EventsChangeDataToText: migrated (0.0007s) ==================
2234== 20121018201301 AddEventTypeToBuilds: migrating =============================
2235-- add_column(:builds, :event_type, :string)
2236 -> 0.0006s
2237== 20121018201301 AddEventTypeToBuilds: migrated (0.0006s) ====================
2239== 20121018203728 UpdateEventTypeOnBuilds: migrating ==========================
2240-- execute(" UPDATE builds\n SET event_type = requests.event_type\n FROM requests\n WHERE builds.request_id = requests.id\n")
2241 -> 0.0008s
2242== 20121018203728 UpdateEventTypeOnBuilds: migrated (0.0009s) =================
2244== 20121018210156 AddIndexOnRepositoryIdAndEventTypeToBuilds: migrating =======
2245-- add_index(:builds, [:repository_id, :event_type])
2246 -> 0.0034s
2247== 20121018210156 AddIndexOnRepositoryIdAndEventTypeToBuilds: migrated (0.0034s)
2249== 20121125122700 RepositoriesAddLastBuildState: migrating ====================
2250-- add_column(:repositories, :last_build_state, :string)
2251 -> 0.0006s
2252== 20121125122700 RepositoriesAddLastBuildState: migrated (0.0007s) ===========
2254== 20121125122701 BuildsAddPreviousState: migrating ===========================
2255-- add_column(:builds, :previous_state, :string)
2256 -> 0.0006s
2257== 20121125122701 BuildsAddPreviousState: migrated (0.0006s) ==================
2259== 20121222125200 ArtifactPartsAddFinal: migrating ============================
2260-- add_column(:artifact_parts, :final, :boolean)
2261 -> 0.0020s
2262-- add_column(:artifact_parts, :created_at, :timestamp)
2263 -> 0.0015s
2264== 20121222125200 ArtifactPartsAddFinal: migrated (0.0038s) ===================
2266== 20121222125300 ArtifactPartsChangeContentToText: migrating =================
2267-- change_column(:artifact_parts, :content, :text)
2268 -> 0.0015s
2269== 20121222125300 ArtifactPartsChangeContentToText: migrated (0.0018s) ========
2271== 20121222140200 ArtifactPartsAddIndexOnArtifactId: migrating ================
2272-- add_index(:artifact_parts, :artifact_id)
2273 -> 0.0040s
2274== 20121222140200 ArtifactPartsAddIndexOnArtifactId: migrated (0.0042s) =======
2276== 20121223162300 ArtifactPartsRemoveIndexOnArtifactId: migrating =============
2277-- remove_index(:artifact_parts, :artifact_id, {:name=>"index_artifact_parts_on_artifact_id"})
2278 -> 0.0059s
2279== 20121223162300 ArtifactPartsRemoveIndexOnArtifactId: migrated (0.0084s) ====
2281== 20130107165057 AddGithubScopesToUser: migrating ============================
2282-- add_column(:users, :github_scopes, :text)
2283 -> 0.0023s
2284== 20130107165057 AddGithubScopesToUser: migrated (0.0027s) ===================
2286== 20130115125836 AddIndexOnLastSeenAtToWorkers: migrating ====================
2287-- add_index(:workers, :last_seen_at)
2288 -> 0.0033s
2289== 20130115125836 AddIndexOnLastSeenAtToWorkers: migrated (0.0034s) ===========
2291== 20130115145728 CacheFullNameInWorkers: migrating ===========================
2292-- add_column(:workers, :full_name, :string)
2293 -> 0.0027s
2294-- add_index(:workers, :full_name)
2295 -> 0.0029s
2296== 20130115145728 CacheFullNameInWorkers: migrated (0.0058s) ==================
2298== 20130125002600 ArtifactsAddArchivedAt: migrating ===========================
2299-- add_column(:artifacts, :archived_at, :timestamp, {:precision=>nil})
2300 -> 0.0009s
2301-- add_index(:artifacts, :archived_at)
2302 -> 0.0023s
2303== 20130125002600 ArtifactsAddArchivedAt: migrated (0.0035s) ==================
2305== 20130125171100 ArtifactsAddArchivingAndVerified: migrating =================
2306-- add_column(:artifacts, :archiving, :boolean)
2307 -> 0.0007s
2308-- add_column(:artifacts, :archive_verified, :boolean)
2309 -> 0.0004s
2310-- add_index(:artifacts, :archiving)
2311 -> 0.0020s
2312-- add_index(:artifacts, :archive_verified)
2313 -> 0.0034s
2314== 20130125171100 ArtifactsAddArchivingAndVerified: migrated (0.0066s) ========
2316== 20130129142703 CreateEmails: migrating =====================================
2317-- create_table(:emails, {:id=>:integer})
2318 -> 0.0045s
2319-- add_index(:emails, :user_id)
2320 -> 0.0017s
2321-- add_index(:emails, :email)
2322 -> 0.0018s
2323== 20130129142703 CreateEmails: migrated (0.0081s) ============================
2325== 20130208135800 RenameArtifacts: migrating ==================================
2326-- rename_table(:artifacts, :artifacts_backup)
2327 -> 0.0058s
2328-- rename_table(:artifact_parts, :artifact_parts_backup)
2329 -> 0.0072s
2330== 20130208135800 RenameArtifacts: migrated (0.0131s) =========================
2332== 20130208135801 DropArtifacts: migrating ====================================
2333-- drop_table(:artifacts_backup)
2334 -> 0.0012s
2335-- drop_table(:artifact_parts_backup)
2336 -> 0.0007s
2337== 20130208135801 DropArtifacts: migrated (0.0019s) ===========================
2339== 20130306154311 CreatePgcryptoExtension: migrating ==========================
2340-- execute("create extension if not exists pgcrypto")
2341 -> 0.0037s
2342== 20130306154311 CreatePgcryptoExtension: migrated (0.0037s) =================
2344== 20130311211101 AddPullRequestTitleToBuilds: migrating ======================
2345-- add_column(:builds, :pull_request_title, :text)
2346 -> 0.0007s
2347== 20130311211101 AddPullRequestTitleToBuilds: migrated (0.0008s) =============
2349== 20130327100801 AddPullRequestNumberToBuilds: migrating =====================
2350-- add_column(:builds, :pull_request_number, :integer)
2351 -> 0.0006s
2352== 20130327100801 AddPullRequestNumberToBuilds: migrated (0.0007s) ============
2354== 20130418101437 AddIndexToBuildsRequestId: migrating ========================
2355-- execute("CREATE INDEX CONCURRENTLY index_builds_on_request_id ON builds(request_id)")
2356 -> 0.0037s
2357== 20130418101437 AddIndexToBuildsRequestId: migrated (0.0038s) ===============
2359== 20130418103306 AddIndexToJobsOnOwnerIdOwnerTypeAndState: migrating =========
2360-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_id_and_owner_type_and_state ON jobs(owner_id, owner_type, state)")
2361 -> 0.0036s
2362== 20130418103306 AddIndexToJobsOnOwnerIdOwnerTypeAndState: migrated (0.0036s)
2364== 20130505023259 AddMoreIndexesToBuilds: migrating ===========================
2365-- 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")
2366 -> 0.0047s
2367== 20130505023259 AddMoreIndexesToBuilds: migrated (0.0047s) ==================
2369== 20130521115725 AddIndexOnBuildState: migrating =============================
2370-- execute(" CREATE INDEX CONCURRENTLY index_builds_on_state\n ON builds(state);\n")
2371 -> 0.0036s
2372== 20130521115725 AddIndexOnBuildState: migrated (0.0037s) ====================
2374== 20130521133050 UpdateFinishedJobs: migrating ===============================
2375-- execute("UPDATE jobs SET state = 'passed' WHERE state = 'finished' AND result = 0 AND type = 'Job::Test'")
2376 -> 0.0007s
2377-- execute("UPDATE jobs SET state = 'failed' WHERE state = 'finished' AND result = 1 AND type = 'Job::Test'")
2378 -> 0.0003s
2379-- execute("UPDATE jobs SET state = 'errored' WHERE state = 'finished' AND result IS NULL AND type = 'Job::Test'")
2380 -> 0.0003s
2381-- execute("SELECT COUNT(*) FROM jobs WHERE state = 'finished' AND type = 'Job::Test'")
2382 -> 0.0003s
2383== 20130521133050 UpdateFinishedJobs: migrated (0.0018s) ======================
2385== 20130521134224 UpdateFinishedBuilds: migrating =============================
2386-- execute("UPDATE builds SET state = 'passed' WHERE state = 'finished' AND result = 0")
2387 -> 0.0007s
2388-- execute("UPDATE builds SET state = 'failed' WHERE state = 'finished' AND result = 1")
2389 -> 0.0003s
2390-- execute("UPDATE builds SET state = 'errored' WHERE state = 'finished' AND result IS NULL")
2391 -> 0.0003s
2392-- execute("SELECT COUNT(*) FROM builds WHERE state = 'finished'")
2393 -> 0.0003s
2394== 20130521134224 UpdateFinishedBuilds: migrated (0.0017s) ====================
2396== 20130521134800 RemoveUnusedBuildColumns: migrating =========================
2397-- remove_column(:builds, :result)
2398 -> 0.0005s
2399-- remove_column(:builds, :status)
2400 -> 0.0003s
2401-- remove_column(:builds, :previous_result)
2402 -> 0.0003s
2403-- remove_column(:builds, :agent)
2404 -> 0.0003s
2405-- remove_column(:builds, :language)
2406 -> 0.0003s
2407-- remove_column(:builds, :archived_at)
2408 -> 0.0003s
2409== 20130521134800 RemoveUnusedBuildColumns: migrated (0.0022s) ================
2411== 20130521141357 RemoveUnusedJobColumns: migrating ===========================
2412-- remove_column(:jobs, :status)
2413 -> 0.0006s
2414-- remove_column(:jobs, :job_id)
2415 -> 0.0003s
2416-- remove_column(:jobs, :retries)
2417 -> 0.0004s
2418== 20130521141357 RemoveUnusedJobColumns: migrated (0.0014s) ==================
2420== 20130618084205 AddCoupons: migrating =======================================
2421-- create_table(:coupons, {:id=>:integer})
2422 -> 0.0054s
2423== 20130618084205 AddCoupons: migrated (0.0054s) ==============================
2425== 20130629122945 AddGithubIdToUsers: migrating ===============================
2426-- add_column(:repositories, :github_id, :integer)
2427 -> 0.0007s
2428-- add_index(:repositories, :github_id)
2429 -> 0.0023s
2430== 20130629122945 AddGithubIdToUsers: migrated (0.0030s) ======================
2432== 20130629133531 AddDefaultBranchToRepositories: migrating ===================
2433-- add_column(:repositories, :default_branch, :string)
2434 -> 0.0007s
2435== 20130629133531 AddDefaultBranchToRepositories: migrated (0.0007s) ==========
2437== 20130629174449 AddGithubLanguageToRepositories: migrating ==================
2438-- add_column(:repositories, :github_language, :string)
2439 -> 0.0006s
2440== 20130629174449 AddGithubLanguageToRepositories: migrated (0.0007s) =========
2442== 20130701175200 AddContactIdToSubscriptions: migrating ======================
2443-- change_table(:subscriptions)
2444 -> 0.0009s
2445== 20130701175200 AddContactIdToSubscriptions: migrated (0.0010s) =============
2447== 20130702123456 RemoveUnusedRepositoryColumns: migrating ====================
2448-- remove_column(:repositories, :last_duration)
2449 -> 0.0025s
2450-- remove_column(:repositories, :last_build_status)
2451 -> 0.0012s
2452-- remove_column(:repositories, :last_build_result)
2453 -> 0.0011s
2454-- remove_column(:repositories, :last_build_language)
2455 -> 0.0009s
2456== 20130702123456 RemoveUnusedRepositoryColumns: migrated (0.0062s) ===========
2458== 20130702144325 AddUniqueIndexOnUsersGithubIdAndRemoveUniqueIndexOnUsersLogin: migrating
2459-- execute("DROP INDEX index_users_on_login")
2460 -> 0.0015s
2461-- execute("CREATE INDEX CONCURRENTLY index_users_on_login ON users(login)")
2462 -> 0.0038s
2463-- execute("DROP INDEX index_users_on_github_id")
2464 -> 0.0011s
2465-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_github_id ON users(github_id)")
2466 -> 0.0046s
2467== 20130702144325 AddUniqueIndexOnUsersGithubIdAndRemoveUniqueIndexOnUsersLogin: migrated (0.0115s)
2469== 20130705123456 AddExtraColumnsToOrganizations: migrating ===================
2470-- add_column(:organizations, :avatar_url, :string)
2471 -> 0.0010s
2472-- add_column(:organizations, :location, :string)
2473 -> 0.0005s
2474-- add_column(:organizations, :email, :string)
2475 -> 0.0009s
2476-- add_column(:organizations, :company, :string)
2477 -> 0.0013s
2478-- add_column(:organizations, :homepage, :string)
2479 -> 0.0015s
2480== 20130705123456 AddExtraColumnsToOrganizations: migrated (0.0058s) ==========
2482== 20130707164854 AddIndexOnGithubIdToOrganizations: migrating ================
2483-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organizations_on_github_id ON organizations(github_id)")
2484 -> 0.0038s
2485== 20130707164854 AddIndexOnGithubIdToOrganizations: migrated (0.0038s) =======
2487== 20130709185200 CreateAnnotations: migrating ================================
2488-- create_table(:annotations, {:id=>:integer})
2489 -> 0.0059s
2490== 20130709185200 CreateAnnotations: migrated (0.0059s) =======================
2492== 20130709233500 CreateAnnotationProviders: migrating ========================
2493-- create_table(:annotation_providers, {:id=>:integer})
2494 -> 0.0065s
2495== 20130709233500 CreateAnnotationProviders: migrated (0.0066s) ===============
2497== 20130710000745 AddAnnotationProviderIdToAnnotations: migrating =============
2498-- add_column(:annotations, :annotation_provider_id, :integer, {:null=>false})
2499 -> 0.0008s
2500== 20130710000745 AddAnnotationProviderIdToAnnotations: migrated (0.0008s) ====
2502== 20130726101124 AddCanceledAtToJobsAndBuilds: migrating =====================
2503-- add_column(:builds, :canceled_at, :timestamp, {:precision=>nil})
2504 -> 0.0008s
2505-- add_column(:jobs, :canceled_at, :timestamp, {:precision=>nil})
2506 -> 0.0005s
2507== 20130726101124 AddCanceledAtToJobsAndBuilds: migrated (0.0013s) ============
2509== 20130901183019 AddIndexOnRepositoryGithubId: migrating =====================
2510-- execute("DROP INDEX index_repositories_on_github_id")
2511 -> 0.0010s
2512-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_github_id ON repositories(github_id)")
2513 -> 0.0032s
2514== 20130901183019 AddIndexOnRepositoryGithubId: migrated (0.0043s) ============
2516== 20130909203321 AddCachedMatrixIdsToBuilds: migrating =======================
2517-- execute("ALTER TABLE builds ADD COLUMN cached_matrix_ids integer[]")
2518 -> 0.0005s
2519== 20130909203321 AddCachedMatrixIdsToBuilds: migrated (0.0006s) ==============
2521== 20130910184823 CreateIndexOnBuildsIdDescAndRepositoryIdAndEventType: migrating
2522-- execute("CREATE INDEX CONCURRENTLY index_builds_on_id_repository_id_and_event_type_desc ON builds (id DESC, repository_id, event_type);")
2523 -> 0.0036s
2524== 20130910184823 CreateIndexOnBuildsIdDescAndRepositoryIdAndEventType: migrated (0.0036s)
2526== 20130916101056 AddUniqueIndexOnRepositoryGithubId: migrating ===============
2527-- execute("DROP INDEX index_repositories_on_github_id")
2528 -> 0.0009s
2529-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_repositories_on_github_id ON repositories(github_id)")
2530 -> 0.0032s
2531== 20130916101056 AddUniqueIndexOnRepositoryGithubId: migrated (0.0041s) ======
2533== 20130920135744 AddSettingsToRepositories: migrating ========================
2534-- add_column(:repositories, :settings, :json)
2535 -> 0.0007s
2536== 20130920135744 AddSettingsToRepositories: migrated (0.0008s) ===============
2538== 20131104101056 RemoveWorkersTableAndIndexes: migrating =====================
2539-- drop_table(:workers)
2540 -> 0.0010s
2541== 20131104101056 RemoveWorkersTableAndIndexes: migrated (0.0011s) ============
2543== 20131109101056 RemoveEventsTable: migrating ================================
2544-- drop_table(:events)
2545 -> 0.0009s
2546== 20131109101056 RemoveEventsTable: migrated (0.0009s) =======================
2548== 20140120225125 RemoveAnnotationImageInfo: migrating ========================
2549-- remove_column(:annotations, :image_url)
2550 -> 0.0006s
2551-- remove_column(:annotations, :image_alt)
2552 -> 0.0003s
2553== 20140120225125 RemoveAnnotationImageInfo: migrated (0.0009s) ===============
2555== 20140121003026 AddStatusToAnnotations: migrating ===========================
2556-- add_column(:annotations, :status, :string)
2557 -> 0.0006s
2558== 20140121003026 AddStatusToAnnotations: migrated (0.0006s) ==================
2560== 20140204220926 AddIndicesToRequests: migrating =============================
2561-- execute("CREATE INDEX CONCURRENTLY index_requests_on_repository_id ON requests(repository_id)")
2562 -> 0.0035s
2563-- execute("CREATE INDEX CONCURRENTLY index_requests_on_commit_id ON requests(commit_id)")
2564 -> 0.0033s
2565== 20140204220926 AddIndicesToRequests: migrated (0.0068s) ====================
2567== 20140210003014 AddIndicesToMemberships: migrating ==========================
2568-- execute("CREATE INDEX CONCURRENTLY index_memberships_on_user_id ON memberships(user_id)")
2569 -> 0.0042s
2570== 20140210003014 AddIndicesToMemberships: migrated (0.0043s) =================
2572== 20140210012509 RemoveUnusedIndices: migrating ==============================
2573-- execute("DROP INDEX CONCURRENTLY index_commits_on_commit")
2574 -> 0.0020s
2575-- execute("DROP INDEX CONCURRENTLY index_builds_on_state")
2576 -> 0.0020s
2577-- execute("DROP INDEX CONCURRENTLY index_commits_on_branch")
2578 -> 0.0018s
2579-- execute("DROP INDEX CONCURRENTLY index_users_on_github_oauth_token")
2580 -> 0.0018s
2581-- execute("DROP INDEX CONCURRENTLY index_builds_on_finished_at")
2582 -> 0.0023s
2583-- execute("DROP INDEX CONCURRENTLY index_jobs_on_queue_and_state")
2584 -> 0.0018s
2585-- execute("DROP INDEX CONCURRENTLY index_jobs_on_created_at")
2586 -> 0.0017s
2587== 20140210012509 RemoveUnusedIndices: migrated (0.0136s) =====================
2589== 20140612131826 AddRemovedInfoToLogs: migrating =============================
2590== 20140612131826 AddRemovedInfoToLogs: migrated (0.0007s) ====================
2592== 20140827121945 AddEducationFieldToUser: migrating ==========================
2593-- add_column(:users, :education, :boolean)
2594 -> 0.0007s
2595== 20140827121945 AddEducationFieldToUser: migrated (0.0007s) =================
2597== 20150121135400 JobsAddReceivedAt: migrating ================================
2598-- add_column(:jobs, :received_at, :timestamp, {:precision=>nil})
2599 -> 0.0007s
2600== 20150121135400 JobsAddReceivedAt: migrated (0.0007s) =======================
2602== 20150121135401 BuildsAddReceivedAt: migrating ==============================
2603-- add_column(:builds, :received_at, :timestamp, {:precision=>nil})
2604 -> 0.0006s
2605== 20150121135401 BuildsAddReceivedAt: migrated (0.0007s) =====================
2607== 20150204144312 AddIndexOnRepositoryIdToCommits: migrating ==================
2608-- execute("DROP INDEX IF EXISTS index_commits_on_repository_id")
2609 -> 0.0003s
2610-- execute("CREATE INDEX CONCURRENTLY index_commits_on_repository_id ON commits(repository_id)")
2611 -> 0.0037s
2612== 20150204144312 AddIndexOnRepositoryIdToCommits: migrated (0.0040s) =========
2614== 20150210170900 IndexRequestsOnCreatedAt: migrating =========================
2615-- execute("DROP INDEX IF EXISTS index_requests_on_created_at")
2616 -> 0.0002s
2617-- execute("CREATE INDEX CONCURRENTLY index_requests_on_created_at ON requests(created_at)")
2618 -> 0.0037s
2619== 20150210170900 IndexRequestsOnCreatedAt: migrated (0.0040s) ================
2621== 20150223125700 CreateBranches: migrating ===================================
2622-- create_table(:branches, {:id=>:integer})
2623 -> 0.0094s
2624-- add_index(:branches, [:repository_id, :name], {:unique=>true})
2625 -> 0.0025s
2626== 20150223125700 CreateBranches: migrated (0.0121s) ==========================
2628== 20150311020321 AddNextBuildNumberToRepository: migrating ===================
2629-- add_column(:repositories, :next_build_number, :integer)
2630 -> 0.0012s
2631== 20150311020321 AddNextBuildNumberToRepository: migrated (0.0012s) ==========
2633== 20150316020321 AddActiveIndexToRepository: migrating =======================
2634-- execute("DROP INDEX IF EXISTS index_repositories_on_active")
2635 -> 0.0004s
2636-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_active ON repositories(active)")
2637 -> 0.0036s
2638== 20150316020321 AddActiveIndexToRepository: migrated (0.0040s) ==============
2640== 20150316080321 AddOwnerTypeAndOwnerIdIndexesToBuilds: migrating ============
2641-- execute("DROP INDEX IF EXISTS index_builds_on_owner_type")
2642 -> 0.0003s
2643-- execute("DROP INDEX IF EXISTS index_builds_on_owner_id")
2644 -> 0.0003s
2645-- execute("CREATE INDEX CONCURRENTLY index_builds_on_owner_type ON builds(owner_type)")
2646 -> 0.0051s
2647-- execute("CREATE INDEX CONCURRENTLY index_builds_on_owner_id ON builds(owner_id)")
2648 -> 0.0045s
2649== 20150316080321 AddOwnerTypeAndOwnerIdIndexesToBuilds: migrated (0.0105s) ===
2651== 20150316100321 AddOwnerTypeAndOwnerIdIndexesToRepositories: migrating ======
2652-- execute("DROP INDEX IF EXISTS index_repositories_on_owner_type")
2653 -> 0.0008s
2654-- execute("DROP INDEX IF EXISTS index_repositories_on_owner_id")
2655 -> 0.0009s
2656-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_type ON repositories(owner_type)")
2657 -> 0.0034s
2658-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_id ON repositories(owner_id)")
2659 -> 0.0033s
2660== 20150316100321 AddOwnerTypeAndOwnerIdIndexesToRepositories: migrated (0.0089s)
2662== 20150317004600 AddSlugIndexToRepositories: migrating =======================
2663-- execute("CREATE EXTENSION IF NOT EXISTS pg_trgm")
2664 -> 0.0183s
2665-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_slug ON repositories USING gin((owner_name || '/' || name) gin_trgm_ops)")
2666 -> 0.0041s
2667== 20150317004600 AddSlugIndexToRepositories: migrated (0.0226s) ==============
2669== 20150317020321 AddTokenIndexToTokens: migrating ============================
2670-- execute("DROP INDEX IF EXISTS index_tokens_on_token")
2671 -> 0.0004s
2672-- execute("CREATE INDEX CONCURRENTLY index_tokens_on_token ON tokens(token)")
2673 -> 0.0046s
2674== 20150317020321 AddTokenIndexToTokens: migrated (0.0051s) ===================
2676== 20150317080321 AddLoginIndexToOrganizations: migrating =====================
2677-- execute("DROP INDEX IF EXISTS index_organizations_on_login")
2678 -> 0.0003s
2679-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_login ON organizations(login)")
2680 -> 0.0043s
2681== 20150317080321 AddLoginIndexToOrganizations: migrated (0.0046s) ============
2683== 20150414001337 AddLowerCaseIndices: migrating ==============================
2684-- execute("DROP INDEX IF EXISTS index_organizations_on_lower_login")
2685 -> 0.0003s
2686-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_lower_login ON organizations USING btree(lower(login))")
2687 -> 0.0036s
2688-- execute("DROP INDEX IF EXISTS index_users_on_lower_login")
2689 -> 0.0003s
2690-- execute("CREATE INDEX CONCURRENTLY index_users_on_lower_login ON users USING btree(lower(login))")
2691 -> 0.0033s
2692-- execute("DROP INDEX IF EXISTS index_repositories_on_lower_name")
2693 -> 0.0002s
2694-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_name ON repositories USING btree(lower(name))")
2695 -> 0.0035s
2696-- execute("DROP INDEX IF EXISTS index_repositories_on_lower_owner_name")
2697 -> 0.0004s
2698-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_owner_name ON repositories USING btree(lower(owner_name))")
2699 -> 0.0035s
2700== 20150414001337 AddLowerCaseIndices: migrated (0.0152s) =====================
2702== 20150528101600 RepositoriesAddIndexOwnerName: migrating ====================
2703-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_name ON repositories(owner_name)")
2704 -> 0.0030s
2705== 20150528101600 RepositoriesAddIndexOwnerName: migrated (0.0031s) ===========
2707== 20150528101601 RepositoriesAddIndexName: migrating =========================
2708-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_name ON repositories(name)")
2709 -> 0.0032s
2710== 20150528101601 RepositoriesAddIndexName: migrated (0.0033s) ================
2712== 20150528101602 RepositoriesDropIndexOwnerNameName: migrating ===============
2713-- execute("DROP INDEX CONCURRENTLY index_repositories_on_owner_name_and_name")
2714 -> 0.0018s
2715== 20150528101602 RepositoriesDropIndexOwnerNameName: migrated (0.0018s) ======
2717== 20150528101603 BuildsAddIndexEventType: migrating ==========================
2718-- execute("CREATE INDEX CONCURRENTLY index_builds_on_event_type ON builds (event_type)")
2719 -> 0.0034s
2720== 20150528101603 BuildsAddIndexEventType: migrated (0.0035s) =================
2722== 20150528101604 BuildsAddIndexRepositoryId: migrating =======================
2723-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id ON builds (repository_id)")
2724 -> 0.0032s
2725== 20150528101604 BuildsAddIndexRepositoryId: migrated (0.0032s) ==============
2727== 20150528101605 BuildsAddIndexState: migrating ==============================
2728-- execute("CREATE INDEX CONCURRENTLY index_builds_on_state ON builds (state)")
2729 -> 0.0034s
2730== 20150528101605 BuildsAddIndexState: migrated (0.0035s) =====================
2732== 20150528101607 BuildsAddIndexBranch: migrating =============================
2733-- execute("CREATE INDEX CONCURRENTLY index_builds_on_branch ON builds (branch)")
2734 -> 0.0032s
2735== 20150528101607 BuildsAddIndexBranch: migrated (0.0032s) ====================
2737== 20150528101608 BuildsDropIndexRepositoryIdAndState: migrating ==============
2738-- execute("DROP INDEX CONCURRENTLY index_builds_on_repository_id_and_state")
2739 -> 0.0020s
2740== 20150528101608 BuildsDropIndexRepositoryIdAndState: migrated (0.0020s) =====
2742== 20150528101609 BuildsDropIndexRepositoryIdAndEventType: migrating ==========
2743-- execute("DROP INDEX CONCURRENTLY index_builds_on_repository_id_and_event_type")
2744 -> 0.0021s
2745== 20150528101609 BuildsDropIndexRepositoryIdAndEventType: migrated (0.0022s) =
2747== 20150528101610 BuildsDropIndexIdRepositoryIdAndEventTypeDesc: migrating ====
2748-- execute("DROP INDEX CONCURRENTLY index_builds_on_id_repository_id_and_event_type_desc")
2749 -> 0.0020s
2750== 20150528101610 BuildsDropIndexIdRepositoryIdAndEventTypeDesc: migrated (0.0021s)
2752== 20150528101611 BuildsDropIndexRepositoryIdAndEventTypeAndStateAndBranch: migrating
2753-- execute("DROP INDEX CONCURRENTLY index_builds_on_repository_id_and_event_type_and_state_and_bran")
2754 -> 0.0021s
2755== 20150528101611 BuildsDropIndexRepositoryIdAndEventTypeAndStateAndBranch: migrated (0.0021s)
2757== 20150609175200 AddCancelationColumnsToSubscriptions: migrating =============
2758-- change_table(:subscriptions)
2759 -> 0.0011s
2760== 20150609175200 AddCancelationColumnsToSubscriptions: migrated (0.0011s) ====
2762== 20150610143500 JobsAddIndexOwnerId: migrating ==============================
2763-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_id ON jobs (owner_id)")
2764 -> 0.0043s
2765== 20150610143500 JobsAddIndexOwnerId: migrated (0.0043s) =====================
2767== 20150610143501 JobsAddIndexOwnerType: migrating ============================
2768-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_type ON jobs (owner_type)")
2769 -> 0.0039s
2770== 20150610143501 JobsAddIndexOwnerType: migrated (0.0039s) ===================
2772== 20150610143502 JobsAddIndexSourceId: migrating =============================
2773-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_source_id ON jobs (source_id)")
2774 -> 0.0035s
2775== 20150610143502 JobsAddIndexSourceId: migrated (0.0035s) ====================
2777== 20150610143503 JobsAddIndexSourceType: migrating ===========================
2778-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_source_type ON jobs (source_type)")
2779 -> 0.0037s
2780== 20150610143503 JobsAddIndexSourceType: migrated (0.0037s) ==================
2782== 20150610143504 JobsAddIndexType: migrating =================================
2783-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_type ON jobs (type)")
2784 -> 0.0134s
2785== 20150610143504 JobsAddIndexType: migrated (0.0136s) ========================
2787== 20150610143505 JobsDropIndexOwnerIdAndOwnerTypeAndState: migrating =========
2788-- execute("DROP INDEX CONCURRENTLY index_jobs_on_owner_id_and_owner_type_and_state")
2789 -> 0.0027s
2790== 20150610143505 JobsDropIndexOwnerIdAndOwnerTypeAndState: migrated (0.0029s)
2792== 20150610143506 JobsDropIndexStateOwnerTypeOwnerId: migrating ===============
2793-- execute("DROP INDEX CONCURRENTLY index_jobs_on_state_owner_type_owner_id")
2794 -> 0.0023s
2795== 20150610143506 JobsDropIndexStateOwnerTypeOwnerId: migrated (0.0024s) ======
2797== 20150610143507 JobsDropIndexTypeAndSourceIdAndSourceType: migrating ========
2798-- 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"})
2799 -> 0.0092s
2800== 20150610143507 JobsDropIndexTypeAndSourceIdAndSourceType: migrated (0.0095s)
2802== 20150610143508 JobsAddIndexState: migrating ================================
2803-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_state ON jobs (state)")
2804 -> 0.0042s
2805== 20150610143508 JobsAddIndexState: migrated (0.0044s) =======================
2807== 20150610143509 JobsAddIndexQueue: migrating ================================
2808-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_queue ON jobs (queue)")
2809 -> 0.0035s
2810== 20150610143509 JobsAddIndexQueue: migrated (0.0036s) =======================
2812== 20150610143510 TokensAddIndexUserId: migrating =============================
2813-- execute("CREATE INDEX CONCURRENTLY index_tokens_on_user_id ON tokens (user_id)")
2814 -> 0.0039s
2815== 20150610143510 TokensAddIndexUserId: migrated (0.0040s) ====================
2817== 20150615103059 AddStatusToSubscriptions: migrating =========================
2818-- add_column(:subscriptions, :status, :string)
2819 -> 0.0011s
2820== 20150615103059 AddStatusToSubscriptions: migrated (0.0012s) ================
2822== 20150629231300 ReposAddInvalidatedAt: migrating ============================
2823-- add_column(:repositories, :invalidated_at, :timestamp, {:precision=>nil})
2824 -> 0.0011s
2825== 20150629231300 ReposAddInvalidatedAt: migrated (0.0012s) ===================
2827== 20150923131400 BroadcastsAddCategory: migrating ============================
2828-- add_column(:broadcasts, :category, :string)
2829 -> 0.0011s
2830== 20150923131400 BroadcastsAddCategory: migrated (0.0012s) ===================
2832== 20151112153500 CreateStars: migrating ======================================
2833-- create_table(:stars, {:id=>:integer})
2834 -> 0.0044s
2835-- add_index(:stars, :user_id)
2836 -> 0.0024s
2837== 20151112153500 CreateStars: migrated (0.0070s) =============================
2839== 20151113111400 StarsAddIndexUserIdAndRepositoryId: migrating ===============
2840-- execute("CREATE UNIQUE INDEX index_stars_on_user_id_and_repository_id ON stars (user_id, repository_id)")
2841 -> 0.0025s
2842== 20151113111400 StarsAddIndexUserIdAndRepositoryId: migrated (0.0026s) ======
2844== 20151127153500 UsersAddIndexGithubOauthToken: migrating ====================
2845-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_github_oauth_token ON users (github_oauth_token)")
2846 -> 0.0039s
2847== 20151127153500 UsersAddIndexGithubOauthToken: migrated (0.0039s) ===========
2849== 20151127154200 AnnotationsAddIndexJobId: migrating =========================
2850-- execute("CREATE INDEX CONCURRENTLY index_annotations_on_job_id ON annotations (job_id)")
2851 -> 0.0037s
2852== 20151127154200 AnnotationsAddIndexJobId: migrated (0.0037s) ================
2854== 20151127154600 BroadcastsAddIndexRecipientIdAndRecipientType: migrating ====
2855-- execute("CREATE INDEX CONCURRENTLY index_broadcasts_on_recipient_id_and_recipient_type ON broadcasts (recipient_id, recipient_type)")
2856 -> 0.0039s
2857== 20151127154600 BroadcastsAddIndexRecipientIdAndRecipientType: migrated (0.0039s)
2859== 20151202122200 UsersAddFirstLoggedInAt: migrating ==========================
2860-- add_column(:users, :first_logged_in_at, :timestamp, {:precision=>nil})
2861 -> 0.0005s
2862== 20151202122200 UsersAddFirstLoggedInAt: migrated (0.0006s) =================
2864== 20160107120927 AddCronTable: migrating =====================================
2865-- create_table(:crons, {:id=>:integer})
2866 -> 0.0056s
2867== 20160107120927 AddCronTable: migrated (0.0056s) ============================
2869== 20160303165750 AddDebugOptionsToJobs: migrating ============================
2870-- add_column(:jobs, :debug_options, :text)
2871 -> 0.0007s
2872== 20160303165750 AddDebugOptionsToJobs: migrated (0.0007s) ===================
2874== 20160412113020 BuildsDropIndexOwnerType: migrating =========================
2875-- execute("DROP INDEX CONCURRENTLY index_builds_on_owner_type")
2876 -> 0.0022s
2877== 20160412113020 BuildsDropIndexOwnerType: migrated (0.0023s) ================
2879== 20160412113070 RepositoriesDropIndexLastBuildStartedAt: migrating ==========
2880-- execute("DROP INDEX CONCURRENTLY index_repositories_on_last_build_started_at")
2881 -> 0.0021s
2882== 20160412113070 RepositoriesDropIndexLastBuildStartedAt: migrated (0.0021s) =
2884== 20160412121405 JobsDropIndexType: migrating ================================
2885-- execute("DROP INDEX CONCURRENTLY index_jobs_on_type")
2886 -> 0.0021s
2887== 20160412121405 JobsDropIndexType: migrated (0.0021s) =======================
2889== 20160412123900 JobsDropIndexSourceType: migrating ==========================
2890-- execute("DROP INDEX CONCURRENTLY index_jobs_on_source_type")
2891 -> 0.0019s
2892== 20160412123900 JobsDropIndexSourceType: migrated (0.0019s) =================
2894== 20160414214442 JobsAddIndexQueuedAt: migrating =============================
2895-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_queued_at ON jobs (queued_at)")
2896 -> 0.0036s
2897== 20160414214442 JobsAddIndexQueuedAt: migrated (0.0036s) ====================
2899== 20160422104300 BuildsAddIndexNumber: migrating =============================
2900-- execute("CREATE INDEX CONCURRENTLY index_builds_on_number ON builds (number)")
2901 -> 0.0036s
2902== 20160422104300 BuildsAddIndexNumber: migrated (0.0036s) ====================
2904== 20160422121400 BuildsAddIndexRepositoryIdAndNumberAndEventType: migrating ==
2905-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_number_and_event_type ON builds (repository_id, number, event_type)")
2906 -> 0.0036s
2907== 20160422121400 BuildsAddIndexRepositoryIdAndNumberAndEventType: migrated (0.0036s)
2909== 20160510142700 JobsAddIndexCreatedAt: migrating ============================
2910-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_created_at ON jobs (created_at)")
2911 -> 0.0035s
2912== 20160510142700 JobsAddIndexCreatedAt: migrated (0.0035s) ===================
2914== 20160510144200 BuildsAddPrivate: migrating =================================
2915-- change_table(:builds)
2916 -> 0.0007s
2917== 20160510144200 BuildsAddPrivate: migrated (0.0007s) ========================
2919== 20160510150300 JobsAddPrivate: migrating ===================================
2920-- change_table(:jobs)
2921 -> 0.0007s
2922== 20160510150300 JobsAddPrivate: migrated (0.0008s) ==========================
2924== 20160510150400 RequestsAddPrivate: migrating ===============================
2925-- change_table(:requests)
2926 -> 0.0008s
2927== 20160510150400 RequestsAddPrivate: migrated (0.0008s) ======================
2929== 20160513074300 AddCurrentBuildIdToRepositories: migrating ==================
2930-- add_column(:repositories, :current_build_id, :bigint)
2931 -> 0.0006s
2932-- execute("ALTER TABLE repositories ADD CONSTRAINT fk_repositories_current_build_id FOREIGN KEY (current_build_id) REFERENCES builds (id);")
2933 -> 0.0016s
2934== 20160513074300 AddCurrentBuildIdToRepositories: migrated (0.0023s) =========
2936== 20160609163600 PermissionsAddIndexUserIdAndRepositoryId: migrating =========
2937-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_permissions_on_user_id_and_repository_id ON permissions (user_id, repository_id)")
2938 -> 0.0039s
2939== 20160609163600 PermissionsAddIndexUserIdAndRepositoryId: migrated (0.0039s)
2941== 20160623133900 CreatePreviousJobStates: migrating ==========================
2942-- create_table(:previous_job_states, {:id=>:integer})
2943 -> 0.0053s
2944-- add_column(:jobs, :previous_job_state_id, :bigint)
2945 -> 0.0005s
2946== 20160623133900 CreatePreviousJobStates: migrated (0.0058s) =================
2948== 20160623133901 AddPreviousStatesTriggers: migrating ========================
2949-- 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")
2950 -> 0.0096s
2951== 20160623133901 AddPreviousStatesTriggers: migrated (0.0102s) ===============
2953== 20160712125400 RevertPreviousJobStates: migrating ==========================
2954-- 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")
2955 -> 0.0008s
2956-- remove_column(:jobs, :previous_job_state_id)
2957 -> 0.0004s
2958-- drop_table(:previous_job_states)
2959 -> 0.0008s
2960== 20160712125400 RevertPreviousJobStates: migrated (0.0022s) =================
2962== 20160819103700 AddAvatarUrlToUsers: migrating ==============================
2963-- add_column(:users, :avatar_url, :string)
2964 -> 0.0019s
2965== 20160819103700 AddAvatarUrlToUsers: migrated (0.0021s) =====================
2967== 20160920220400 AddRoleToMemberships: migrating =============================
2968-- add_column(:memberships, :role, :string)
2969 -> 0.0046s
2970== 20160920220400 AddRoleToMemberships: migrated (0.0048s) ====================
2972== 20161028154600 RemoveTypeIndices: migrating ================================
2973-- execute("DROP INDEX CONCURRENTLY IF EXISTS index_requests_on_event_type")
2974 -> 0.0008s
2975-- execute("DROP INDEX CONCURRENTLY IF EXISTS index_jobs_on_owner_type")
2976 -> 0.0027s
2977== 20161028154600 RemoveTypeIndices: migrated (0.0037s) =======================
2979== 20161101000000 AddNextRunLastRunToCrons: migrating =========================
2980-- column_exists?(:crons, :next_run)
2981 -> 0.0046s
2982-- add_column(:crons, :next_run, :timestamp, {:precision=>nil})
2983 -> 0.0015s
2984-- column_exists?(:crons, :last_run)
2985 -> 0.0037s
2986-- add_column(:crons, :last_run, :timestamp, {:precision=>nil})
2987 -> 0.0015s
2988== 20161101000000 AddNextRunLastRunToCrons: migrated (0.0120s) ================
2990== 20161101000001 AddDontRunIfRecentBuildExists: migrating ====================
2991-- column_exists?(:crons, :dont_run_if_recent_build_exists)
2992 -> 0.0044s
2993-- add_column(:crons, :dont_run_if_recent_build_exists, :boolean, {:default=>false})
2994 -> 0.0034s
2995== 20161101000001 AddDontRunIfRecentBuildExists: migrated (0.0081s) ===========
2997== 20161201112200 CreateBetaFeatures: migrating ===============================
2998-- create_table(:beta_features, {:id=>:integer})
2999 -> 0.0081s
3000== 20161201112200 CreateBetaFeatures: migrated (0.0083s) ======================
3002== 20161201112600 CreateUserBetaFeatures: migrating ===========================
3003-- create_table(:user_beta_features, {:id=>:integer})
3004 -> 0.0030s
3005-- add_index(:user_beta_features, [:user_id, :beta_feature_id])
3006 -> 0.0019s
3007== 20161201112600 CreateUserBetaFeatures: migrated (0.0050s) ==================
3009== 20161202000000 RemoveDisableByBuildFromCrons: migrating ====================
3010-- remove_column(:crons, :disable_by_build)
3011 -> 0.0006s
3012== 20161202000000 RemoveDisableByBuildFromCrons: migrated (0.0007s) ===========
3014== 20161206155800 AddBillingAdminOnlyToOrganizations: migrating ===============
3015-- add_column(:organizations, :billing_admin_only, :boolean)
3016 -> 0.0006s
3017== 20161206155800 AddBillingAdminOnlyToOrganizations: migrated (0.0006s) ======
3019== 20161221171300 BuildsAddIndexRepositoryIdAndNumber: migrating ==============
3020-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_number ON builds(repository_id, (number::integer))")
3021 -> 0.0040s
3022== 20161221171300 BuildsAddIndexRepositoryIdAndNumber: migrated (0.0040s) =====
3024== 20170211000000 JobsAddStageNumber: migrating ===============================
3025-- add_column(:jobs, :stage_number, :string)
3026 -> 0.0007s
3027== 20170211000000 JobsAddStageNumber: migrated (0.0007s) ======================
3029== 20170211000001 JobsAddStageId: migrating ===================================
3030-- change_table(:jobs)
3031 -> 0.0007s
3032== 20170211000001 JobsAddStageId: migrated (0.0007s) ==========================
3034== 20170211000002 StagesCreate: migrating =====================================
3035-- create_table(:stages, {:id=>:integer})
3036 -> 0.0052s
3037== 20170211000002 StagesCreate: migrated (0.0053s) ============================
3039== 20170211000003 StagesAddStateAndTimestamps: migrating ======================
3040-- change_table(:stages)
3041 -> 0.0013s
3042== 20170211000003 StagesAddStateAndTimestamps: migrated (0.0014s) =============
3044== 20170213124000 AddConstraintForOwnerIdToSubscriptions: migrating ===========
3045-- execute("CREATE UNIQUE INDEX subscriptions_owner ON subscriptions (owner_id, owner_type) WHERE (status = 'subscribed');")
3046 -> 0.0026s
3047== 20170213124000 AddConstraintForOwnerIdToSubscriptions: migrated (0.0026s) ==
3049== 20170316000000 QueueableJobsCreate: migrating ==============================
3050-- create_table(:queueable_jobs, {:id=>:integer})
3051 -> 0.0031s
3052== 20170316000000 QueueableJobsCreate: migrated (0.0031s) =====================
3054== 20170316000001 QueueableJobsIndexJobId: migrating ==========================
3055-- add_index(:queueable_jobs, :job_id, {:algorithm=>:concurrently})
3056 -> 0.0038s
3057== 20170316000001 QueueableJobsIndexJobId: migrated (0.0038s) =================
3059== 20170318000000 PullRequestsCreate: migrating ===============================
3060-- create_table(:pull_requests, {:id=>:integer})
3061 -> 0.0050s
3062== 20170318000000 PullRequestsCreate: migrated (0.0051s) ======================
3064== 20170318000001 RequestsAddPullRequestId: migrating =========================
3065-- change_table(:requests)
3066 -> 0.0007s
3067== 20170318000001 RequestsAddPullRequestId: migrated (0.0008s) ================
3069== 20170318000002 BuildsAddPullRequestId: migrating ===========================
3070-- change_table(:builds)
3071 -> 0.0007s
3072== 20170318000002 BuildsAddPullRequestId: migrated (0.0007s) ==================
3074== 20170322000000 AddIndexOnRequestsRepositoryIdAndIdDesc: migrating ==========
3075-- execute("CREATE INDEX CONCURRENTLY index_requests_on_repository_id_and_id_desc ON requests (repository_id, id DESC);")
3076 -> 0.0036s
3077== 20170322000000 AddIndexOnRequestsRepositoryIdAndIdDesc: migrated (0.0037s) =
3079== 20170331000000 AddIndexRepositoryIdOnPullRequests: migrating ===============
3080-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_pull_requests_on_repository_id_and_number ON pull_requests (repository_id, (number::integer));")
3081 -> 0.0036s
3082== 20170331000000 AddIndexRepositoryIdOnPullRequests: migrated (0.0036s) ======
3084== 20170401000000 OwnerGroupsCreate: migrating ================================
3085-- create_table(:owner_groups, {:id=>:integer})
3086 -> 0.0045s
3087== 20170401000000 OwnerGroupsCreate: migrated (0.0046s) =======================
3089== 20170401000001 OwnerGroupsIndexOwnerIdOwnerType: migrating =================
3090-- execute("CREATE INDEX CONCURRENTLY index_owner_groups_on_owner_type_and_owner_id ON owner_groups (owner_type, owner_id);")
3091 -> 0.0037s
3092== 20170401000001 OwnerGroupsIndexOwnerIdOwnerType: migrated (0.0038s) ========
3094== 20170401000002 OwnerGroupsIndexUuid: migrating =============================
3095-- execute("CREATE INDEX CONCURRENTLY index_owner_groups_on_uuid ON owner_groups (uuid);")
3096 -> 0.0033s
3097== 20170401000002 OwnerGroupsIndexUuid: migrated (0.0033s) ====================
3099== 20170405000000 TagsCreate: migrating =======================================
3100-- create_table(:tags, {:id=>:integer})
3101 -> 0.0049s
3102== 20170405000000 TagsCreate: migrated (0.0050s) ==============================
3104== 20170405000001 RequestsAddBranchIdAndTagId: migrating ======================
3105-- change_table(:requests)
3106 -> 0.0127s
3107== 20170405000001 RequestsAddBranchIdAndTagId: migrated (0.0128s) =============
3109== 20170405000002 CommitsAddBranchIdAndTagId: migrating =======================
3110-- change_table(:commits)
3111 -> 0.0037s
3112== 20170405000002 CommitsAddBranchIdAndTagId: migrated (0.0037s) ==============
3114== 20170405000003 BuildsAddBranchIdAndTagId: migrating ========================
3115-- change_table(:builds)
3116 -> 0.0029s
3117== 20170405000003 BuildsAddBranchIdAndTagId: migrated (0.0032s) ===============
3119== 20170408000000 RequestsAddSenderId: migrating ==============================
3120-- change_table(:requests)
3121 -> 0.0033s
3122== 20170408000000 RequestsAddSenderId: migrated (0.0035s) =====================
3124== 20170408000001 BuildsAddSenderId: migrating ================================
3125-- change_table(:builds)
3126 -> 0.0026s
3127== 20170408000001 BuildsAddSenderId: migrated (0.0027s) =======================
3129== 20170410000000 JobsIndexStageId: migrating =================================
3130-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_stage_id ON jobs (stage_id);")
3131 -> 0.0046s
3132== 20170410000000 JobsIndexStageId: migrated (0.0047s) ========================
3134== 20170411000000 TagsIndexRepoIdAndName: migrating ===========================
3135-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_repository_id_and_name ON tags (repository_id, name);")
3136 -> 0.0041s
3137== 20170411000000 TagsIndexRepoIdAndName: migrated (0.0042s) ==================
3139== 20170419093249 AddSourceToSubscriptions: migrating =========================
3140-- execute(" CREATE TYPE source_type AS ENUM ('manual', 'stripe', 'github', 'unknown');\n")
3141 -> 0.0019s
3142-- add_column(:subscriptions, :source, :source_type, {:default=>"unknown", :null=>false})
3143 -> 0.0024s
3144== 20170419093249 AddSourceToSubscriptions: migrated (0.0046s) ================
3146== 20170531125700 AddIndexOnBuildsSenderTypeAndSenderId: migrating ============
3147-- execute("CREATE INDEX CONCURRENTLY index_builds_on_sender_type_and_sender_id ON builds (sender_type, sender_id);")
3148 -> 0.0045s
3149== 20170531125700 AddIndexOnBuildsSenderTypeAndSenderId: migrated (0.0046s) ===
3151== 20170601163700 DropIndexOnRepositoriesBuildsAndCommits: migrating ==========
3152-- execute("DROP INDEX CONCURRENTLY index_repositories_on_lower_owner_name")
3153 -> 0.0026s
3154-- execute("DROP INDEX CONCURRENTLY index_repositories_on_owner_type")
3155 -> 0.0026s
3156-- execute("DROP INDEX CONCURRENTLY index_commits_on_repository_id")
3157 -> 0.0020s
3158-- execute("DROP INDEX CONCURRENTLY index_builds_on_number")
3159 -> 0.0020s
3160== 20170601163700 DropIndexOnRepositoriesBuildsAndCommits: migrated (0.0093s) =
3162== 20170601164400 AddIndexOnBuildsAndStages: migrating ========================
3163-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_branch_and_event_type_and_id ON builds (repository_id, branch, event_type, id)")
3164 -> 0.0039s
3165-- execute("CREATE INDEX CONCURRENTLY index_stages_on_build_id ON stages (build_id)")
3166 -> 0.0036s
3167== 20170601164400 AddIndexOnBuildsAndStages: migrated (0.0076s) ===============
3169== 20170609174400 DropUnusedIndexesOnJobsAndBuilds: migrating =================
3170-- execute("DROP INDEX CONCURRENTLY index_jobs_on_repository_id")
3171 -> 0.0022s
3172-- execute("DROP INDEX CONCURRENTLY index_jobs_on_queued_at")
3173 -> 0.0020s
3174-- execute("DROP INDEX CONCURRENTLY index_jobs_on_queue")
3175 -> 0.0024s
3176-- execute("DROP INDEX CONCURRENTLY index_jobs_on_owner_id")
3177 -> 0.0024s
3178-- execute("DROP INDEX CONCURRENTLY index_builds_on_branch")
3179 -> 0.0022s
3180-- execute("DROP INDEX CONCURRENTLY index_builds_on_event_type")
3181 -> 0.0021s
3182-- execute("DROP INDEX CONCURRENTLY index_builds_on_owner_id")
3183 -> 0.0020s
3184== 20170609174400 DropUnusedIndexesOnJobsAndBuilds: migrated (0.0155s) ========
3186== 20170613000000 CreateTrials: migrating =====================================
3187-- create_table(:trials, {:id=>:integer})
3188 -> 0.0066s
3189-- execute("CREATE INDEX CONCURRENTLY index_trials_on_owner ON trials(owner_id, owner_type)")
3190 -> 0.0037s
3191== 20170613000000 CreateTrials: migrated (0.0104s) ============================
3193== 20170620144500 AddIndexesOnBuildsAndJobsAndBranches: migrating =============
3194-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_branch_and_id_desc ON builds (repository_id, branch, id DESC)")
3195 -> 0.0039s
3196-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_id_and_owner_type_and_state ON jobs (owner_id, owner_type, state)")
3197 -> 0.0035s
3198-- execute("CREATE INDEX CONCURRENTLY index_branches_on_repository_id ON branches (repository_id)")
3199 -> 0.0036s
3200== 20170620144500 AddIndexesOnBuildsAndJobsAndBranches: migrated (0.0111s) ====
3202== 20170621142300 RemovePlansTable: migrating =================================
3203-- drop_table(:plans)
3204 -> 0.0009s
3205== 20170621142300 RemovePlansTable: migrated (0.0009s) ========================
3207== 20170713162000 AddCcLastDigitsToInvoices: migrating ========================
3208-- change_table(:invoices)
3209 -> 0.0008s
3210== 20170713162000 AddCcLastDigitsToInvoices: migrated (0.0008s) ===============
3212== 20170822171600 CreateMessages: migrating ===================================
3213-- create_table("messages", {:force=>:cascade, :id=>:integer})
3214 -> 0.0056s
3215-- execute("CREATE INDEX CONCURRENTLY index_messages_on_subject_type_and_subject_id ON messages(subject_type, subject_id)")
3216 -> 0.0034s
3217== 20170822171600 CreateMessages: migrated (0.0091s) ==========================
3219== 20170831000000 CreateTrialAllowances: migrating ============================
3220-- create_table(:trial_allowances, {:id=>:integer})
3221 -> 0.0051s
3222-- add_index(:trial_allowances, :trial_id)
3223 -> 0.0017s
3224-- add_index(:trial_allowances, [:creator_id, :creator_type])
3225 -> 0.0020s
3226== 20170831000000 CreateTrialAllowances: migrated (0.0089s) ===================
3228== 20170911172800 AddIndexOnJobsUpdatedAt: migrating ==========================
3229-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_updated_at ON jobs (updated_at)")
3230 -> 0.0034s
3231== 20170911172800 AddIndexOnJobsUpdatedAt: migrated (0.0034s) =================
3233== 20171017104500 AddConcurrencyToSubscriptions: migrating ====================
3234-- change_table(:subscriptions)
3235 -> 0.0007s
3236== 20171017104500 AddConcurrencyToSubscriptions: migrated (0.0007s) ===========
3238== 20171024000000 AddAbuseTable: migrating ====================================
3239-- create_table(:abuses, {:id=>:integer})
3240 -> 0.0055s
3241-- execute("CREATE INDEX CONCURRENTLY index_abuses_on_owner ON abuses(owner_id)")
3242 -> 0.0035s
3243== 20171024000000 AddAbuseTable: migrated (0.0091s) ===========================
3245== 20171025000000 AddUpdatedAtTriggerToBuildsAndJobs: migrating ===============
3246-- 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")
3247 -> 0.0008s
3248== 20171025000000 AddUpdatedAtTriggerToBuildsAndJobs: migrated (0.0008s) ======
3250== 20171103000000 UpdateIndexOnAbuses: migrating ==============================
3251-- index_exists?(:abuses, :owner, {:name=>"index_abuses_on_owner"})
3252 -> 0.0013s
3253-- index_exists?(:abuses, [:owner_id, :owner_type, :level], {:name=>"index_abuses_on_owner_id_and_owner_type_and_level"})
3254 -> 0.0011s
3255-- add_index(:abuses, [:owner_id, :owner_type, :level], {:unique=>true, :algorithm=>:concurrently})
3256 -> 0.0037s
3257== 20171103000000 UpdateIndexOnAbuses: migrated (0.0062s) =====================
3259== 20171211000000 AddRepositoryIdBranchEventTypeIndexOnBuilds: migrating ======
3260-- 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')")
3261 -> 0.0038s
3262== 20171211000000 AddRepositoryIdBranchEventTypeIndexOnBuilds: migrated (0.0038s)
3264== 20180212000000 UsersAddSuspended: migrating ================================
3265-- add_column(:users, :suspended, :boolean, {:default=>false})
3266 -> 0.0027s
3267== 20180212000000 UsersAddSuspended: migrated (0.0028s) =======================
3269== 20180213000000 UsersAddSuspendedAt: migrating ==============================
3270-- add_column(:users, :suspended_at, :timestamp, {:precision=>nil})
3271 -> 0.0023s
3272== 20180213000000 UsersAddSuspendedAt: migrated (0.0025s) =====================
3274== 20180222000000 AddComIdAndOrgId: migrating =================================
3275-- add_column(:branches, :org_id, :integer)
3276 -> 0.0021s
3277-- add_column(:builds, :org_id, :integer)
3278 -> 0.0013s
3279-- add_column(:commits, :org_id, :integer)
3280 -> 0.0012s
3281-- add_column(:crons, :org_id, :integer)
3282 -> 0.0012s
3283-- add_column(:jobs, :org_id, :integer)
3284 -> 0.0011s
3285-- add_column(:organizations, :org_id, :integer)
3286 -> 0.0013s
3287-- add_column(:permissions, :org_id, :integer)
3288 -> 0.0012s
3289-- add_column(:pull_requests, :org_id, :integer)
3290 -> 0.0011s
3291-- add_column(:repositories, :org_id, :integer)
3292 -> 0.0012s
3293-- add_column(:requests, :org_id, :integer)
3294 -> 0.0048s
3295-- add_column(:ssl_keys, :org_id, :integer)
3296 -> 0.0004s
3297-- add_column(:stages, :org_id, :integer)
3298 -> 0.0004s
3299-- add_column(:tags, :org_id, :integer)
3300 -> 0.0004s
3301-- add_column(:users, :org_id, :integer)
3302 -> 0.0004s
3303-- add_column(:branches, :com_id, :integer)
3304 -> 0.0004s
3305-- add_column(:builds, :com_id, :integer)
3306 -> 0.0009s
3307-- add_column(:commits, :com_id, :integer)
3308 -> 0.0004s
3309-- add_column(:crons, :com_id, :integer)
3310 -> 0.0004s
3311-- add_column(:jobs, :com_id, :integer)
3312 -> 0.0005s
3313-- add_column(:organizations, :com_id, :integer)
3314 -> 0.0004s
3315-- add_column(:permissions, :com_id, :integer)
3316 -> 0.0004s
3317-- add_column(:pull_requests, :com_id, :integer)
3318 -> 0.0004s
3319-- add_column(:repositories, :com_id, :integer)
3320 -> 0.0004s
3321-- add_column(:requests, :com_id, :integer)
3322 -> 0.0005s
3323-- add_column(:ssl_keys, :com_id, :integer)
3324 -> 0.0004s
3325-- add_column(:stages, :com_id, :integer)
3326 -> 0.0004s
3327-- add_column(:tags, :com_id, :integer)
3328 -> 0.0004s
3329-- add_column(:users, :com_id, :integer)
3330 -> 0.0004s
3331== 20180222000000 AddComIdAndOrgId: migrated (0.0263s) ========================
3333== 20180222000001 AddComIdAndOrgIdIndices: migrating ==========================
3334-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_on_org_id ON branches USING btree (org_id)")
3335 -> 0.0039s
3336-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_builds_on_org_id ON builds USING btree (org_id)")
3337 -> 0.0038s
3338-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_jobs_on_org_id ON jobs USING btree (org_id)")
3339 -> 0.0038s
3340-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_commits_on_org_id ON commits USING btree (org_id)")
3341 -> 0.0041s
3342-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_crons_on_org_id ON crons USING btree (org_id)")
3343 -> 0.0037s
3344-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organizations_on_org_id ON organizations USING btree (org_id)")
3345 -> 0.0038s
3346-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_permissions_on_org_id ON permissions USING btree (org_id)")
3347 -> 0.0037s
3348-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_pull_requests_on_org_id ON pull_requests USING btree (org_id)")
3349 -> 0.0036s
3350-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_repositories_on_org_id ON repositories USING btree (org_id)")
3351 -> 0.0040s
3352-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_requests_on_org_id ON requests USING btree (org_id)")
3353 -> 0.0036s
3354-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_ssl_keys_on_org_id ON ssl_keys USING btree (org_id)")
3355 -> 0.0035s
3356-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_stages_on_org_id ON stages USING btree (org_id)")
3357 -> 0.0033s
3358-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_org_id ON tags USING btree (org_id)")
3359 -> 0.0032s
3360-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_org_id ON users USING btree (org_id)")
3361 -> 0.0033s
3362-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_on_com_id ON branches USING btree (com_id)")
3363 -> 0.0040s
3364-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_builds_on_com_id ON builds USING btree (com_id)")
3365 -> 0.0036s
3366-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_jobs_on_com_id ON jobs USING btree (com_id)")
3367 -> 0.0043s
3368-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_commits_on_com_id ON commits USING btree (com_id)")
3369 -> 0.0038s
3370-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_crons_on_com_id ON crons USING btree (com_id)")
3371 -> 0.0041s
3372-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organizations_on_com_id ON organizations USING btree (com_id)")
3373 -> 0.0036s
3374-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_permissions_on_com_id ON permissions USING btree (com_id)")
3375 -> 0.0034s
3376-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_pull_requests_on_com_id ON pull_requests USING btree (com_id)")
3377 -> 0.0040s
3378-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_repositories_on_com_id ON repositories USING btree (com_id)")
3379 -> 0.0036s
3380-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_requests_on_com_id ON requests USING btree (com_id)")
3381 -> 0.0031s
3382-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_ssl_keys_on_com_id ON ssl_keys USING btree (com_id)")
3383 -> 0.0031s
3384-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_stages_on_com_id ON stages USING btree (com_id)")
3385 -> 0.0031s
3386-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_com_id ON tags USING btree (com_id)")
3387 -> 0.0033s
3388-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_com_id ON users USING btree (com_id)")
3389 -> 0.0034s
3390== 20180222000001 AddComIdAndOrgIdIndices: migrated (0.1025s) =================
3392== 20180222000002 AddMigrating: migrating =====================================
3393-- add_column(:repositories, :migrating, :boolean)
3394 -> 0.0007s
3395-- add_column(:repositories, :migrated_at, :timestamp, {:precision=>nil})
3396 -> 0.0004s
3397-- add_column(:organizations, :migrating, :boolean)
3398 -> 0.0004s
3399-- add_column(:organizations, :migrated_at, :timestamp, {:precision=>nil})
3400 -> 0.0004s
3401-- add_column(:users, :migrating, :boolean)
3402 -> 0.0004s
3403-- add_column(:users, :migrated_at, :timestamp, {:precision=>nil})
3404 -> 0.0004s
3405== 20180222000002 AddMigrating: migrated (0.0028s) ============================
3407== 20180222000003 DropFkRepositoriesCurrentBuildId: migrating =================
3408-- execute("ALTER TABLE repositories DROP CONSTRAINT fk_repositories_current_build_id")
3409 -> 0.0008s
3410== 20180222000003 DropFkRepositoriesCurrentBuildId: migrated (0.0008s) ========
3412== 20180222000009 CreateRepoCounts: migrating =================================
3413-- create_table(:repo_counts, {:id=>false})
3414 -> 0.0030s
3415-- add_index(:repo_counts, :repository_id)
3416 -> 0.0024s
3417== 20180222000009 CreateRepoCounts: migrated (0.0055s) ========================
3419== 20180222000012 CreateRepoCountsTriggers: migrating =========================
3420-- 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")
3421 -> 0.0197s
3422== 20180222000012 CreateRepoCountsTriggers: migrated (0.0203s) ================
3424== 20180222164100 DropAnnotations: migrating ==================================
3425-- drop_table(:annotations)
3426 -> 0.0025s
3427-- drop_table(:annotation_providers)
3428 -> 0.0023s
3429== 20180222164100 DropAnnotations: migrated (0.0050s) =========================
3431== 20180305143800 IndexBuildsOnRepositoryIdWhereStateNotFinished: migrating ===
3432-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_where_state_not_finished ON builds (repository_id) WHERE state IN ('created', 'queued', 'received', 'started');")
3433 -> 0.0044s
3434== 20180305143800 IndexBuildsOnRepositoryIdWhereStateNotFinished: migrated (0.0046s)
3436== 20180321102400 IndexJobsOnRepositoryIdWhereStateRunning: migrating =========
3437-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_repository_id_where_state_running ON jobs (repository_id) WHERE state IN ('queued', 'received', 'started')")
3438 -> 0.0039s
3439== 20180321102400 IndexJobsOnRepositoryIdWhereStateRunning: migrated (0.0040s)
3441== 20180330000000 CreateRequestPayloads: migrating ============================
3442-- create_table(:request_payloads, {:id=>:integer})
3443 -> 0.0089s
3444-- add_index(:request_payloads, :request_id)
3445 -> 0.0021s
3446-- add_index(:request_payloads, [:created_at, :archived])
3447 -> 0.0021s
3448== 20180330000000 CreateRequestPayloads: migrated (0.0134s) ===================
3450== 20180331000000 CreateConfigs: migrating ====================================
3451-- create_table(:request_configs, {:id=>:integer})
3452 -> 0.0069s
3453-- create_table(:build_configs, {:id=>:integer})
3454 -> 0.0048s
3455-- create_table(:job_configs, {:id=>:integer})
3456 -> 0.0051s
3457-- add_index(:request_configs, [:repository_id, :key])
3458 -> 0.0020s
3459-- add_index(:build_configs, [:repository_id, :key])
3460 -> 0.0022s
3461-- add_index(:job_configs, [:repository_id, :key])
3462 -> 0.0028s
3463-- add_column(:requests, :config_id, :integer)
3464 -> 0.0007s
3465-- add_column(:builds, :config_id, :integer)
3466 -> 0.0007s
3467-- add_column(:jobs, :config_id, :integer)
3468 -> 0.0006s
3469== 20180331000000 CreateConfigs: migrated (0.0262s) ===========================
3471== 20180404000001 CreateInstallations: migrating ==============================
3472-- create_table(:installations, {:id=>:integer})
3473 -> 0.0125s
3474-- change_table(:repositories)
3475 -> 0.0014s
3476== 20180404000001 CreateInstallations: migrated (0.0140s) =====================
3478== 20180410000000 RequestsDropPayload: migrating ==============================
3479-- remove_column(:requests, :payload, :text)
3480 -> 0.0019s
3481== 20180410000000 RequestsDropPayload: migrated (0.0020s) =====================
3483== 20180413000000 IndexBranchesOnRepositoryIdAndNameAndId: migrating ==========
3484-- execute("CREATE INDEX CONCURRENTLY index_branches_on_repository_id_and_name_and_id ON branches (repository_id, name, id)")
3485 -> 0.0043s
3486-- execute("DROP INDEX CONCURRENTLY index_branches_on_repository_id_and_name")
3487 -> 0.0026s
3488== 20180413000000 IndexBranchesOnRepositoryIdAndNameAndId: migrated (0.0072s) =
3490== 20180417000000 IndexBuildsOrganizationsUsersOnUpdatedAt: migrating =========
3491-- execute("CREATE INDEX CONCURRENTLY index_builds_on_updated_at ON builds (updated_at)")
3492 -> 0.0042s
3493-- execute("CREATE INDEX CONCURRENTLY index_users_on_updated_at ON users (updated_at)")
3494 -> 0.0038s
3495-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_updated_at ON repositories (updated_at)")
3496 -> 0.0041s
3497-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_updated_at ON organizations (updated_at)")
3498 -> 0.0038s
3499== 20180417000000 IndexBuildsOrganizationsUsersOnUpdatedAt: migrated (0.0160s)
3501== 20180420000000 ConstraintsAndIndexesForGhApps: migrating ===================
3502-- execute("CREATE UNIQUE INDEX CONCURRENTLY github_id_installations_idx ON installations (github_id)")
3503 -> 0.0038s
3504-- execute("CREATE INDEX CONCURRENTLY managed_repositories_idx ON repositories (managed_by_installation_at)")
3505 -> 0.0035s
3506-- execute("CREATE UNIQUE INDEX CONCURRENTLY owner_installations_idx ON installations (owner_id, owner_type) WHERE removed_by_id IS NULL")
3507 -> 0.0037s
3508== 20180420000000 ConstraintsAndIndexesForGhApps: migrated (0.0112s) ==========
3510== 20180425000000 IndexActiveOnOrg: migrating =================================
3511-- execute("CREATE INDEX CONCURRENTLY index_active_on_org ON repositories (active_on_org)")
3512 -> 0.0036s
3513== 20180425000000 IndexActiveOnOrg: migrated (0.0036s) ========================
3515== 20180425100000 AddRemovedAtOnInstallations: migrating ======================
3516-- add_column(:installations, :removed_at, :timestamp, {:precision=>nil})
3517 -> 0.0007s
3518== 20180425100000 AddRemovedAtOnInstallations: migrated (0.0007s) =============
3520== 20180429000000 IndexRepositoriesOnOwnerNameAndName: migrating ==============
3521-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_name_and_name ON repositories (owner_name, name) WHERE invalidated_at IS NULL")
3522 -> 0.0036s
3523== 20180429000000 IndexRepositoriesOnOwnerNameAndName: migrated (0.0036s) =====
3525== 20180501000000 IndexJobsOnOwnerWhereStateRunning: migrating ================
3526-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_where_state_running ON jobs (owner_id, owner_type) WHERE state IN ('queued', 'received', 'started')")
3527 -> 0.0039s
3528== 20180501000000 IndexJobsOnOwnerWhereStateRunning: migrated (0.0039s) =======
3530== 20180517000000 IndexRequestsConfigId: migrating ============================
3531-- execute("CREATE INDEX CONCURRENTLY index_requests_on_config_id ON requests (config_id)")
3532 -> 0.0037s
3533== 20180517000000 IndexRequestsConfigId: migrated (0.0037s) ===================
3535== 20180517000001 IndexBuildsConfigId: migrating ==============================
3536-- execute("CREATE INDEX CONCURRENTLY index_builds_on_config_id ON requests (config_id)")
3537 -> 0.0034s
3538== 20180517000001 IndexBuildsConfigId: migrated (0.0034s) =====================
3540== 20180517000002 IndexJobsConfigId: migrating ================================
3541-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_config_id ON requests (config_id)")
3542 -> 0.0036s
3543== 20180517000002 IndexJobsConfigId: migrated (0.0036s) =======================
3545== 20180518000000 IndexBuildsOnMultiple: migrating ============================
3546-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_builds_on_repo_branch_event_type_and_private ON builds (repository_id, branch, event_type, private)")
3547 -> 0.0038s
3548== 20180518000000 IndexBuildsOnMultiple: migrated (0.0038s) ===================
3550== 20180522000000 AddActiveFlagToCrons: migrating =============================
3551-- change_table(:crons)
3552 -> 0.0014s
3553-- add_index(:crons, :next_run, {:where=>"(active IS TRUE)", :algorithm=>:concurrently})
3554 -> 0.0039s
3555== 20180522000000 AddActiveFlagToCrons: migrated (0.0054s) ====================
3557== 20180531000000 CreateRequestYamlConfigs: migrating =========================
3558-- create_table(:request_yaml_configs, {:id=>:integer})
3559 -> 0.0057s
3560-- add_index(:request_yaml_configs, [:repository_id, :key])
3561 -> 0.0024s
3562-- add_column(:requests, :yaml_config_id, :integer)
3563 -> 0.0009s
3564== 20180531000000 CreateRequestYamlConfigs: migrated (0.0092s) ================
3566== 20180606000000 IndexCommitsOnRepositoryId: migrating =======================
3567-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_commits_on_repository_id ON commits (repository_id)")
3568 -> 0.0039s
3569== 20180606000000 IndexCommitsOnRepositoryId: migrated (0.0040s) ==============
3571== 20180606000001 IndexJobsOnRepositoryId: migrating ==========================
3572-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_jobs_on_repository_id ON jobs (repository_id)")
3573 -> 0.0038s
3574== 20180606000001 IndexJobsOnRepositoryId: migrated (0.0038s) =================
3576== 20180614000000 DropRequestsConfig: migrating ===============================
3577-- remove_column(:requests, :config)
3578 -> 0.0007s
3579== 20180614000000 DropRequestsConfig: migrated (0.0007s) ======================
3581== 20180614000001 DropBuildsConfig: migrating =================================
3582-- remove_column(:builds, :config)
3583 -> 0.0007s
3584== 20180614000001 DropBuildsConfig: migrated (0.0007s) ========================
3586== 20180614000002 DropJobsConfig: migrating ===================================
3587-- remove_column(:jobs, :config)
3588 -> 0.0007s
3589== 20180614000002 DropJobsConfig: migrated (0.0007s) ==========================
3591== 20180620000000 IndexBuildsOnRepositoryIdEventTypeId: migrating =============
3592-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_builds_on_repository_id_event_type_id ON builds (repository_id, event_type, id DESC)")
3593 -> 0.0039s
3594== 20180620000000 IndexBuildsOnRepositoryIdEventTypeId: migrated (0.0040s) ====
3596== 20180725000000 CreateCancellations: migrating ==============================
3597-- create_table(:cancellations, {:id=>:integer})
3598 -> 0.0075s
3599== 20180725000000 CreateCancellations: migrated (0.0075s) =====================
3601== 20180726000000 CommitsIndexAuthorEmail: migrating ==========================
3602-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_commits_on_author_email ON commits (author_email)")
3603 -> 0.0035s
3604== 20180726000000 CommitsIndexAuthorEmail: migrated (0.0035s) =================
3606== 20180726000001 CommitsIndexCommitterEmail: migrating =======================
3607-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_commits_on_committer_email ON commits (committer_email)")
3608 -> 0.0031s
3609== 20180726000001 CommitsIndexCommitterEmail: migrated (0.0031s) ==============
3611== 20180801000001 UsersAddRedactedAt: migrating ===============================
3612-- change_table(:users)
3613 -> 0.0007s
3614== 20180801000001 UsersAddRedactedAt: migrated (0.0008s) ======================
3616== 20180822000000 CreateEmailUnsubscribes: migrating ==========================
3617-- create_table(:email_unsubscribes, {:id=>:integer})
3618 -> 0.0088s
3619== 20180822000000 CreateEmailUnsubscribes: migrated (0.0089s) =================
3621== 20180823000000 AddPreferences: migrating ===================================
3622-- change_table(:users)
3623 -> 0.0012s
3624== 20180823000000 AddPreferences: migrated (0.0012s) ==========================
3626== 20180828000000 ChangePreferencesDefault: migrating =========================
3627-- change_column_default(:users, :preferences, {})
3628 -> 0.0037s
3629== 20180828000000 ChangePreferencesDefault: migrated (0.0037s) ================
3631== 20180829000000 MakeEmailUnsubscribesIdBigint: migrating ====================
3632-- change_column(:email_unsubscribes, :id, :bigint)
3633 -> 0.0076s
3634== 20180829000000 MakeEmailUnsubscribesIdBigint: migrated (0.0077s) ===========
3636== 20180830000001 JobsAddRestartedAt: migrating ===============================
3637-- change_table(:jobs)
3638 -> 0.0008s
3639== 20180830000001 JobsAddRestartedAt: migrated (0.0008s) ======================
3641== 20180830000002 BuildsAddRestartedAt: migrating =============================
3642-- change_table(:builds)
3643 -> 0.0007s
3644== 20180830000002 BuildsAddRestartedAt: migrated (0.0008s) ====================
3646== 20180830000003 JobVersionsCreate: migrating ================================
3647-- create_table(:job_versions, {:id=>:integer})
3648 -> 0.0055s
3649== 20180830000003 JobVersionsCreate: migrated (0.0055s) =======================
3651== 20180903000000 JobConfigsIndexConfigResourcesGpu: migrating ================
3652-- 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")
3653 -> 0.0010s
3654-- 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")
3655 -> 0.0038s
3656== 20180903000000 JobConfigsIndexConfigResourcesGpu: migrated (0.0048s) =======
3658== 20180903000001 FixIndexesOnBuildsAndJobsConfigId: migrating ================
3659-- execute("DROP INDEX index_builds_on_config_id")
3660 -> 0.0012s
3661-- execute("CREATE INDEX CONCURRENTLY index_builds_on_config_id ON builds (config_id)")
3662 -> 0.0033s
3663-- execute("DROP INDEX index_jobs_on_config_id")
3664 -> 0.0011s
3665-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_config_id ON jobs (config_id)")
3666 -> 0.0034s
3667== 20180903000001 FixIndexesOnBuildsAndJobsConfigId: migrated (0.0092s) =======
3669== 20180904000001 CreateJobConfigsGpu: migrating ==============================
3670-- 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")
3671 -> 0.0020s
3672== 20180904000001 CreateJobConfigsGpu: migrated (0.0021s) =====================
3674== 20180906000000 AddIndexUsersPreferencesBuildEmails: migrating ==============
3675-- execute("CREATE INDEX CONCURRENTLY user_preferences_build_emails_false ON users (id) WHERE preferences->>'build_emails' = 'false';\n")
3676 -> 0.0038s
3677== 20180906000000 AddIndexUsersPreferencesBuildEmails: migrated (0.0039s) =====
3679== 20181002115306 DeleteDuplicateRecordsFromMemberships: migrating ============
3680-- 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")
3681 -> 0.0013s
3682== 20181002115306 DeleteDuplicateRecordsFromMemberships: migrated (0.0013s) ===
3684== 20181002115307 AddConstraintOnOrganizationAndUserToMemberships: migrating ==
3685-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organization_id_and_user_id_on_memberships ON memberships USING btree (organization_id, user_id);\n")
3686 -> 0.0035s
3687== 20181002115307 AddConstraintOnOrganizationAndUserToMemberships: migrated (0.0035s)
3689== 20181018000000 IndexBuildsOnCreatedAt: migrating ===========================
3690-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_builds_on_created_at ON builds (created_at)")
3691 -> 0.0035s
3692== 20181018000000 IndexBuildsOnCreatedAt: migrated (0.0035s) ==================
3694== 20181029120000 AddMigrationStatusColumnToRepositories: migrating ===========
3695-- add_column(:repositories, :migration_status, :string)
3696 -> 0.0009s
3697== 20181029120000 AddMigrationStatusColumnToRepositories: migrated (0.0010s) ==
3699== 20181113120000 AddGithubGuidColumnToRequests: migrating ====================
3700-- add_column(:requests, :github_guid, :text)
3701 -> 0.0010s
3702-- add_index(:requests, :github_guid, {:algorithm=>:concurrently, :unique=>true})
3703 -> 0.0037s
3704== 20181113120000 AddGithubGuidColumnToRequests: migrated (0.0047s) ===========
3706== 20181116800000 AddConstraintsToMultipleTables: migrating ===================
3707-- 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")
3708 -> 0.0011s
3709-- 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")
3710 -> 0.0008s
3711-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
3712 -> 0.0007s
3713-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) NOT VALID")
3714 -> 0.0007s
3715-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_request_id FOREIGN KEY (request_id) REFERENCES requests(id) NOT VALID")
3716 -> 0.0011s
3717-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_pull_request_id FOREIGN KEY (pull_request_id) REFERENCES pull_requests(id) NOT VALID")
3718 -> 0.0010s
3719-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")
3720 -> 0.0011s
3721-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) NOT VALID")
3722 -> 0.0012s
3723-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_config_id FOREIGN KEY (config_id) REFERENCES build_configs(id) NOT VALID")
3724 -> 0.0010s
3725-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
3726 -> 0.0012s
3727-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) NOT VALID")
3728 -> 0.0011s
3729-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_stage_id FOREIGN KEY (stage_id) REFERENCES stages(id) NOT VALID")
3730 -> 0.0019s
3731-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_config_id FOREIGN KEY (config_id) REFERENCES job_configs(id) NOT VALID")
3732 -> 0.0016s
3733-- execute("ALTER TABLE branches ADD CONSTRAINT fk_branches_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
3734 -> 0.0013s
3735-- 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")
3736 -> 0.0018s
3737-- execute("ALTER TABLE tags ADD CONSTRAINT fk_tags_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
3738 -> 0.0014s
3739-- 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")
3740 -> 0.0016s
3741-- execute("ALTER TABLE commits ADD CONSTRAINT fk_commits_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
3742 -> 0.0015s
3743-- execute("ALTER TABLE commits ADD CONSTRAINT fk_commits_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")
3744 -> 0.0015s
3745-- execute("ALTER TABLE commits ADD CONSTRAINT fk_commits_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) NOT VALID")
3746 -> 0.0007s
3747-- execute("ALTER TABLE crons ADD CONSTRAINT fk_crons_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")
3748 -> 0.0022s
3749-- execute("ALTER TABLE job_configs ADD CONSTRAINT fk_job_configs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
3750 -> 0.0014s
3751-- execute("ALTER TABLE build_configs ADD CONSTRAINT fk_build_configs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
3752 -> 0.0015s
3753-- execute("ALTER TABLE pull_requests ADD CONSTRAINT fk_pull_requests_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
3754 -> 0.0016s
3755-- execute("ALTER TABLE ssl_keys ADD CONSTRAINT fk_ssl_keys_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
3756 -> 0.0019s
3757-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) NOT VALID")
3758 -> 0.0008s
3759-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_pull_request_id FOREIGN KEY (pull_request_id) REFERENCES pull_requests(id) NOT VALID")
3760 -> 0.0010s
3761-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")
3762 -> 0.0010s
3763-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) NOT VALID")
3764 -> 0.0010s
3765-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_config_id FOREIGN KEY (config_id) REFERENCES request_configs(id) NOT VALID")
3766 -> 0.0012s
3767-- execute("ALTER TABLE stages ADD CONSTRAINT fk_stages_on_build_id FOREIGN KEY (build_id) REFERENCES builds(id) NOT VALID")
3768 -> 0.0011s
3769== 20181116800000 AddConstraintsToMultipleTables: migrated (0.0399s) ==========
3771== 20181116800001 ValidateConstraints: migrating ==============================
3772-- execute("ALTER TABLE repositories VALIDATE CONSTRAINT fk_repositories_on_current_build_id")
3773 -> 0.0033s
3774-- execute("ALTER TABLE repositories VALIDATE CONSTRAINT fk_repositories_on_last_build_id")
3775 -> 0.0014s
3776-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_repository_id")
3777 -> 0.0012s
3778-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_commit_id")
3779 -> 0.0015s
3780-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_request_id")
3781 -> 0.0017s
3782-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_pull_request_id")
3783 -> 0.0012s
3784-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_branch_id")
3785 -> 0.0015s
3786-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_tag_id")
3787 -> 0.0015s
3788-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_config_id")
3789 -> 0.0014s
3790-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_repository_id")
3791 -> 0.0020s
3792-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_commit_id")
3793 -> 0.0011s
3794-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_stage_id")
3795 -> 0.0014s
3796-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_config_id")
3797 -> 0.0011s
3798-- execute("ALTER TABLE branches VALIDATE CONSTRAINT fk_branches_on_repository_id")
3799 -> 0.0010s
3800-- execute("ALTER TABLE branches VALIDATE CONSTRAINT fk_branches_on_last_build_id")
3801 -> 0.0011s
3802-- execute("ALTER TABLE tags VALIDATE CONSTRAINT fk_tags_on_repository_id")
3803 -> 0.0012s
3804-- execute("ALTER TABLE tags VALIDATE CONSTRAINT fk_tags_on_last_build_id")
3805 -> 0.0010s
3806-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_commits_on_repository_id")
3807 -> 0.0010s
3808-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_commits_on_branch_id")
3809 -> 0.0009s
3810-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_commits_on_tag_id")
3811 -> 0.0009s
3812-- execute("ALTER TABLE crons VALIDATE CONSTRAINT fk_crons_on_branch_id")
3813 -> 0.0012s
3814-- execute("ALTER TABLE job_configs VALIDATE CONSTRAINT fk_job_configs_on_repository_id")
3815 -> 0.0010s
3816-- execute("ALTER TABLE build_configs VALIDATE CONSTRAINT fk_build_configs_on_repository_id")
3817 -> 0.0010s
3818-- execute("ALTER TABLE pull_requests VALIDATE CONSTRAINT fk_pull_requests_on_repository_id")
3819 -> 0.0010s
3820-- execute("ALTER TABLE ssl_keys VALIDATE CONSTRAINT fk_ssl_keys_on_repository_id")
3821 -> 0.0013s
3822-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_commit_id")
3823 -> 0.0009s
3824-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_pull_request_id")
3825 -> 0.0009s
3826-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_branch_id")
3827 -> 0.0010s
3828-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_tag_id")
3829 -> 0.0008s
3830-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_config_id")
3831 -> 0.0009s
3832-- execute("ALTER TABLE stages VALIDATE CONSTRAINT fk_stages_on_build_id")
3833 -> 0.0009s
3834== 20181116800001 ValidateConstraints: migrated (0.0389s) =====================
3836== 20181126080000 AddIndexesForForeignKeys: migrating =========================
3837-- index_exists?(:builds, :branch_id)
3838 -> 0.0120s
3839-- add_index(:builds, :branch_id, {:algorithm=>:concurrently})
3840 -> 0.0042s
3841-- index_exists?(:builds, :commit_id)
3842 -> 0.0117s
3843-- add_index(:builds, :commit_id, {:algorithm=>:concurrently})
3844 -> 0.0047s
3845-- index_exists?(:builds, :pull_request_id)
3846 -> 0.0126s
3847-- add_index(:builds, :pull_request_id, {:algorithm=>:concurrently})
3848 -> 0.0050s
3849-- index_exists?(:builds, :tag_id)
3850 -> 0.0132s
3851-- add_index(:builds, :tag_id, {:algorithm=>:concurrently})
3852 -> 0.0049s
3853-- index_exists?(:jobs, :commit_id)
3854 -> 0.0100s
3855-- add_index(:jobs, :commit_id, {:algorithm=>:concurrently})
3856 -> 0.0042s
3857-- index_exists?(:branches, :last_build_id)
3858 -> 0.0034s
3859-- add_index(:branches, :last_build_id, {:algorithm=>:concurrently})
3860 -> 0.0041s
3861-- index_exists?(:tags, :repository_id)
3862 -> 0.0028s
3863-- add_index(:tags, :repository_id, {:algorithm=>:concurrently})
3864 -> 0.0035s
3865-- index_exists?(:tags, :last_build_id)
3866 -> 0.0032s
3867-- add_index(:tags, :last_build_id, {:algorithm=>:concurrently})
3868 -> 0.0035s
3869-- index_exists?(:commits, :tag_id)
3870 -> 0.0021s
3871-- add_index(:commits, :tag_id, {:algorithm=>:concurrently})
3872 -> 0.0036s
3873-- index_exists?(:commits, :branch_id)
3874 -> 0.0023s
3875-- add_index(:commits, :branch_id, {:algorithm=>:concurrently})
3876 -> 0.0033s
3877-- index_exists?(:job_configs, :repository_id)
3878 -> 0.0012s
3879-- add_index(:job_configs, :repository_id, {:algorithm=>:concurrently})
3880 -> 0.0030s
3881-- index_exists?(:build_configs, :repository_id)
3882 -> 0.0010s
3883-- add_index(:build_configs, :repository_id, {:algorithm=>:concurrently})
3884 -> 0.0031s
3885-- index_exists?(:pull_requests, :repository_id)
3886 -> 0.0015s
3887-- add_index(:pull_requests, :repository_id, {:algorithm=>:concurrently})
3888 -> 0.0030s
3889-- index_exists?(:requests, :pull_request_id)
3890 -> 0.0067s
3891-- add_index(:requests, :pull_request_id, {:algorithm=>:concurrently})
3892 -> 0.0041s
3893-- index_exists?(:requests, :tag_id)
3894 -> 0.0068s
3895-- add_index(:requests, :tag_id, {:algorithm=>:concurrently})
3896 -> 0.0044s
3897-- index_exists?(:requests, :branch_id)
3898 -> 0.0068s
3899-- add_index(:requests, :branch_id, {:algorithm=>:concurrently})
3900 -> 0.0036s
3901-- index_exists?(:repositories, :current_build_id)
3902 -> 0.0062s
3903-- add_index(:repositories, :current_build_id, {:algorithm=>:concurrently})
3904 -> 0.0042s
3905-- index_exists?(:repositories, :last_build_id)
3906 -> 0.0080s
3907-- add_index(:repositories, :last_build_id, {:algorithm=>:concurrently})
3908 -> 0.0044s
3909-- index_exists?(:crons, :branch_id)
3910 -> 0.0031s
3911-- add_index(:crons, :branch_id, {:algorithm=>:concurrently})
3912 -> 0.0039s
3913== 20181126080000 AddIndexesForForeignKeys: migrated (0.1909s) ================
3915== 20181128120000 AddUniqueIndexToBranchesOnRepositoryIdAndName: migrating ====
3916-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_on_repository_id_and_name ON branches(repository_id, name)")
3917 -> 0.0040s
3918== 20181128120000 AddUniqueIndexToBranchesOnRepositoryIdAndName: migrated (0.0040s)
3920== 20181203075818 AddUniqueNameColumnToBranches: migrating ====================
3921-- add_column(:branches, :unique_name, :text)
3922 -> 0.0009s
3923== 20181203075818 AddUniqueNameColumnToBranches: migrated (0.0010s) ===========
3925== 20181203075819 AddSetUniqueNameTriggerToBranches: migrating ================
3926-- 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")
3927 -> 0.0010s
3928== 20181203075819 AddSetUniqueNameTriggerToBranches: migrated (0.0011s) =======
3930== 20181203080356 CreateIndexOnBranchesUniqueNameAndRepositoryId: migrating ===
3931-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_repository_id_unique_name ON branches(repository_id, unique_name) WHERE unique_name IS NOT NULL")
3932 -> 0.0045s
3933== 20181203080356 CreateIndexOnBranchesUniqueNameAndRepositoryId: migrated (0.0046s)
3935== 20181205152712 AddUniqueIndexToCronsOnBranchId: migrating ==================
3936-- execute("DROP INDEX CONCURRENTLY index_crons_on_branch_id")
3937 -> 0.0020s
3938-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_crons_on_branch_id ON crons(branch_id)")
3939 -> 0.0034s
3940== 20181205152712 AddUniqueIndexToCronsOnBranchId: migrated (0.0055s) =========
3942== 20190102000000 AddOrganizationPreferences: migrating =======================
3943-- change_table(:organizations)
3944 -> 0.0011s
3945== 20190102000000 AddOrganizationPreferences: migrated (0.0011s) ==============
3947== 20190102000001 ChangeOrganizationPreferencesDefault: migrating =============
3948-- change_column_default(:organizations, :preferences, {})
3949 -> 0.0027s
3950== 20190102000001 ChangeOrganizationPreferencesDefault: migrated (0.0028s) ====
3952== 20190109000000 CreateBetaMigrationRequestTable: migrating ==================
3953-- create_table(:beta_migration_requests, {:id=>:integer})
3954 -> 0.0055s
3955-- add_index(:beta_migration_requests, [:owner_type, :owner_id])
3956 -> 0.0020s
3957== 20190109000000 CreateBetaMigrationRequestTable: migrated (0.0076s) =========
3959== 20190118000000 AddBetaMigrationRequestColumnToOrganizations: migrating =====
3960-- add_column(:organizations, :beta_migration_request_id, :integer)
3961 -> 0.0007s
3962== 20190118000000 AddBetaMigrationRequestColumnToOrganizations: migrated (0.0008s)
3964== 20190204000000 MakeSubscriptionOwnerNotNullable: migrating =================
3965-- change_column_null(:subscriptions, :owner_type, false)
3966 -> 0.0006s
3967-- change_column_null(:subscriptions, :owner_id, false)
3968 -> 0.0003s
3969== 20190204000000 MakeSubscriptionOwnerNotNullable: migrated (0.0010s) ========
3971== 20190313000000 RequestRawConfigsCreate: migrating ==========================
3972-- create_table(:request_raw_configs, {:id=>:integer})
3973 -> 0.0052s
3974-- add_index(:request_raw_configs, [:repository_id, :key])
3975 -> 0.0019s
3976-- create_table(:request_raw_configurations, {:id=>:integer})
3977 -> 0.0049s
3978-- add_index(:request_raw_configurations, :request_id)
3979 -> 0.0019s
3980-- add_index(:request_raw_configurations, :request_raw_config_id)
3981 -> 0.0019s
3982== 20190313000000 RequestRawConfigsCreate: migrated (0.0159s) =================
3984== 20190329093854 CreateGatekeeperWorkers: migrating ==========================
3985-- create_table(:gatekeeper_workers)
3986 -> 0.0033s
3987-- execute("INSERT INTO gatekeeper_workers(id) SELECT generate_series(1,200) as id;")
3988 -> 0.0009s
3989== 20190329093854 CreateGatekeeperWorkers: migrated (0.0042s) =================
3991== 20190409133118 AddUniqueNumberColumnToBuilds: migrating ====================
3992-- add_column(:builds, :unique_number, :int)
3993 -> 0.0008s
3994== 20190409133118 AddUniqueNumberColumnToBuilds: migrated (0.0008s) ===========
3996== 20190409133320 AddSetUniqueNumberTriggerToBuilds: migrating ================
3997-- 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")
3998 -> 0.0012s
3999== 20190409133320 AddSetUniqueNumberTriggerToBuilds: migrated (0.0014s) =======
4001== 20190409133444 CreateUniqueIndexOnRepositoryIdAndNumberOnBuilds: migrating =
4002-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_builds_repository_id_unique_number ON builds(repository_id, unique_number) WHERE unique_number IS NOT NULL")
4003 -> 0.0041s
4004== 20190409133444 CreateUniqueIndexOnRepositoryIdAndNumberOnBuilds: migrated (0.0041s)
4006== 20190410121039 MakeSetUniqueNumberTriggerRunOnlyOnInsert: migrating ========
4007-- 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")
4008 -> 0.0006s
4009== 20190410121039 MakeSetUniqueNumberTriggerRunOnlyOnInsert: migrated (0.0007s)
4011== 20190416071629 RemoveUniqueNameFromBranches: migrating =====================
4012-- execute("drop index concurrently index_branches_repository_id_unique_name;")
4013 -> 0.0023s
4014-- execute("DROP TRIGGER IF EXISTS set_unique_name_on_branches ON branches;\nDROP FUNCTION IF EXISTS set_unique_name();\n\n")
4015 -> 0.0009s
4016-- remove_column(:branches, :unique_name)
4017 -> 0.0008s
4018== 20190416071629 RemoveUniqueNameFromBranches: migrated (0.0041s) ============
4020== 20190417072423 AlterBuildsUniqueNumberIndex: migrating =====================
4021-- 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")
4022 -> 0.0037s
4023-- execute("DROP INDEX CONCURRENTLY index_builds_repository_id_unique_number")
4024 -> 0.0021s
4025-- execute("ALTER INDEX index_builds_repository_id_unique_number_new RENAME TO index_builds_repository_id_unique_number")
4026 -> 0.0008s
4027== 20190417072423 AlterBuildsUniqueNumberIndex: migrated (0.0067s) ============
4029== 20190417072838 ReinstallSetUniqueNumberTrigger: migrating ==================
4030-- execute("DROP TRIGGER IF EXISTS set_unique_number_on_builds ON builds;\nDROP FUNCTION IF EXISTS set_unique_number();\n")
4031 -> 0.0007s
4032-- 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")
4033 -> 0.0008s
4034== 20190417072838 ReinstallSetUniqueNumberTrigger: migrated (0.0018s) =========
4036== 20190502175059 AddMergeableStateToPullRequests: migrating ==================
4037-- add_column(:pull_requests, :mergeable_state, :string)
4038 -> 0.0008s
4039== 20190502175059 AddMergeableStateToPullRequests: migrated (0.0008s) =========
4041== 20190510121000 AddReposIndexOnLowerOwnerNameAndName: migrating =============
4042-- 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")
4043 -> 0.0042s
4044== 20190510121000 AddReposIndexOnLowerOwnerNameAndName: migrated (0.0043s) ====
4046== 20190605121000 AddHistoryMigrationStatusToRepositories: migrating ==========
4047-- add_column(:repositories, :history_migration_status, :string)
4048 -> 0.0008s
4049== 20190605121000 AddHistoryMigrationStatusToRepositories: migrated (0.0008s) =
4051== 20190605155459 AddPullRequestMergeableToRequests: migrating ================
4052-- add_column(:requests, :pull_request_mergeable, :string)
4053 -> 0.0009s
4054== 20190605155459 AddPullRequestMergeableToRequests: migrated (0.0010s) =======
4056== 20190613120000 SoftDeleteRepositoryAlongWithItsData: migrating =============
4057-- execute("create table if not exists deleted_builds (like builds)")
4058 -> 0.0038s
4059-- execute("create table if not exists deleted_stages (like stages)")
4060 -> 0.0026s
4061-- execute("create table if not exists deleted_jobs (like jobs)")
4062 -> 0.0028s
4063-- execute("create table if not exists deleted_requests (like requests)")
4064 -> 0.0030s
4065-- execute("create table if not exists deleted_commits (like commits)")
4066 -> 0.0029s
4067-- execute("create table if not exists deleted_pull_requests (like pull_requests)")
4068 -> 0.0026s
4069-- execute("create table if not exists deleted_job_configs (like job_configs)")
4070 -> 0.0025s
4071-- execute("create table if not exists deleted_build_configs (like build_configs)")
4072 -> 0.0026s
4073-- execute("create table if not exists deleted_request_configs (like request_configs)")
4074 -> 0.0028s
4075-- execute("create table if not exists deleted_request_payloads (like request_payloads)")
4076 -> 0.0026s
4077-- execute("create table if not exists deleted_ssl_keys (like ssl_keys)")
4078 -> 0.0026s
4079-- execute("create table if not exists deleted_tags (like tags)")
4080 -> 0.0027s
4081-- 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")
4082 -> 0.0018s
4083== 20190613120000 SoftDeleteRepositoryAlongWithItsData: migrated (0.0361s) ====
4085== 20190618082559 AddVcsTypeToUser: migrating =================================
4086-- add_column(:users, :vcs_type, :string, {:default=>nil})
4087 -> 0.0013s
4088-- execute("ALTER TABLE users ALTER COLUMN vcs_type SET DEFAULT 'GithubUser'")
4089 -> 0.0004s
4090-- select_value("SELECT id FROM users ORDER BY id DESC LIMIT 1")
4091 -> 0.0010s
4092-- execute("UPDATE users SET vcs_type = 'GithubUser' WHERE id BETWEEN 0 AND 5000")
4093 -> 0.0007s
4094== 20190618082559 AddVcsTypeToUser: migrated (0.0048s) ========================
4096== 20190701082559 AddVcsTypeToRepository: migrating ===========================
4097-- add_column(:repositories, :vcs_type, :string, {:default=>nil})
4098 -> 0.0011s
4099-- execute("ALTER TABLE repositories ALTER COLUMN vcs_type SET DEFAULT 'GithubRepository'")
4100 -> 0.0005s
4101-- select_value("SELECT id FROM repositories ORDER BY id DESC LIMIT 1")
4102 -> 0.0009s
4103-- execute("UPDATE repositories SET vcs_type = 'GithubRepository' WHERE id BETWEEN 0 AND 5000")
4104 -> 0.0008s
4105== 20190701082559 AddVcsTypeToRepository: migrated (0.0046s) ==================
4107== 20190704082559 AddVcsTypeToOrganization: migrating =========================
4108-- add_column(:organizations, :vcs_type, :string, {:default=>nil})
4109 -> 0.0011s
4110-- execute("ALTER TABLE organizations ALTER COLUMN vcs_type SET DEFAULT 'GithubOrganization'")
4111 -> 0.0004s
4112-- select_value("SELECT id FROM organizations ORDER BY id DESC LIMIT 1")
4113 -> 0.0008s
4114-- execute("UPDATE organizations SET vcs_type = 'GithubOrganization' WHERE id BETWEEN 0 AND 5000")
4115 -> 0.0006s
4116== 20190704082559 AddVcsTypeToOrganization: migrated (0.0041s) ================
4118== 20190718092750 AddDeleteCascadeToForeignKeys: migrating ====================
4119-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4120 -> 0.0012s
4121-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) ON DELETE CASCADE NOT VALID")
4122 -> 0.0008s
4123-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_request_id FOREIGN KEY (request_id) REFERENCES requests(id) ON DELETE CASCADE NOT VALID")
4124 -> 0.0009s
4125-- 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")
4126 -> 0.0008s
4127-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")
4128 -> 0.0008s
4129-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE NOT VALID")
4130 -> 0.0009s
4131-- 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")
4132 -> 0.0008s
4133-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_new_jobs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4134 -> 0.0009s
4135-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_new_jobs_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) ON DELETE CASCADE NOT VALID")
4136 -> 0.0008s
4137-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_new_jobs_on_stage_id FOREIGN KEY (stage_id) REFERENCES stages(id) ON DELETE CASCADE NOT VALID")
4138 -> 0.0007s
4139-- 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")
4140 -> 0.0007s
4141-- execute("ALTER TABLE branches ADD CONSTRAINT fk_new_branches_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4142 -> 0.0008s
4143-- execute("ALTER TABLE tags ADD CONSTRAINT fk_new_tags_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4144 -> 0.0008s
4145-- execute("ALTER TABLE commits ADD CONSTRAINT fk_new_commits_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4146 -> 0.0007s
4147-- execute("ALTER TABLE commits ADD CONSTRAINT fk_new_commits_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")
4148 -> 0.0007s
4149-- execute("ALTER TABLE commits ADD CONSTRAINT fk_new_commits_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE NOT VALID")
4150 -> 0.0007s
4151-- execute("ALTER TABLE crons ADD CONSTRAINT fk_new_crons_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")
4152 -> 0.0007s
4153-- 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")
4154 -> 0.0007s
4155-- 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")
4156 -> 0.0008s
4157-- 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")
4158 -> 0.0008s
4159-- 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")
4160 -> 0.0007s
4161-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) ON DELETE CASCADE NOT VALID")
4162 -> 0.0008s
4163-- 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")
4164 -> 0.0008s
4165-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")
4166 -> 0.0007s
4167-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE NOT VALID")
4168 -> 0.0008s
4169-- 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")
4170 -> 0.0007s
4171-- execute("ALTER TABLE stages ADD CONSTRAINT fk_new_stages_on_build_id FOREIGN KEY (build_id) REFERENCES builds(id) ON DELETE CASCADE NOT VALID")
4172 -> 0.0008s
4173-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_repository_id")
4174 -> 0.0013s
4175-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_commit_id")
4176 -> 0.0010s
4177-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_request_id")
4178 -> 0.0011s
4179-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_pull_request_id")
4180 -> 0.0009s
4181-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_branch_id")
4182 -> 0.0009s
4183-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_tag_id")
4184 -> 0.0009s
4185-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_config_id")
4186 -> 0.0009s
4187-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_repository_id")
4188 -> 0.0009s
4189-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_commit_id")
4190 -> 0.0008s
4191-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_stage_id")
4192 -> 0.0008s
4193-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_config_id")
4194 -> 0.0008s
4195-- execute("ALTER TABLE branches VALIDATE CONSTRAINT fk_new_branches_on_repository_id")
4196 -> 0.0007s
4197-- execute("ALTER TABLE tags VALIDATE CONSTRAINT fk_new_tags_on_repository_id")
4198 -> 0.0008s
4199-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_new_commits_on_repository_id")
4200 -> 0.0008s
4201-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_new_commits_on_branch_id")
4202 -> 0.0007s
4203-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_new_commits_on_tag_id")
4204 -> 0.0007s
4205-- execute("ALTER TABLE crons VALIDATE CONSTRAINT fk_new_crons_on_branch_id")
4206 -> 0.0047s
4207-- execute("ALTER TABLE job_configs VALIDATE CONSTRAINT fk_new_job_configs_on_repository_id")
4208 -> 0.0008s
4209-- execute("ALTER TABLE build_configs VALIDATE CONSTRAINT fk_new_build_configs_on_repository_id")
4210 -> 0.0007s
4211-- execute("ALTER TABLE pull_requests VALIDATE CONSTRAINT fk_new_pull_requests_on_repository_id")
4212 -> 0.0007s
4213-- execute("ALTER TABLE ssl_keys VALIDATE CONSTRAINT fk_new_ssl_keys_on_repository_id")
4214 -> 0.0007s
4215-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_commit_id")
4216 -> 0.0008s
4217-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_pull_request_id")
4218 -> 0.0008s
4219-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_branch_id")
4220 -> 0.0007s
4221-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_tag_id")
4222 -> 0.0007s
4223-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_config_id")
4224 -> 0.0007s
4225-- execute("ALTER TABLE stages VALIDATE CONSTRAINT fk_new_stages_on_build_id")
4226 -> 0.0008s
4227-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_repository_id")
4228 -> 0.0009s
4229-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_commit_id")
4230 -> 0.0007s
4231-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_request_id")
4232 -> 0.0008s
4233-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_pull_request_id")
4234 -> 0.0007s
4235-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_branch_id")
4236 -> 0.0008s
4237-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_tag_id")
4238 -> 0.0008s
4239-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_config_id")
4240 -> 0.0007s
4241-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_repository_id")
4242 -> 0.0008s
4243-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_commit_id")
4244 -> 0.0007s
4245-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_stage_id")
4246 -> 0.0007s
4247-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_config_id")
4248 -> 0.0007s
4249-- execute("ALTER TABLE branches DROP CONSTRAINT fk_branches_on_repository_id")
4250 -> 0.0008s
4251-- execute("ALTER TABLE tags DROP CONSTRAINT fk_tags_on_repository_id")
4252 -> 0.0007s
4253-- execute("ALTER TABLE commits DROP CONSTRAINT fk_commits_on_repository_id")
4254 -> 0.0007s
4255-- execute("ALTER TABLE commits DROP CONSTRAINT fk_commits_on_branch_id")
4256 -> 0.0006s
4257-- execute("ALTER TABLE commits DROP CONSTRAINT fk_commits_on_tag_id")
4258 -> 0.0007s
4259-- execute("ALTER TABLE crons DROP CONSTRAINT fk_crons_on_branch_id")
4260 -> 0.0007s
4261-- execute("ALTER TABLE job_configs DROP CONSTRAINT fk_job_configs_on_repository_id")
4262 -> 0.0007s
4263-- execute("ALTER TABLE build_configs DROP CONSTRAINT fk_build_configs_on_repository_id")
4264 -> 0.0007s
4265-- execute("ALTER TABLE pull_requests DROP CONSTRAINT fk_pull_requests_on_repository_id")
4266 -> 0.0007s
4267-- execute("ALTER TABLE ssl_keys DROP CONSTRAINT fk_ssl_keys_on_repository_id")
4268 -> 0.0007s
4269-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_commit_id")
4270 -> 0.0007s
4271-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_pull_request_id")
4272 -> 0.0007s
4273-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_branch_id")
4274 -> 0.0007s
4275-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_tag_id")
4276 -> 0.0007s
4277-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_config_id")
4278 -> 0.0006s
4279-- execute("ALTER TABLE stages DROP CONSTRAINT fk_stages_on_build_id")
4280 -> 0.0007s
4281-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_repository_id TO fk_builds_on_repository_id")
4282 -> 0.0004s
4283-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_commit_id TO fk_builds_on_commit_id")
4284 -> 0.0004s
4285-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_request_id TO fk_builds_on_request_id")
4286 -> 0.0004s
4287-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_pull_request_id TO fk_builds_on_pull_request_id")
4288 -> 0.0004s
4289-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_branch_id TO fk_builds_on_branch_id")
4290 -> 0.0004s
4291-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_tag_id TO fk_builds_on_tag_id")
4292 -> 0.0004s
4293-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_config_id TO fk_builds_on_config_id")
4294 -> 0.0004s
4295-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_repository_id TO fk_jobs_on_repository_id")
4296 -> 0.0003s
4297-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_commit_id TO fk_jobs_on_commit_id")
4298 -> 0.0004s
4299-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_stage_id TO fk_jobs_on_stage_id")
4300 -> 0.0004s
4301-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_config_id TO fk_jobs_on_config_id")
4302 -> 0.0005s
4303-- execute("ALTER TABLE branches RENAME CONSTRAINT fk_new_branches_on_repository_id TO fk_branches_on_repository_id")
4304 -> 0.0004s
4305-- execute("ALTER TABLE tags RENAME CONSTRAINT fk_new_tags_on_repository_id TO fk_tags_on_repository_id")
4306 -> 0.0004s
4307-- execute("ALTER TABLE commits RENAME CONSTRAINT fk_new_commits_on_repository_id TO fk_commits_on_repository_id")
4308 -> 0.0003s
4309-- execute("ALTER TABLE commits RENAME CONSTRAINT fk_new_commits_on_branch_id TO fk_commits_on_branch_id")
4310 -> 0.0003s
4311-- execute("ALTER TABLE commits RENAME CONSTRAINT fk_new_commits_on_tag_id TO fk_commits_on_tag_id")
4312 -> 0.0003s
4313-- execute("ALTER TABLE crons RENAME CONSTRAINT fk_new_crons_on_branch_id TO fk_crons_on_branch_id")
4314 -> 0.0003s
4315-- execute("ALTER TABLE job_configs RENAME CONSTRAINT fk_new_job_configs_on_repository_id TO fk_job_configs_on_repository_id")
4316 -> 0.0003s
4317-- execute("ALTER TABLE build_configs RENAME CONSTRAINT fk_new_build_configs_on_repository_id TO fk_build_configs_on_repository_id")
4318 -> 0.0003s
4319-- execute("ALTER TABLE pull_requests RENAME CONSTRAINT fk_new_pull_requests_on_repository_id TO fk_pull_requests_on_repository_id")
4320 -> 0.0003s
4321-- execute("ALTER TABLE ssl_keys RENAME CONSTRAINT fk_new_ssl_keys_on_repository_id TO fk_ssl_keys_on_repository_id")
4322 -> 0.0003s
4323-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_commit_id TO fk_requests_on_commit_id")
4324 -> 0.0003s
4325-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_pull_request_id TO fk_requests_on_pull_request_id")
4326 -> 0.0003s
4327-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_branch_id TO fk_requests_on_branch_id")
4328 -> 0.0004s
4329-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_tag_id TO fk_requests_on_tag_id")
4330 -> 0.0004s
4331-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_config_id TO fk_requests_on_config_id")
4332 -> 0.0005s
4333-- execute("ALTER TABLE stages RENAME CONSTRAINT fk_new_stages_on_build_id TO fk_stages_on_build_id")
4334 -> 0.0003s
4335== 20190718092750 AddDeleteCascadeToForeignKeys: migrated (0.0792s) ===========
4337== 20190718100426 UpdateSoftDeleteProcedure: migrating ========================
4338-- 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")
4339 -> 0.0044s
4340== 20190718100426 UpdateSoftDeleteProcedure: migrated (0.0046s) ===============
4342== 20190725103113 UpdateSoftDelete: migrating =================================
4343-- execute("create table deleted_request_yaml_configs (like request_yaml_configs)")
4344 -> 0.0032s
4345-- 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")
4346 -> 0.0017s
4347== 20190725103113 UpdateSoftDelete: migrated (0.0051s) ========================
4349== 20190725105934 AddOrgIdToConfigs: migrating ================================
4350-- add_column(:job_configs, :org_id, :bigint)
4351 -> 0.0011s
4352-- add_column(:deleted_job_configs, :org_id, :bigint)
4353 -> 0.0010s
4354-- add_column(:build_configs, :org_id, :bigint)
4355 -> 0.0012s
4356-- add_column(:deleted_build_configs, :org_id, :bigint)
4357 -> 0.0010s
4358-- add_column(:request_configs, :org_id, :bigint)
4359 -> 0.0010s
4360-- add_column(:deleted_request_configs, :org_id, :bigint)
4361 -> 0.0009s
4362-- add_column(:request_yaml_configs, :org_id, :bigint)
4363 -> 0.0009s
4364-- add_column(:deleted_request_yaml_configs, :org_id, :bigint)
4365 -> 0.0009s
4366-- add_column(:request_payloads, :org_id, :bigint)
4367 -> 0.0009s
4368-- add_column(:deleted_request_payloads, :org_id, :bigint)
4369 -> 0.0009s
4370-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_job_configs_on_org_id ON job_configs (org_id)")
4371 -> 0.0035s
4372-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_build_configs_on_org_id ON build_configs (org_id)")
4373 -> 0.0035s
4374-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_configs_on_org_id ON request_configs (org_id)")
4375 -> 0.0036s
4376-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_yaml_configs_on_org_id ON request_yaml_configs (org_id)")
4377 -> 0.0035s
4378-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_payloads_on_org_id ON request_payloads (org_id)")
4379 -> 0.0033s
4380== 20190725105934 AddOrgIdToConfigs: migrated (0.0275s) =======================
4382== 20190729105934 AddOrgAndComIdsToRawConfigs: migrating ======================
4383-- add_column(:request_raw_configs, :org_id, :bigint)
4384 -> 0.0013s
4385-- add_column(:request_raw_configurations, :org_id, :bigint)
4386 -> 0.0008s
4387-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_raw_configs_on_org_id ON request_raw_configs (org_id)")
4388 -> 0.0033s
4389-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_raw_configurations_on_org_id ON request_raw_configurations (org_id)")
4390 -> 0.0031s
4391== 20190729105934 AddOrgAndComIdsToRawConfigs: migrated (0.0085s) =============
4393== 20190801120510 AddMoreDeletedTables: migrating =============================
4394-- execute("create table if not exists deleted_request_raw_configs (like request_raw_configs)")
4395 -> 0.0025s
4396-- execute("create table if not exists deleted_request_raw_configurations (like request_raw_configurations)")
4397 -> 0.0022s
4398-- 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")
4399 -> 0.0011s
4400== 20190801120510 AddMoreDeletedTables: migrated (0.0060s) ====================
4402== 20190815152336 AddComIdToMoreTables: migrating =============================
4403-- add_column(:request_configs, :com_id, :bigint)
4404 -> 0.0010s
4405-- add_column(:request_yaml_configs, :com_id, :bigint)
4406 -> 0.0010s
4407-- add_column(:deleted_request_configs, :com_id, :bigint)
4408 -> 0.0010s
4409-- add_column(:deleted_request_yaml_configs, :com_id, :bigint)
4410 -> 0.0009s
4411-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_configs_on_com_id ON request_configs (com_id)")
4412 -> 0.0036s
4413-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_yaml_configs_on_com_id ON request_yaml_configs (com_id)")
4414 -> 0.0035s
4415== 20190815152336 AddComIdToMoreTables: migrated (0.0112s) ====================
4417== 20190815164320 AddComIdToBuildConfigs: migrating ===========================
4418-- add_column(:build_configs, :com_id, :bigint)
4419 -> 0.0010s
4420-- add_column(:deleted_build_configs, :com_id, :bigint)
4421 -> 0.0009s
4422-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_build_configs_on_com_id ON build_configs (com_id)")
4423 -> 0.0031s
4424== 20190815164320 AddComIdToBuildConfigs: migrated (0.0052s) ==================
4426== 20190815172205 AddComIdToJobConfigs: migrating =============================
4427-- add_column(:job_configs, :com_id, :bigint)
4428 -> 0.0009s
4429-- add_column(:deleted_job_configs, :com_id, :bigint)
4430 -> 0.0009s
4431-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_job_configs_on_com_id ON job_configs (com_id)")
4432 -> 0.0032s
4433== 20190815172205 AddComIdToJobConfigs: migrated (0.0055s) ====================
4435== 20190819082558 AddVcsIdToUser: migrating ===================================
4436-- add_column(:users, :vcs_id, :string, {:default=>nil})
4437 -> 0.0014s
4438-- execute("CREATE INDEX CONCURRENTLY index_users_on_vcs_id_and_vcs_type ON users (vcs_id, vcs_type);")
4439 -> 0.0036s
4440== 20190819082558 AddVcsIdToUser: migrated (0.0050s) ==========================
4442== 20190819082559 AddVcsIdToRepository: migrating =============================
4443-- add_column(:repositories, :vcs_id, :string, {:default=>nil})
4444 -> 0.0016s
4445-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_vcs_id_and_vcs_type ON repositories (vcs_id, vcs_type);")
4446 -> 0.0040s
4447== 20190819082559 AddVcsIdToRepository: migrated (0.0056s) ====================
4449== 20190820082431 AddVcsIdToOrganization: migrating ===========================
4450-- add_column(:organizations, :vcs_id, :string, {:default=>nil})
4451 -> 0.0014s
4452-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_vcs_id_and_vcs_type ON organizations (vcs_id, vcs_type);")
4453 -> 0.0033s
4454== 20190820082431 AddVcsIdToOrganization: migrated (0.0048s) ==================
4456== 20190913092543 CopyVcsIdForRepository: migrating ===========================
4457-- select_value("SELECT id FROM repositories ORDER BY id DESC LIMIT 1")
4458 -> 0.0008s
4459-- execute("UPDATE \"repositories\" SET vcs_id = github_id WHERE id BETWEEN 0 AND 5000")
4460 -> 0.0009s
4461== 20190913092543 CopyVcsIdForRepository: migrated (0.0020s) ==================
4463== 20190913092554 CopyVcsIdForUser: migrating =================================
4464-- select_value("SELECT id FROM users ORDER BY id DESC LIMIT 1")
4465 -> 0.0013s
4466-- execute("UPDATE \"users\" SET vcs_id = github_id WHERE id BETWEEN 0 AND 5000")
4467 -> 0.0013s
4468== 20190913092554 CopyVcsIdForUser: migrated (0.0039s) ========================
4470== 20190913092565 CopyVcsIdForOrganization: migrating =========================
4471-- select_value("SELECT id FROM organizations ORDER BY id DESC LIMIT 1")
4472 -> 0.0013s
4473-- execute("UPDATE \"organizations\" SET vcs_id = github_id WHERE id BETWEEN 0 AND 5000")
4474 -> 0.0010s
4475== 20190913092565 CopyVcsIdForOrganization: migrated (0.0028s) ================
4477== 20190920160300 MessagesAddTypeSourceLine: migrating ========================
4478-- add_column(:messages, :type, :string, {:default=>nil})
4479 -> 0.0022s
4480-- add_column(:messages, :src, :string, {:default=>nil})
4481 -> 0.0013s
4482-- add_column(:messages, :line, :integer, {:default=>nil})
4483 -> 0.0012s
4484== 20190920160300 MessagesAddTypeSourceLine: migrated (0.0049s) ===============
4486== 20191112000000 ReposAddFork: migrating =====================================
4487-- add_column(:repositories, :fork, :boolean, {:default=>nil})
4488 -> 0.0018s
4489== 20191112000000 ReposAddFork: migrated (0.0019s) ============================
4491== 20191112172015 AddVcsIndexToRepositories: migrating ========================
4492-- add_index(:repositories, [:vcs_type, :vcs_id], {:algorithm=>:concurrently})
4493 -> 0.0034s
4494== 20191112172015 AddVcsIndexToRepositories: migrated (0.0035s) ===============
4496== 20191112172332 AddVcsIndexToUsers: migrating ===============================
4497-- add_index(:users, [:vcs_type, :vcs_id], {:algorithm=>:concurrently})
4498 -> 0.0033s
4499== 20191112172332 AddVcsIndexToUsers: migrated (0.0034s) ======================
4501== 20191219091445 AddHeadRepoVcsIdToPullRequest: migrating ====================
4502-- add_column(:pull_requests, :head_repo_vcs_id, :string, {:default=>nil})
4503 -> 0.0014s
4504-- execute("CREATE INDEX CONCURRENTLY index_pull_requests_on_head_repo_vcs_id ON pull_requests (head_repo_vcs_id);")
4505 -> 0.0033s
4506== 20191219091445 AddHeadRepoVcsIdToPullRequest: migrated (0.0048s) ===========
4508== 20191219091446 AddHeadRepoVcsIdToDeletedPullRequest: migrating =============
4509-- add_column(:deleted_pull_requests, :head_repo_vcs_id, :string, {:default=>nil})
4510 -> 0.0016s
4511-- execute("CREATE INDEX CONCURRENTLY index_deleted_pull_requests_on_head_repo_vcs_id ON deleted_pull_requests (head_repo_vcs_id);")
4512 -> 0.0032s
4513== 20191219091446 AddHeadRepoVcsIdToDeletedPullRequest: migrated (0.0049s) ====
4515== 20200122000000 AddConfigsJson: migrating ===================================
4516-- add_column(:request_configs, :config_json, :json)
4517 -> 0.0009s
4518-- add_column(:build_configs, :config_json, :json)
4519 -> 0.0006s
4520-- add_column(:job_configs, :config_json, :json)
4521 -> 0.0004s
4522-- add_column(:deleted_request_configs, :config_json, :json)
4523 -> 0.0012s
4524-- add_column(:deleted_build_configs, :config_json, :json)
4525 -> 0.0007s
4526-- add_column(:deleted_job_configs, :config_json, :json)
4527 -> 0.0007s
4528== 20200122000000 AddConfigsJson: migrated (0.0048s) ==========================
4530== 20200127000000 DropJobConfigsGpu: migrating ================================
4531-- execute("DROP MATERIALIZED VIEW job_configs_gpu\n")
4532 -> 0.0014s
4533== 20200127000000 DropJobConfigsGpu: migrated (0.0014s) =======================
4535== 20200127000001 RenameConfigsJson: migrating ================================
4536-- remove_column(:request_configs, :config)
4537 -> 0.0016s
4538-- rename_column(:request_configs, :config_json, :config)
4539 -> 0.0036s
4540-- remove_column(:build_configs, :config)
4541 -> 0.0082s
4542-- rename_column(:build_configs, :config_json, :config)
4543 -> 0.0033s
4544-- remove_column(:job_configs, :config)
4545 -> 0.0006s
4546-- rename_column(:job_configs, :config_json, :config)
4547 -> 0.0027s
4548-- remove_column(:deleted_request_configs, :config)
4549 -> 0.0004s
4550-- rename_column(:deleted_request_configs, :config_json, :config)
4551 -> 0.0010s
4552-- remove_column(:deleted_build_configs, :config)
4553 -> 0.0005s
4554-- rename_column(:deleted_build_configs, :config_json, :config)
4555 -> 0.0017s
4556-- remove_column(:deleted_job_configs, :config)
4557 -> 0.0005s
4558-- rename_column(:deleted_job_configs, :config_json, :config)
4559 -> 0.0017s
4560== 20200127000001 RenameConfigsJson: migrated (0.0261s) =======================
4562== 20200214144655 AddIndexToJobVersionsOnJobId: migrating =====================
4563-- add_index(:job_versions, :job_id, {:algorithm=>:concurrently})
4564 -> 0.0040s
4565== 20200214144655 AddIndexToJobVersionsOnJobId: migrated (0.0040s) ============
4567== 20200225085734 AddVcsSlugToRepository: migrating ===========================
4568-- add_column(:repositories, :vcs_slug, :string, {:default=>nil})
4569 -> 0.0013s
4570== 20200225085734 AddVcsSlugToRepository: migrated (0.0014s) ==================
4572== 20200227085734 AddVcsSourceHostToRepository: migrating =====================
4573-- add_column(:repositories, :vcs_source_host, :string, {:default=>nil})
4574 -> 0.0013s
4575== 20200227085734 AddVcsSourceHostToRepository: migrated (0.0014s) ============
4577== 20200227085736 AddVcsIndexes: migrating ====================================
4578-- 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")
4579 -> 0.0043s
4580== 20200227085736 AddVcsIndexes: migrated (0.0043s) ===========================
4582== 20200227085737 AddRepositoryNameAndSlugIndex: migrating ====================
4583-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_slug_or_names ON repositories (vcs_slug, owner_name, name) WHERE invalidated_at IS NULL")
4584 -> 0.0041s
4585== 20200227085737 AddRepositoryNameAndSlugIndex: migrated (0.0042s) ===========
4587== 20200227085742 AddPullRequestSourceData: migrating =========================
4588-- add_column(:pull_requests, :base_repo_slug, :string, {:default=>nil})
4589 -> 0.0013s
4590-- add_column(:pull_requests, :base_repo_vcs_id, :string, {:default=>nil})
4591 -> 0.0013s
4592-- add_column(:pull_requests, :base_ref, :string, {:default=>nil})
4593 -> 0.0012s
4594-- add_column(:deleted_pull_requests, :base_repo_slug, :string, {:default=>nil})
4595 -> 0.0012s
4596-- add_column(:deleted_pull_requests, :base_repo_vcs_id, :string, {:default=>nil})
4597 -> 0.0012s
4598-- add_column(:deleted_pull_requests, :base_ref, :string, {:default=>nil})
4599 -> 0.0012s
4600== 20200227085742 AddPullRequestSourceData: migrated (0.0077s) ================
4602== 20200312184018 AddUserUtmParamsTable: migrating ============================
4603-- create_table(:user_utm_params)
4604 -> 0.0069s
4605== 20200312184018 AddUserUtmParamsTable: migrated (0.0069s) ===================
4607== 20200316085738 AddRepositoryVcsSlugIndex: migrating ========================
4608-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_vcs_slug ON repositories (LOWER(vcs_slug))")
4609 -> 0.0035s
4610-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_vcs_slug_valid ON repositories (LOWER(vcs_slug)) WHERE invalidated_at IS NULL")
4611 -> 0.0036s
4612== 20200316085738 AddRepositoryVcsSlugIndex: migrated (0.0072s) ===============
4614== 20200325115329 AddMultipleJobStateIndexesOrderByNewest: migrating ==========
4615-- 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'")
4616 -> 0.0033s
4617-- 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'")
4618 -> 0.0035s
4619-- 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'")
4620 -> 0.0034s
4621-- 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'")
4622 -> 0.0034s
4623-- 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'")
4624 -> 0.0037s
4625-- 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'")
4626 -> 0.0034s
4627-- 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'")
4628 -> 0.0032s
4629-- 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'")
4630 -> 0.0036s
4631-- 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'")
4632 -> 0.0038s
4633== 20200325115329 AddMultipleJobStateIndexesOrderByNewest: migrated (0.0315s) =
4635== 20200325130013 AddFunctionMostRecentJobIdsForUserRepositoriesByStates: migrating
4636-- 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 ")
4637 -> 0.0009s
4638== 20200325130013 AddFunctionMostRecentJobIdsForUserRepositoriesByStates: migrated (0.0010s)
4640== 20200330110527 AddFunctionMostRecentJobIdsForRepositoryByState: migrating ==
4641-- 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 ")
4642 -> 0.0007s
4643== 20200330110527 AddFunctionMostRecentJobIdsForRepositoryByState: migrated (0.0007s)
4645== 20200406121218 AddIndexJobsOnRepositoryIdOrderByNewest: migrating ==========
4646-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc)")
4647 -> 0.0034s
4648== 20200406121218 AddIndexJobsOnRepositoryIdOrderByNewest: migrated (0.0034s) =
4650== 20200424000000 RequestRawConfigurationsAddMergeMode: migrating =============
4651-- add_column(:request_raw_configurations, :merge_mode, :string, {:default=>nil})
4652 -> 0.0012s
4653-- add_column(:deleted_request_raw_configurations, :merge_mode, :string, {:default=>nil})
4654 -> 0.0009s
4655== 20200424000000 RequestRawConfigurationsAddMergeMode: migrated (0.0022s) ====
4657== 20200527123653 AddColumnPriorityToTableJobsAndDeletedJobs: migrating =======
4658-- add_column(:jobs, :priority, :integer, {:default=>nil})
4659 -> 0.0010s
4660-- add_column(:deleted_jobs, :priority, :integer, {:default=>nil})
4661 -> 0.0010s
4662== 20200527123653 AddColumnPriorityToTableJobsAndDeletedJobs: migrated (0.0020s)
4664== 20200928143126 AddBuildTriggerPermissions: migrating =======================
4665-- add_column(:memberships, :build_permission, :boolean, {:default=>nil})
4666 -> 0.0012s
4667-- add_column(:permissions, :build, :boolean, {:default=>nil})
4668 -> 0.0010s
4669== 20200928143126 AddBuildTriggerPermissions: migrated (0.0022s) ==============
4671== 20202427123653 AddColumnHasLocalRegistrationToTableSubscriptions: migrating
4672-- add_column(:subscriptions, :has_local_registration, :boolean, {:default=>nil})
4673 -> 0.0071s
4674== 20202427123653 AddColumnHasLocalRegistrationToTableSubscriptions: migrated (0.0071s)
4676== 20210203130200 CreateBuildBackupsTable: migrating ==========================
4677-- create_table(:build_backups, {:id=>:integer})
4678 -> 0.0044s
4679== 20210203130200 CreateBuildBackupsTable: migrated (0.0045s) =================
4681== 20210203143155 AddConfirmationFieldsToUser: migrating ======================
4682-- add_column(:users, :confirmed_at, :timestamp, {:precision=>nil})
4683 -> 0.0008s
4684-- add_column(:users, :token_expires_at, :timestamp, {:precision=>nil})
4685 -> 0.0010s
4686-- add_column(:users, :confirmation_token, :string)
4687 -> 0.0009s
4688-- add_index(:users, :confirmation_token)
4689 -> 0.0024s
4690== 20210203143155 AddConfirmationFieldsToUser: migrated (0.0052s) =============
4692== 20210203143406 ConfirmCurrentUsers: migrating ==============================
4693== 20210203143406 ConfirmCurrentUsers: migrated (0.0000s) =====================
4695== 20210614140633 AddServerTypeToRepositories: migrating ======================
4696-- add_column(:repositories, :server_type, :string, {:limit=>20})
4697 -> 0.0008s
4698== 20210614140633 AddServerTypeToRepositories: migrated (0.0009s) =============
4700== 20220610092916 MostRecentJobIdsForUserRepositoriesByStatesLw: migrating ====
4701-- 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 ")
4702 -> 0.0009s
4703== 20220610092916 MostRecentJobIdsForUserRepositoriesByStatesLw: migrated (0.0010s)
4705== 20220621151453 AddColumnRestartedByToTableJobs: migrating ==================
4706-- add_column(:jobs, :restarted_by, :integer, {:default=>nil})
4707 -> 0.0011s
4708-- add_column(:deleted_jobs, :restarted_by, :integer, {:default=>nil})
4709 -> 0.0007s
4710== 20220621151453 AddColumnRestartedByToTableJobs: migrated (0.0020s) =========
4712== 20220722162400 CreateAuditsTable: migrating ================================
4713-- create_table(:audits)
4714 -> 0.0054s
4715== 20220722162400 CreateAuditsTable: migrated (0.0055s) =======================
4717== 20220825140522 CreateCustomKeysTable: migrating ============================
4718-- create_table(:custom_keys)
4719 -> 0.0061s
4720== 20220825140522 CreateCustomKeysTable: migrated (0.0062s) ===================
4722== 20220905144600 AddScanFailedAtToRepositories: migrating ====================
4723-- add_column(:repositories, :scan_failed_at, :timestamp)
4724 -> 0.0009s
4725== 20220905144600 AddScanFailedAtToRepositories: migrated (0.0009s) ===========
4727== 20221214171030 AddPurposeColumnToTokens: migrating =========================
4728-- add_column(:tokens, :purpose, :integer, {:limit=>4, :default=>0})
4729 -> 0.0011s
4730== 20221214171030 AddPurposeColumnToTokens: migrated (0.0011s) ================
4732== 20230208161446 AddCloneUrlToRepositories: migrating ========================
4733-- add_column(:repositories, :clone_url, :string)
4734 -> 0.0008s
4735== 20230208161446 AddCloneUrlToRepositories: migrated (0.0009s) ===============
4737== 20230505055250 RolifyCreateRoles: migrating ================================
4738-- create_table(:roles)
4739 -> 0.0078s
4740-- create_table(:role_names)
4741 -> 0.0049s
4742-- create_table(:users_roles, {:id=>false})
4743 -> 0.0052s
4744-- add_index(:roles, :name)
4745 -> 0.0017s
4746-- add_index(:role_names, :name)
4747 -> 0.0018s
4748-- add_index(:roles, [:name, :resource_type, :resource_id])
4749 -> 0.0018s
4750-- add_index(:users_roles, [:user_id, :role_id])
4751 -> 0.0017s
4752== 20230505055250 RolifyCreateRoles: migrated (0.0253s) =======================
4754== 20230505060110 CreatePolicies: migrating ===================================
4755-- create_table(:policy_permissions)
4756 -> 0.0053s
4757-- create_table(:role_permissions, {:id=>false})
4758 -> 0.0045s
4759-- add_index(:policy_permissions, :name)
4760 -> 0.0018s
4761-- add_index(:role_permissions, [:role_name_id, :policy_permission_id])
4762 -> 0.0018s
4763== 20230505060110 CreatePolicies: migrated (0.0135s) ==========================
4765== 20230713115855 CreatePermissionsSync: migrating ============================
4766-- create_table(:permissions_syncs)
4767 -> 0.0096s
4768== 20230713115855 CreatePermissionsSync: migrated (0.0096s) ===================
4770== 20231005111642 CreatePermissionsIndex: migrating ===========================
4771-- add_index(:permissions_syncs, [:user_id, :resource_type, :resource_id], {:name=>"index_permissions_syncs_on_user_and_resource"})
4772 -> 0.0029s
4773-- add_index(:role_names, :role_type)
4774 -> 0.0021s
4775== 20231005111642 CreatePermissionsIndex: migrated (0.0051s) ==================
4777== 20240823085523 AddVmsizeToJobs: migrating ==================================
4778-- add_column(:jobs, :vm_size, :string)
4779 -> 0.0008s
4780-- add_column(:deleted_jobs, :vm_size, :string)
4781 -> 0.0005s
4782== 20240823085523 AddVmsizeToJobs: migrated (0.0014s) =========================
4784 sets unique_number on INSERT
4785 does not set unique_number on INSERT if 0 is given as a value
4786 sets unique_number on UPDATE
4787 does not set unique_number on UPDATE if unique_number is 0
4789set_updated_at trigger
4790 jobs
4791 sets updated_at on INSERT
4792 sets updated_at on UPDATE
4793 works also for new columns
4794 builds
4795 sets updated_at on INSERT
4796 sets updated_at on UPDATE
4797 works also for new columns
4799soft delete repo
4800 ensure that soft delete tables have the same fields that the originals
4801 soft deleting a repo moves all of the related data to deleted_* tables
4803Rake tasks
4804 rake db:create
4805 migrates the main db
4806 rake db:schema:load
4807 loads the main schema
4809Deprecation Warnings:
4811Using `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)>'.
4814If you need more of the backtrace for any of these deprecations to
4815identify where to make the necessary changes, you can configure
4816`config.raise_errors_for_deprecations!`, and it will turn the
4817deprecation warnings into errors, giving you the full backtrace.
48191 deprecation warning total
4821Finished in 38.78 seconds (files took 0.35599 seconds to load)
482219 examples, 0 failures
4824The command "bundle exec rspec spec" exited with 0.
cache.2
4825store build cache
48260.00s1.42snothing changed
after_success
48280.19s$ script/upload_structure.rb
4829<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)
4830 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'
4831 from script/upload_structure.rb:5:in `<main>'
4833Done. Your build exited with 0.
Top