Pull request event #3721 passed

  • Ran for
  • New branch build
AMD64
Ruby: 3.2.2
Git
Raw log
Scroll to End of Log
0.00s0.20s0.11s0.06s0.00s
worker_info
1Worker information
2hostname: f3d9e46a-7e16-4990-84d0-c38360b04343@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-1df29594-fd44-4d1b-8dc4-eab137205604 travis-ci-ubuntu-2004-1726220016-655c8cb5 (via amqp)
5startup: 6.059483079s
60.21s0.00s0.01s0.00s0.01s
system_info
7Build system information
8Build language: ruby
9Build dist: focal
10Build id: 272482767
11Job id: 626527510
12Runtime kernel version: 5.15.0-1068-gcp
13VM: default
14travis-build version: 3a7d1527
15Build image provisioning date and time
16Fri 13 Sep 2024 09:58:48 AM UTC
17Operating System Details
18Distributor ID: Ubuntu
19Description: Ubuntu 20.04.6 LTS
20Release: 20.04
21Codename: focal
22Systemd Version
23systemd 245 (245.4-4ubuntu3.23)
24Cookbooks Version
2539734fe https://github.com/travis-ci/travis-cookbooks/tree/39734fe
26git version
27git version 2.46.0
28bash version
29GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)
30gcc version
31gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
32docker version
33Client:
34 Version: 24.0.7
35 API version: 1.43
36 Go version: go1.21.1
37 Git commit: 24.0.7-0ubuntu2~20.04.1
38 Built: Wed Mar 13 20:29:24 2024
39 OS/Arch: linux/amd64
40 Context: default
42Server:
43 Engine:
44 Version: 24.0.7
45 API version: 1.43 (minimum version 1.12)
46 Go version: go1.21.1
47 Git commit: 24.0.7-0ubuntu2~20.04.1
48 Built: Wed Mar 13 20:29:24 2024
49 OS/Arch: linux/amd64
50 Experimental: false
51 containerd:
52 Version: 1.7.12
53 GitCommit:
54 runc:
55 Version: 1.1.12-0ubuntu2~20.04.1
56 GitCommit:
57 docker-init:
58 Version: 0.19.0
59 GitCommit:
60clang version
61clang version 18.1.8
62jq version
63jq-1.7.1
64bats version
65Bats 1.11.0
66shellcheck version
670.10.0
68shfmt version
69v3.8.0
70ccache version
713.7.7
72cmake version
73cmake version 3.29.0
74heroku version
75heroku/9.2.1 linux-x64 node-v16.20.2
76imagemagick version
77Version: ImageMagick 6.9.10-23 Q16 x86_64 20190101 https://imagemagick.org
78md5deep version
794.4
80mercurial version
81version 6.5.2
82mysql version
83mysql Ver 8.0.39-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))
84openssl version
85OpenSSL 1.1.1f 31 Mar 2020
86packer version
87Packer v1.11.2
88postgresql client version
89psql (PostgreSQL) 13.16 (Ubuntu 13.16-1.pgdg20.04+1)
90ragel version
91Ragel State Machine Compiler version 6.10 March 2017
92sudo version
931.8.31
94gzip version
95gzip 1.10
96zip version
97Zip 3.0
98vim version
99VIM - Vi IMproved 8.1 (2018 May 18, compiled Sep 04 2024 03:11:27)
100iptables version
101iptables v1.8.4 (legacy)
102curl version
103curl 7.68.0 (x86_64-pc-linux-gnu) libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3
104wget version
105GNU Wget 1.20.3 built on linux-gnu.
106rsync version
107rsync version 3.1.3 protocol version 31
108gimme version
109v1.5.4
110nvm version
1110.40.1
112perlbrew version
113/home/travis/perl5/perlbrew/bin/perlbrew - App::perlbrew/0.95
114phpenv version
115rbenv 1.3.0
116rvm version
117rvm 1.29.12 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
118default ruby version
119ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [x86_64-linux]
120default python version
121Python 3.7.17
122ElasticSearch version
1237.16.3
124Installed Firefox version
125firefox 99.0
126MongoDB version
127MongoDB 4.4.29
128PhantomJS version
1292.1.1
130Redis version
131redis-server 7.4.0
132Pre-installed Go versions
1331.23.0
134mvn version
135Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9)
136gradle version
137Gradle 8.3!
138lein version
139Leiningen 2.11.2 on Java 11.0.21 OpenJDK 64-Bit Server VM
140Pre-installed Node.js versions
141v10.24.1
142v12.22.12
143v14.21.3
144v16.15
145v16.20.2
146v18.20.3
147v18.20.4
148v20.17.0
149v4.9.1
150v6.17.1
151v8.17.0
152phpenv versions
153 system
154 7.4
155* 7.4.6 (set by /home/travis/.phpenv/version)
156 hhvm-stable
157 hhvm
158composer --version
159Composer version 1.10.6 2020-05-06 10:28:10
160Pre-installed Ruby versions
161ruby-2.7.6
162ruby-3.3.5
1640.02s0.00s0.70s0.29s0.05s0.01s0.04s0.00s0.03s0.01s0.01s0.01s0.01s0.00s0.36sOK
1650.00s0.03s0.00s0.01s0.14s0.00s0.00s0.00s0.01s0.00s0.13s0.01s1.17s0.00s0.13s6.04s0.00s3.99s0.00s2.21s
docker_mtu_and_registry_mirrors
Docker
resolvconf
apt
166Adding APT Sources
1670.84s$ curl -sSL "https://www.postgresql.org/media/keys/ACCC4CF8.asc" | sudo -E apt-key add -
168OK
1690.04s$ echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee -a ${TRAVIS_ROOT}/etc/apt/sources.list >/dev/null
17013.32s$ travis_apt_get_update
171Installing APT Packages
172PostgreSQL package is detected. Stopping postgresql service. See https://github.com/travis-ci/travis-ci/issues/5737 for more information.
173$ sudo systemctl stop postgresql
17413.36s$ sudo -E apt-get -yq --no-install-suggests --no-install-recommends $(travis_apt_get_options) install postgresql-11 postgresql-client-11
175Reading package lists...
176Building dependency tree...
177Reading state information...
178The following packages were automatically installed and are no longer required:
179 amd64-microcode intel-microcode iucode-tool libglu1-mesa
180 libjs-jquery-metadata libjs-jquery-tablesorter libnotify4 libwxbase3.0-0v5
181 libwxgtk3.0-gtk3-0v5 linux-modules-5.4.0-195-generic postgresql-client-12
182Use 'sudo apt autoremove' to remove them.
183Suggested packages:
184 postgresql-doc-11
185Recommended packages:
186 sysstat
187The following NEW packages will be installed:
188 postgresql-11 postgresql-client-11
1890 upgraded, 2 newly installed, 0 to remove and 59 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 2s (7,558 kB/s)
196Selecting previously unselected package postgresql-client-11.
197(Reading database ... 154608 files and directories currently installed.)
198Preparing to unpack .../postgresql-client-11_11.22-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 (262.pgdg20.04+1) ...
232Building PostgreSQL dictionaries from installed myspell/hunspell packages...
233Removing obsolete dictionary files:
2343.01s
services
postgresql
2352.78s$ travis_setup_postgresql 11
236Starting PostgreSQL v11
237sudo systemctl start postgresql@11-main
git.checkout
2390.01s0.61s$ 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/298/merge: --depth=50
243From https://github.com/travis-ci/travis-migrations
244 * branch refs/pull/298/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.75s$ 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!
28021.20s$ 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 installation successful.
288ruby-3.2.2 - #configure
289ruby-3.2.2 - #download
290 % Total % Received % Xferd Average Speed Time Time Time Current
291 Dload Upload Total Spent Left Speed
292 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
293100 32.0M 100 32.0M 0 0 19.6M 0 0:00:01 0:00:01 --:--:-- 19.6M
294No checksum for downloaded archive, recording checksum in user configuration.
295ruby-3.2.2 - #validate archive
296ruby-3.2.2 - #extract
297ruby-3.2.2 - #validate binary
298ruby-3.2.2 - #setup
299ruby-3.2.2 - #gemset created /home/travis/.rvm/gems/ruby-3.2.2@global
300ruby-3.2.2 - #importing gemset /home/travis/.rvm/gemsets/global.gems..................................
301ruby-3.2.2 - #generating global wrappers........
302ruby-3.2.2 - #uninstalling gem rubygems-bundler-1.4.5.
303ruby-3.2.2 - #gemset created /home/travis/.rvm/gems/ruby-3.2.2
304ruby-3.2.2 - #importing gemset /home/travis/.rvm/gemsets/default.gems..............
305ruby-3.2.2 - #generating default wrappers........
306Using /home/travis/.rvm/gems/ruby-3.2.2
308$ export BUNDLE_GEMFILE=$PWD/Gemfile
cache.1
309Setting up build cache
310$ export CASHER_DIR=${TRAVIS_HOME}/.casher
3110.17s$ Installing caching utilities
3120.00s1.82sattempting to download cache archive
313fetching PR.298/cache--linux-focal-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855--rvm-3.2.2--gemfile-Gemfile.tgz
314fetching PR.298/cache-linux-focal-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855--rvm-3.2.2--gemfile-Gemfile.tgz
315fetching PR.298/cache--rvm-3.2.2--gemfile-Gemfile.tgz
316fetching master/cache--linux-focal-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855--rvm-3.2.2--gemfile-Gemfile.tgz
317found cache
3180.00s2.00sadding /home/travis/build/travis-ci/travis-migrations/vendor/bundle to cache
319creating directory /home/travis/build/travis-ci/travis-migrations/vendor/bundle
ruby.versions
322$ ruby --version
323ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]
324$ rvm --version
325rvm 1.29.12-next (master) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
326$ bundle --version
327Bundler version 2.4.10
328$ gem --version
3293.4.10
before_install.1
3313.93s$ gem update --system
332Updating rubygems-update
333Successfully installed rubygems-update-3.5.20
334Installing RubyGems 3.5.20
335 Successfully built RubyGem
336 Name: bundler
337 Version: 2.5.20
338 File: bundler-2.5.20.gem
339Bundler 2.5.20 installed
340RubyGems 3.5.20 installed
341Regenerating binstubs
342Regenerating plugins
344# 3.5.20 / 2024-09-24
346## Enhancements:
348* Installs bundler 2.5.20 as a default gem.
350# 3.5.19 / 2024-09-18
352## Enhancements:
354* Standardize pretty-print output for `Gem::Source` and subclasses. Pull
355 request [#7994](https://github.com/rubygems/rubygems/pull/7994) by
356 djberube
357* Update vendored `molinillo` to master and vendored `resolv` to 0.4.0.
358 Pull request [#7521](https://github.com/rubygems/rubygems/pull/7521) by
359 hsbt
360* Installs bundler 2.5.19 as a default gem.
362## Bug fixes:
364* Fix `bundle exec rake install` failing when local gem has extensions.
365 Pull request [#7977](https://github.com/rubygems/rubygems/pull/7977) by
366 deivid-rodriguez
367* Make `gem exec` use the standard GEM_HOME. Pull request
368 [#7982](https://github.com/rubygems/rubygems/pull/7982) by
369 deivid-rodriguez
370* Fix `gem fetch` always exiting with zero status code. Pull request
371 [#8007](https://github.com/rubygems/rubygems/pull/8007) by
372 deivid-rodriguez
373* Remove temporary `.lock` files unintentionally left around by gem
374 installer. Pull request
375 [#7939](https://github.com/rubygems/rubygems/pull/7939) by nobu
376* Removed unused stringio. Pull request
377 [#8001](https://github.com/rubygems/rubygems/pull/8001) by hsbt
378* Avoid another race condition of open mode. Pull request
379 [#7931](https://github.com/rubygems/rubygems/pull/7931) by nobu
380* Fix `@license` typo preventing licenses from being correctly
381 unmarshalled. Pull request
382 [#7975](https://github.com/rubygems/rubygems/pull/7975) by djberube
384## Performance:
386* Fix `gem install does-not-exist` being super slow. Pull request
387 [#8006](https://github.com/rubygems/rubygems/pull/8006) by
388 deivid-rodriguez
390# 3.5.18 / 2024-08-26
392## Enhancements:
394* Installs bundler 2.5.18 as a default gem.
396## Bug fixes:
398* Fix `gem uninstall <name>:<version>` failing on shadowed default gems.
399 Pull request [#7949](https://github.com/rubygems/rubygems/pull/7949) by
400 deivid-rodriguez
402# 3.5.17 / 2024-08-01
404## Enhancements:
406* Explicitly encode `Gem::Dependency` to yaml. Pull request
407 [#7867](https://github.com/rubygems/rubygems/pull/7867) by segiddins
408* Installs bundler 2.5.17 as a default gem.
410## Bug fixes:
412* Fix `gem list` regression when a regular gem shadows a default one. Pull
413 request [#7892](https://github.com/rubygems/rubygems/pull/7892) by
414 deivid-rodriguez
415* Always leave default gem executables around. Pull request
416 [#7879](https://github.com/rubygems/rubygems/pull/7879) by
417 deivid-rodriguez
418* Fix line comment issue for hash when loading gemrc. Pull request
419 [#7857](https://github.com/rubygems/rubygems/pull/7857) by leetking
421# 3.5.16 / 2024-07-18
423## Enhancements:
425* Installs bundler 2.5.16 as a default gem.
427## Bug fixes:
429* Fix gemspec `require_paths` validation. Pull request
430 [#7866](https://github.com/rubygems/rubygems/pull/7866) by
431 deivid-rodriguez
432* Fix loading of nested `gemrc` config keys when specified as symbols.
433 Pull request [#7851](https://github.com/rubygems/rubygems/pull/7851) by
434 moofkit
436## Performance:
438* Use `caller_locations` instead of splitting `caller`. Pull request
439 [#7708](https://github.com/rubygems/rubygems/pull/7708) by nobu
441# 3.5.15 / 2024-07-09
443## Enhancements:
445* Installs bundler 2.5.15 as a default gem.
447## Bug fixes:
449* Restrict generic `arm` to only match 32-bit arm. Pull request
450 [#7830](https://github.com/rubygems/rubygems/pull/7830) by ntkme
451* Protect creating binstubs with a file lock. Pull request
452 [#7806](https://github.com/rubygems/rubygems/pull/7806) by
453 deivid-rodriguez
455## Documentation:
457* Make it clearer that `add_dependency` is the main way to add
458 non-development dependencies. Pull request
459 [#7800](https://github.com/rubygems/rubygems/pull/7800) by jeromedalbert
461# 3.5.14 / 2024-06-21
463## Enhancements:
465* Installs bundler 2.5.14 as a default gem.
467## Bug fixes:
469* Make "bundler? update --bundler" behave identically. Pull request
470 [#7778](https://github.com/rubygems/rubygems/pull/7778) by x-yuri
472# 3.5.13 / 2024-06-14
474## Enhancements:
476* Installs bundler 2.5.13 as a default gem.
478## Bug fixes:
480* Never remove executables that may belong to a default gem. Pull request
481 [#7747](https://github.com/rubygems/rubygems/pull/7747) by
482 deivid-rodriguez
484# 3.5.12 / 2024-06-13
486## Enhancements:
488* Installs bundler 2.5.12 as a default gem.
490## Bug fixes:
492* Fix `gem uninstall` unresolved specifications warning. Pull request
493 [#7667](https://github.com/rubygems/rubygems/pull/7667) by
494 deivid-rodriguez
495* Fix `gem pristine` sometimes failing to pristine user installed gems.
496 Pull request [#7664](https://github.com/rubygems/rubygems/pull/7664) by
497 deivid-rodriguez
499# 3.5.11 / 2024-05-28
501## Enhancements:
503* Update SPDX license list as of 2024-05-22. Pull request
504 [#7689](https://github.com/rubygems/rubygems/pull/7689) by
505 github-actions[bot]
506* Fix the update_rubygems inconsistency (--disable-gems). Pull request
507 [#7658](https://github.com/rubygems/rubygems/pull/7658) by x-yuri
508* Accept WASI as an OS name in Gem::Platform. Pull request
509 [#7629](https://github.com/rubygems/rubygems/pull/7629) by kateinoigakukun
510* Warn if RubyGems version explicitly set in gemspec does not match
511 running version. Pull request
512 [#7460](https://github.com/rubygems/rubygems/pull/7460) by
513 deivid-rodriguez
514* Installs bundler 2.5.11 as a default gem.
516## Bug fixes:
518* Fix binstubs sometimes not getting regenerated when `--destdir` is
519 given. Pull request
520 [#7660](https://github.com/rubygems/rubygems/pull/7660) by
521 deivid-rodriguez
522* Fix `gem uninstall --user-install` for symlinked HOME. Pull request
523 [#7645](https://github.com/rubygems/rubygems/pull/7645) by
524 deivid-rodriguez
525* Fix issue when plugin stubs would sometimes not be properly removed by
526 `gem uninstall`. Pull request
527 [#7631](https://github.com/rubygems/rubygems/pull/7631) by
528 deivid-rodriguez
529* Fix plugins uninstallation for user installed gems. Pull request
530 [#6456](https://github.com/rubygems/rubygems/pull/6456) by voxik
532## Performance:
534* Use a constant empty tar header to avoid extra allocations. Pull request
535 [#7484](https://github.com/rubygems/rubygems/pull/7484) by segiddins
537## Documentation:
539* Recommend `bin/rake` over `rake` in contributing docs. Pull request
540 [#7648](https://github.com/rubygems/rubygems/pull/7648) by
541 deivid-rodriguez
543# 3.5.10 / 2024-05-03
545## Security:
547* Add a limit to the size of the metadata and checksums files in a gem
548 package. Pull request
549 [#7568](https://github.com/rubygems/rubygems/pull/7568) by segiddins
551## Enhancements:
553* Don't fully require `rubygems` from `rubygems/package` to prevent some
554 circular require warnings when using Bundler. Pull request
555 [#7612](https://github.com/rubygems/rubygems/pull/7612) by
556 deivid-rodriguez
557* Installs bundler 2.5.10 as a default gem.
559## Bug fixes:
561* Rename credential email to identifier in WebAuthn poller. Pull request
562 [#7623](https://github.com/rubygems/rubygems/pull/7623) by jenshenny
564# 3.5.9 / 2024-04-12
566## Enhancements:
568* Installs bundler 2.5.9 as a default gem.
570# 3.5.8 / 2024-04-11
572## Security:
574* Respect global umask when writing regular files. Pull request
575 [#7518](https://github.com/rubygems/rubygems/pull/7518) by
576 deivid-rodriguez
578## Enhancements:
580* Allow string keys with gemrc. Pull request
581 [#7543](https://github.com/rubygems/rubygems/pull/7543) by hsbt
582* [Experimental] Add "gem rebuild" command. Pull request
583 [#4913](https://github.com/rubygems/rubygems/pull/4913) by duckinator
584* Installs bundler 2.5.8 as a default gem.
586## Bug fixes:
588* Fix NoMethodError crash when building errors about corrupt package
589 files. Pull request
590 [#7539](https://github.com/rubygems/rubygems/pull/7539) by jez
591* Fix resolver to properly intersect Arrays of `Gem::Resolver::Activation`
592 objects. Pull request
593 [#7537](https://github.com/rubygems/rubygems/pull/7537) by
594 deivid-rodriguez
596# 3.5.7 / 2024-03-22
598## Enhancements:
600* Warn on empty or open required_ruby_version specification attribute.
601 Pull request [#5010](https://github.com/rubygems/rubygems/pull/5010) by
602 simi
603* Control whether YAML aliases are enabled in Gem::SafeYAML.safe_load via
604 attribute. Pull request
605 [#7464](https://github.com/rubygems/rubygems/pull/7464) by segiddins
606* Update SPDX license list as of 2024-02-08. Pull request
607 [#7468](https://github.com/rubygems/rubygems/pull/7468) by
608 github-actions[bot]
609* Installs bundler 2.5.7 as a default gem.
611## Bug fixes:
613* Allow prerelease activation (even if requirement is not explicit about
614 it) when it's the only possibility. Pull request
615 [#7428](https://github.com/rubygems/rubygems/pull/7428) by kimesf
617## Documentation:
619* Fix a typo. Pull request
620 [#7505](https://github.com/rubygems/rubygems/pull/7505) by hsbt
621* Use https instead of http in documentation links. Pull request
622 [#7481](https://github.com/rubygems/rubygems/pull/7481) by hsbt
624# 3.5.6 / 2024-02-06
626## Enhancements:
628* Deep copy requirements in `Gem::Specification` and `Gem::Requirement`.
629 Pull request [#7439](https://github.com/rubygems/rubygems/pull/7439) by
630 flavorjones
631* Change gem login message to clear up that username can be also used.
632 Pull request [#7422](https://github.com/rubygems/rubygems/pull/7422) by
633 VitaliySerov
634* Add metadata for rubygems.org. Pull request
635 [#7435](https://github.com/rubygems/rubygems/pull/7435) by m-nakamura145
636* Improve gem login scope selection. Pull request
637 [#7342](https://github.com/rubygems/rubygems/pull/7342) by williantenfen
638* Vendor uri in RubyGems. Pull request
639 [#7386](https://github.com/rubygems/rubygems/pull/7386) by
640 deivid-rodriguez
641* Installs bundler 2.5.6 as a default gem.
643## Bug fixes:
645* Skip to load commented out words. Pull request
646 [#7413](https://github.com/rubygems/rubygems/pull/7413) by hsbt
647* Fix rake runtime dependency warning for rake based extension. Pull
648 request [#7395](https://github.com/rubygems/rubygems/pull/7395) by ntkme
650# 3.5.5 / 2024-01-18
652## Enhancements:
654* Installs bundler 2.5.5 as a default gem.
656## Bug fixes:
658* Fix `require` activation conflicts when requiring default gems under
659 some situations. Pull request
660 [#7379](https://github.com/rubygems/rubygems/pull/7379) by
661 deivid-rodriguez
662* Use cache_home instead of data_home in default_spec_cache_dir. Pull
663 request [#7331](https://github.com/rubygems/rubygems/pull/7331) by mrkn
665## Documentation:
667* Use squiggly heredocs in `Gem::Specification#description` documentation,
668 so it doesn't add leading whitespace. Pull request
669 [#7373](https://github.com/rubygems/rubygems/pull/7373) by bravehager
671# 3.5.4 / 2024-01-04
673## Enhancements:
675* Always avoid "Updating rubygems-update" message. Pull request
676 [#7335](https://github.com/rubygems/rubygems/pull/7335) by
677 deivid-rodriguez
678* Installs bundler 2.5.4 as a default gem.
680## Bug fixes:
682* Make `gem update --system` respect ruby version constraints. Pull
683 request [#7334](https://github.com/rubygems/rubygems/pull/7334) by
684 deivid-rodriguez
686# 3.5.3 / 2023-12-22
688## Enhancements:
690* Installs bundler 2.5.3 as a default gem.
692# 3.5.2 / 2023-12-21
694## Enhancements:
696* Support dynamic library loading with extension .so or .o. Pull request
697 [#7241](https://github.com/rubygems/rubygems/pull/7241) by hogelog
698* Installs bundler 2.5.2 as a default gem.
700## Performance:
702* Replace `object_id` comparison with identity Hash. Pull request
703 [#7303](https://github.com/rubygems/rubygems/pull/7303) by amomchilov
704* Use IO.copy_stream when reading, writing. Pull request
705 [#6958](https://github.com/rubygems/rubygems/pull/6958) by martinemde
707# 3.5.1 / 2023-12-15
709## Enhancements:
711* Installs bundler 2.5.1 as a default gem.
713# 3.5.0 / 2023-12-15
715## Security:
717* Replace `Marshal.load` with a fully-checked safe gemspec loader. Pull
718 request [#6896](https://github.com/rubygems/rubygems/pull/6896) by
719 segiddins
721## Breaking changes:
723* Drop ruby 2.6 and 2.7 support. Pull request
724 [#7116](https://github.com/rubygems/rubygems/pull/7116) by
725 deivid-rodriguez
726* Release package no longer includes test files. Pull request
727 [#6781](https://github.com/rubygems/rubygems/pull/6781) by hsbt
728* Hide `Gem::MockGemUi` from users. Pull request
729 [#6623](https://github.com/rubygems/rubygems/pull/6623) by hsbt
730* Deprecated `Gem.datadir` has been removed. Pull request
731 [#6469](https://github.com/rubygems/rubygems/pull/6469) by hsbt
733## Deprecations:
735* Deprecate `Gem::Platform.match?`. Pull request
736 [#6783](https://github.com/rubygems/rubygems/pull/6783) by hsbt
737* Deprecate `Gem::List`. Pull request
738 [#6311](https://github.com/rubygems/rubygems/pull/6311) by segiddins
740## Features:
742* The `generate_index` command can now generate compact index files and
743 lives as an external `rubygems-generate_index` gem. Pull request
744 [#7085](https://github.com/rubygems/rubygems/pull/7085) by segiddins
745* Make `gem install` fallback to user installation directory if default
746 gem home is not writable. Pull request
747 [#5327](https://github.com/rubygems/rubygems/pull/5327) by duckinator
748* Leverage ruby feature to warn when requiring default gems from stdlib
749 that will be turned into bundled gems in the future. Pull request
750 [#6840](https://github.com/rubygems/rubygems/pull/6840) by hsbt
752## Performance:
754* Use match? when regexp match data is unused. Pull request
755 [#7263](https://github.com/rubygems/rubygems/pull/7263) by segiddins
756* Fewer allocations in gem installation. Pull request
757 [#6975](https://github.com/rubygems/rubygems/pull/6975) by segiddins
758* Optimize allocations in `Gem::Version`. Pull request
759 [#6970](https://github.com/rubygems/rubygems/pull/6970) by segiddins
761## Enhancements:
763* Warn for duplicate meta data links when building gems. Pull request
764 [#7213](https://github.com/rubygems/rubygems/pull/7213) by etherbob
765* Vendor `net-http`, `net-protocol`, `resolv`, and `timeout` to reduce
766 conflicts between Gemfile gems and internal dependencies. Pull request
767 [#6793](https://github.com/rubygems/rubygems/pull/6793) by
768 deivid-rodriguez
769* Remove non-transparent requirement added to prerelease gems. Pull
770 request [#7226](https://github.com/rubygems/rubygems/pull/7226) by
771 deivid-rodriguez
772* Stream output from ext builds when --verbose. Pull request
773 [#7240](https://github.com/rubygems/rubygems/pull/7240) by osyoyu
774* Add missing services to CI detection and make it consistent between
775 RubyGems and Bundler. Pull request
776 [#7205](https://github.com/rubygems/rubygems/pull/7205) by nevinera
777* Update generate licenses template to not freeze regexps. Pull request
778 [#7154](https://github.com/rubygems/rubygems/pull/7154) by
779 github-actions[bot]
780* Don't check `LIBRUBY_RELATIVE` in truffleruby to signal a bash prelude
781 in rubygems binstubs. Pull request
782 [#7156](https://github.com/rubygems/rubygems/pull/7156) by
783 deivid-rodriguez
784* Update SPDX list and warn on deprecated identifiers. Pull request
785 [#6926](https://github.com/rubygems/rubygems/pull/6926) by simi
786* Simplify extended `require` to potentially fix some deadlocks. Pull
787 request [#6827](https://github.com/rubygems/rubygems/pull/6827) by nobu
788* Small refactors for `Gem::Resolver`. Pull request
789 [#6766](https://github.com/rubygems/rubygems/pull/6766) by hsbt
790* Use double-quotes instead of single-quotes consistently in warnings.
791 Pull request [#6550](https://github.com/rubygems/rubygems/pull/6550) by
792 hsbt
793* Add debug message for `nil` version gemspec. Pull request
794 [#6436](https://github.com/rubygems/rubygems/pull/6436) by hsbt
795* Installs bundler 2.5.0 as a default gem.
797## Bug fixes:
799* Fix installing from source with same default bundler version already
800 installed. Pull request
801 [#7244](https://github.com/rubygems/rubygems/pull/7244) by
802 deivid-rodriguez
804## Documentation:
806* Improve comment explaining the necessity of `write_default_spec` method.
807 Pull request [#6563](https://github.com/rubygems/rubygems/pull/6563) by
808 voxik
810# 3.4.22 / 2023-11-09
812## Enhancements:
814* Update SPDX license list as of 2023-10-05. Pull request
815 [#7040](https://github.com/rubygems/rubygems/pull/7040) by
816 github-actions[bot]
817* Remove unnecessary rescue. Pull request
818 [#7109](https://github.com/rubygems/rubygems/pull/7109) by
819 deivid-rodriguez
820* Installs bundler 2.4.22 as a default gem.
822## Bug fixes:
824* Handle empty array at built-in YAML serializer. Pull request
825 [#7099](https://github.com/rubygems/rubygems/pull/7099) by hsbt
826* Ignore non-tar format `.gem` files during search. Pull request
827 [#7095](https://github.com/rubygems/rubygems/pull/7095) by dearblue
828* Allow explicitly uninstalling multiple versions of same gem. Pull
829 request [#7063](https://github.com/rubygems/rubygems/pull/7063) by
830 kstevens715
832## Performance:
834* Avoid regexp match on every call to `Gem::Platform.local`. Pull request
835 [#7104](https://github.com/rubygems/rubygems/pull/7104) by segiddins
837## Documentation:
839* Get `Gem::Specification#extensions_dir` documented. Pull request
840 [#6218](https://github.com/rubygems/rubygems/pull/6218) by
841 deivid-rodriguez
843# 3.4.21 / 2023-10-17
845## Enhancements:
847* Abort `setup.rb` if Ruby is too old. Pull request
848 [#7011](https://github.com/rubygems/rubygems/pull/7011) by
849 deivid-rodriguez
850* Remove usage of Dir.chdir that only execute a subprocess. Pull request
851 [#6930](https://github.com/rubygems/rubygems/pull/6930) by segiddins
852* Freeze more strings in generated gemspecs. Pull request
853 [#6974](https://github.com/rubygems/rubygems/pull/6974) by segiddins
854* Use pure-ruby YAML parser for loading configuration at RubyGems. Pull
855 request [#6615](https://github.com/rubygems/rubygems/pull/6615) by hsbt
856* Installs bundler 2.4.21 as a default gem.
858## Documentation:
860* Update suggested variable for bindir. Pull request
861 [#7028](https://github.com/rubygems/rubygems/pull/7028) by hsbt
862* Fix invalid links in documentation. Pull request
863 [#7008](https://github.com/rubygems/rubygems/pull/7008) by simi
865# 3.4.20 / 2023-09-27
867## Enhancements:
869* Raise `Gem::Package::FormatError` when gem encounters corrupt EOF.
870 Pull request [#6882](https://github.com/rubygems/rubygems/pull/6882)
871 by martinemde
872* Allow skipping empty license `gem build` warning by setting license to
873 `nil`. Pull request
874 [#6879](https://github.com/rubygems/rubygems/pull/6879) by jhong97
875* Update SPDX license list as of 2023-06-18. Pull request
876 [#6891](https://github.com/rubygems/rubygems/pull/6891) by
877 github-actions[bot]
878* Update SPDX license list as of 2023-04-28. Pull request
879 [#6642](https://github.com/rubygems/rubygems/pull/6642) by segiddins
880* Update SPDX license list as of 2023-01-26. Pull request
881 [#6310](https://github.com/rubygems/rubygems/pull/6310) by segiddins
882* Installs bundler 2.4.20 as a default gem.
884## Bug fixes:
886* Fixed false positive SymlinkError in symbolic link directory. Pull
887 request [#6947](https://github.com/rubygems/rubygems/pull/6947) by
888 negi0109
889* Ensure that loading multiple gemspecs with legacy YAML class references
890 does not warn. Pull request
891 [#6889](https://github.com/rubygems/rubygems/pull/6889) by segiddins
892* Fix NoMethodError when choosing a too big number from `gem uni` list.
893 Pull request [#6901](https://github.com/rubygems/rubygems/pull/6901) by
894 amatsuda
896## Performance:
898* Reduce allocations for stub specifications. Pull request
899 [#6972](https://github.com/rubygems/rubygems/pull/6972) by segiddins
901# 3.4.19 / 2023-08-17
903## Enhancements:
905* Installs bundler 2.4.19 as a default gem.
907## Performance:
909* Speedup building docs when updating rubygems. Pull request
910 [#6864](https://github.com/rubygems/rubygems/pull/6864) by
911 deivid-rodriguez
913# 3.4.18 / 2023-08-02
915## Enhancements:
917* Add poller to fetch WebAuthn OTP. Pull request
918 [#6774](https://github.com/rubygems/rubygems/pull/6774) by jenshenny
919* Remove side effects when unmarshaling old `Gem::Specification`. Pull
920 request [#6825](https://github.com/rubygems/rubygems/pull/6825) by nobu
921* Ship rubygems executables in `exe` folder. Pull request
922 [#6704](https://github.com/rubygems/rubygems/pull/6704) by hsbt
923* Installs bundler 2.4.18 as a default gem.
925# 3.4.17 / 2023-07-14
927## Enhancements:
929* Installs bundler 2.4.17 as a default gem.
931## Performance:
933* Avoid unnecessary work for private local gem installation. Pull request
934 [#6810](https://github.com/rubygems/rubygems/pull/6810) by
935 deivid-rodriguez
937# 3.4.16 / 2023-07-10
939## Enhancements:
941* Installs bundler 2.4.16 as a default gem.
943# 3.4.15 / 2023-06-29
945## Enhancements:
947* Installs bundler 2.4.15 as a default gem.
949## Bug fixes:
951* Autoload shellwords when it's needed. Pull request
952 [#6734](https://github.com/rubygems/rubygems/pull/6734) by ioquatix
954## Documentation:
956* Update command to test local gem command changes. Pull request
957 [#6761](https://github.com/rubygems/rubygems/pull/6761) by jenshenny
959# 3.4.14 / 2023-06-12
961## Enhancements:
963* Load plugin immediately. Pull request
964 [#6673](https://github.com/rubygems/rubygems/pull/6673) by kou
965* Installs bundler 2.4.14 as a default gem.
967## Documentation:
969* Clarify what the `rubygems-update` gem is for, and link to source code
970 and guides. Pull request
971 [#6710](https://github.com/rubygems/rubygems/pull/6710) by davetron5000
973# 3.4.13 / 2023-05-09
975## Enhancements:
977* Installs bundler 2.4.13 as a default gem.
979# 3.4.12 / 2023-04-11
981## Enhancements:
983* [Experimental] Add WebAuthn Support to the CLI. Pull request
984 [#6560](https://github.com/rubygems/rubygems/pull/6560) by jenshenny
985* Installs bundler 2.4.12 as a default gem.
987# 3.4.11 / 2023-04-10
989## Enhancements:
991* Installs bundler 2.4.11 as a default gem.
994------------------------------------------------------------------------------
996RubyGems installed the following executables:
997 /home/travis/.rvm/rubies/ruby-3.2.2/bin/gem
998 /home/travis/.rvm/rubies/ruby-3.2.2/bin/bundle
999 /home/travis/.rvm/rubies/ruby-3.2.2/bin/bundler
1001RubyGems system software updated
before_install.2
10020.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
10030.02s$ sudo sed -i -e 's/^port = 5433/port = 5432/' /etc/postgresql/11/main/postgresql.conf
before_install.4
10042.41s$ sudo systemctl restart postgresql@11-main
install.bundler
10051.55s$ bundle install --jobs=3 --retry=3 --deployment
1006[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
1007Bundler 2.5.20 is running, but your lockfile was generated with 2.4.14. Installing Bundler 2.4.14 and restarting using that version.
1008Fetching gem metadata from https://rubygems.org/.
1009Fetching bundler 2.4.14
1010Installing bundler 2.4.14
1011[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
1012Using rake 13.0.6
1013Using concurrent-ruby 1.2.2
1014Using i18n 1.14.1
1015Using minitest 5.18.1
1016Using tzinfo 2.0.6
1017Using activesupport 7.0.6
1018Using builder 3.2.4
1019Using erubi 1.12.0
1020Using racc 1.7.1
1021Using nokogiri 1.15.2 (x86_64-linux)
1022Using rails-dom-testing 2.1.1
1023Using crass 1.0.6
1024Using loofah 2.21.3
1025Using rails-html-sanitizer 1.6.0
1026Using actionview 7.0.6
1027Using rack 2.2.7
1028Using rack-test 2.1.0
1029Using actionpack 7.0.6
1030Using nio4r 2.5.9
1031Using websocket-extensions 0.1.5
1032Using websocket-driver 0.7.5
1033Using actioncable 7.0.6
1034Using globalid 1.1.0
1035Using activejob 7.0.6
1036Using activemodel 7.0.6
1037Using activerecord 7.0.6
1038Using marcel 1.0.2
1039Using mini_mime 1.1.2
1040Using activestorage 7.0.6
1041Using date 3.3.3
1042Using timeout 0.4.0
1043Using net-protocol 0.2.1
1044Using net-imap 0.3.6
1045Using net-pop 0.1.2
1046Using net-smtp 0.3.3
1047Using mail 2.8.1
1048Using actionmailbox 7.0.6
1049Using actionmailer 7.0.6
1050Using actiontext 7.0.6
1051Using ansi 1.5.0
1052Using ast 2.4.2
1053Using aws-eventstream 1.2.0
1054Using aws-partitions 1.783.0
1055Using aws-sigv4 1.6.0
1056Using jmespath 1.6.2
1057Using aws-sdk-core 3.176.1
1058Using aws-sdk-kms 1.68.0
1059Using aws-sdk-s3 1.127.0
1060Using bundler 2.4.14
1061Using colored 1.2
1062Using diff-lcs 1.5.0
1063Using docile 1.4.0
1064Using json 2.6.3
1065Using language_server-protocol 3.17.0.3
1066Using method_source 1.0.0
1067Using parallel 1.23.0
1068Using parser 3.2.2.3
1069Using pg 1.5.3
1070Using thor 1.2.2
1071Using zeitwerk 2.6.8
1072Using railties 7.0.6
1073Using rails 7.0.6
1074Using rainbow 3.1.1
1075Using rake-notes 0.2.2
1076Using regexp_parser 2.8.1
1077Using rexml 3.2.5
1078Using routes 0.2.0
1079Using rspec-support 3.12.1
1080Using rspec-core 3.12.2
1081Using rspec-expectations 3.12.3
1082Using rspec-mocks 3.12.5
1083Using rspec 3.12.0
1084Using rubocop-ast 1.29.0
1085Using ruby-progressbar 1.13.0
1086Using unicode-display_width 2.4.2
1087Using rubocop 1.54.1
1088Using rubocop-capybara 2.18.0
1089Using rubocop-factory_bot 2.23.1
1090Using rubocop-performance 1.18.0
1091Using rubocop-rspec 2.22.0
1092Using simplecov-html 0.12.3
1093Using simplecov_json_formatter 0.1.4
1094Using simplecov 0.22.0
1095Using terminal-table 3.0.2
1096Using simplecov-console 0.9.1
1097Bundle complete! 12 Gemfile dependencies, 85 gems now installed.
1098Bundled gems are installed into `./vendor/bundle`
before_script.1
11000.01s$ psql --version
1101psql (PostgreSQL) 11.22 (Ubuntu 11.22-4.pgdg20.04+1)
before_script.2
11020.25s$ psql -c 'CREATE DATABASE travis_test;'
1103CREATE DATABASE
before_script.3
11041.21s$ curl -fs https://raw.githubusercontent.com/travis-ci/travis-migrations/master/db/main/structure.sql | psql -v ON_ERROR_STOP=1 travis_test
1105SET
1106SET
1107SET
1108SET
1109SET
1110 set_config
1111------------
1113(1 row)
1115SET
1116SET
1117SET
1118SET
1119CREATE EXTENSION
1120COMMENT
1121CREATE EXTENSION
1122COMMENT
1123CREATE TYPE
1124CREATE FUNCTION
1125CREATE FUNCTION
1126CREATE FUNCTION
1127CREATE FUNCTION
1128CREATE FUNCTION
1129CREATE FUNCTION
1130CREATE FUNCTION
1131CREATE FUNCTION
1132CREATE FUNCTION
1133CREATE FUNCTION
1134CREATE FUNCTION
1135CREATE FUNCTION
1136CREATE FUNCTION
1137CREATE FUNCTION
1138CREATE FUNCTION
1139CREATE FUNCTION
1140CREATE FUNCTION
1141CREATE FUNCTION
1142CREATE FUNCTION
1143CREATE FUNCTION
1144CREATE FUNCTION
1145CREATE FUNCTION
1146CREATE FUNCTION
1147CREATE FUNCTION
1148CREATE FUNCTION
1149CREATE FUNCTION
1150CREATE FUNCTION
1151CREATE FUNCTION
1152CREATE FUNCTION
1153CREATE FUNCTION
1154SET
1155CREATE TABLE
1156CREATE SEQUENCE
1157ALTER SEQUENCE
1158CREATE TABLE
1159CREATE TABLE
1160CREATE SEQUENCE
1161ALTER SEQUENCE
1162CREATE TABLE
1163CREATE SEQUENCE
1164ALTER SEQUENCE
1165CREATE TABLE
1166CREATE SEQUENCE
1167ALTER SEQUENCE
1168CREATE TABLE
1169CREATE SEQUENCE
1170ALTER SEQUENCE
1171CREATE TABLE
1172CREATE SEQUENCE
1173ALTER SEQUENCE
1174CREATE TABLE
1175CREATE SEQUENCE
1176ALTER SEQUENCE
1177CREATE TABLE
1178CREATE SEQUENCE
1179ALTER SEQUENCE
1180CREATE 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 TABLE
1201CREATE TABLE
1202CREATE TABLE
1203CREATE TABLE
1204CREATE TABLE
1205CREATE TABLE
1206CREATE TABLE
1207CREATE TABLE
1208CREATE TABLE
1209CREATE TABLE
1210CREATE TABLE
1211CREATE TABLE
1212CREATE TABLE
1213CREATE TABLE
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 SEQUENCE
1247ALTER SEQUENCE
1248CREATE TABLE
1249CREATE SEQUENCE
1250ALTER SEQUENCE
1251CREATE TABLE
1252CREATE SEQUENCE
1253ALTER SEQUENCE
1254CREATE TABLE
1255CREATE SEQUENCE
1256ALTER SEQUENCE
1257CREATE TABLE
1258CREATE SEQUENCE
1259ALTER SEQUENCE
1260CREATE TABLE
1261CREATE SEQUENCE
1262ALTER SEQUENCE
1263CREATE TABLE
1264CREATE SEQUENCE
1265ALTER SEQUENCE
1266CREATE TABLE
1267CREATE TABLE
1268CREATE SEQUENCE
1269ALTER SEQUENCE
1270CREATE TABLE
1271CREATE SEQUENCE
1272ALTER SEQUENCE
1273CREATE TABLE
1274CREATE SEQUENCE
1275ALTER SEQUENCE
1276CREATE TABLE
1277CREATE SEQUENCE
1278ALTER SEQUENCE
1279CREATE TABLE
1280CREATE SEQUENCE
1281ALTER SEQUENCE
1282CREATE TABLE
1283CREATE SEQUENCE
1284ALTER SEQUENCE
1285CREATE TABLE
1286CREATE SEQUENCE
1287ALTER SEQUENCE
1288CREATE TABLE
1289CREATE SEQUENCE
1290ALTER SEQUENCE
1291CREATE TABLE
1292CREATE TABLE
1293CREATE SEQUENCE
1294ALTER SEQUENCE
1295CREATE TABLE
1296CREATE TABLE
1297CREATE SEQUENCE
1298ALTER SEQUENCE
1299CREATE TABLE
1300CREATE SEQUENCE
1301ALTER SEQUENCE
1302CREATE TABLE
1303CREATE SEQUENCE
1304ALTER SEQUENCE
1305CREATE TABLE
1306CREATE SEQUENCE
1307ALTER SEQUENCE
1308CREATE TABLE
1309CREATE SEQUENCE
1310ALTER SEQUENCE
1311CREATE TABLE
1312CREATE SEQUENCE
1313ALTER SEQUENCE
1314CREATE TABLE
1315CREATE SEQUENCE
1316ALTER SEQUENCE
1317CREATE TABLE
1318CREATE SEQUENCE
1319ALTER SEQUENCE
1320CREATE TABLE
1321CREATE SEQUENCE
1322ALTER SEQUENCE
1323CREATE TABLE
1324CREATE SEQUENCE
1325ALTER SEQUENCE
1326CREATE TABLE
1327CREATE SEQUENCE
1328ALTER SEQUENCE
1329CREATE TABLE
1330CREATE SEQUENCE
1331ALTER SEQUENCE
1332CREATE TABLE
1333CREATE SEQUENCE
1334ALTER SEQUENCE
1335CREATE 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
1396ALTER TABLE
1397ALTER TABLE
1398ALTER TABLE
1399ALTER TABLE
1400ALTER TABLE
1401ALTER TABLE
1402ALTER TABLE
1403ALTER TABLE
1404ALTER TABLE
1405ALTER TABLE
1406ALTER TABLE
1407ALTER TABLE
1408ALTER TABLE
1409ALTER TABLE
1410ALTER TABLE
1411ALTER TABLE
1412ALTER TABLE
1413ALTER TABLE
1414ALTER TABLE
1415ALTER TABLE
1416ALTER TABLE
1417ALTER TABLE
1418ALTER TABLE
1419ALTER TABLE
1420ALTER TABLE
1421ALTER TABLE
1422ALTER TABLE
1423ALTER TABLE
1424ALTER TABLE
1425ALTER TABLE
1426ALTER TABLE
1427ALTER TABLE
1428ALTER TABLE
1429ALTER TABLE
1430ALTER TABLE
1431ALTER TABLE
1432ALTER TABLE
1433ALTER TABLE
1434ALTER TABLE
1435ALTER TABLE
1436ALTER TABLE
1437ALTER TABLE
1438ALTER TABLE
1439ALTER TABLE
1440ALTER TABLE
1441ALTER TABLE
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 INDEX
1606CREATE INDEX
1607CREATE INDEX
1608CREATE INDEX
1609CREATE INDEX
1610CREATE INDEX
1611CREATE INDEX
1612CREATE INDEX
1613CREATE INDEX
1614CREATE INDEX
1615CREATE INDEX
1616CREATE INDEX
1617CREATE INDEX
1618CREATE INDEX
1619CREATE INDEX
1620CREATE INDEX
1621CREATE INDEX
1622CREATE INDEX
1623CREATE INDEX
1624CREATE INDEX
1625CREATE INDEX
1626CREATE INDEX
1627CREATE INDEX
1628CREATE INDEX
1629CREATE INDEX
1630CREATE INDEX
1631CREATE INDEX
1632CREATE INDEX
1633CREATE INDEX
1634CREATE INDEX
1635CREATE INDEX
1636CREATE INDEX
1637CREATE INDEX
1638CREATE INDEX
1639CREATE INDEX
1640CREATE INDEX
1641CREATE INDEX
1642CREATE INDEX
1643CREATE INDEX
1644CREATE INDEX
1645CREATE INDEX
1646CREATE INDEX
1647CREATE INDEX
1648CREATE INDEX
1649CREATE INDEX
1650CREATE INDEX
1651CREATE INDEX
1652CREATE TRIGGER
1653CREATE TRIGGER
1654CREATE TRIGGER
1655CREATE TRIGGER
1656CREATE TRIGGER
1657CREATE TRIGGER
1658CREATE TRIGGER
1659CREATE TRIGGER
1660CREATE TRIGGER
1661CREATE TRIGGER
1662CREATE TRIGGER
1663CREATE TRIGGER
1664CREATE TRIGGER
1665CREATE TRIGGER
1666CREATE TRIGGER
1667CREATE TRIGGER
1668CREATE TRIGGER
1669ALTER TABLE
1670ALTER TABLE
1671ALTER TABLE
1672ALTER TABLE
1673ALTER TABLE
1674ALTER TABLE
1675ALTER TABLE
1676ALTER TABLE
1677ALTER TABLE
1678ALTER TABLE
1679ALTER TABLE
1680ALTER TABLE
1681ALTER TABLE
1682ALTER TABLE
1683ALTER TABLE
1684ALTER TABLE
1685ALTER TABLE
1686ALTER TABLE
1687ALTER TABLE
1688ALTER TABLE
1689ALTER TABLE
1690ALTER TABLE
1691ALTER TABLE
1692ALTER TABLE
1693ALTER TABLE
1694ALTER TABLE
1695ALTER TABLE
1696ALTER TABLE
1697ALTER TABLE
1698ALTER TABLE
1699ALTER TABLE
1700ALTER TABLE
1701ALTER TABLE
1702SET
1703INSERT 0 394
170437.47s$ bundle exec rspec spec
1706Repo counts
1707 before aggregation
1708 after aggregating per repo
1709 after aggregating all counts
1710 does not raise if repos are missing
1711 does not raise if builds are deleted before stages
1713set_updated_at trigger
1714Dropped database 'travis_test'
1715Created database 'travis_test'
1716== 201207261749 CreatePlans: migrating ========================================
1717-- create_table(:plans, {:id=>:integer})
1718 -> 0.0051s
1719== 201207261749 CreatePlans: migrated (0.0052s) ===============================
1721== 20101126174706 CreateRepositories: migrating ===============================
1722-- create_table(:repositories, {:id=>:integer})
1723 -> 0.0046s
1724== 20101126174706 CreateRepositories: migrated (0.0047s) ======================
1726== 20101126174715 CreateBuilds: migrating =====================================
1727-- create_table(:builds, {:id=>:integer})
1728 -> 0.0050s
1729== 20101126174715 CreateBuilds: migrated (0.0051s) ============================
1731== 20110109130532 DeviseCreateUsers: migrating ================================
1732-- create_table(:users, {:id=>:integer})
1733 -> 0.0044s
1734-- add_index(:users, :login, {:unique=>true})
1735 -> 0.0020s
1736== 20110109130532 DeviseCreateUsers: migrated (0.0065s) =======================
1738== 20110116155100 RepositoriesAddUsername: migrating ==========================
1739-- change_table(:repositories)
1740 -> 0.0006s
1741== 20110116155100 RepositoriesAddUsername: migrated (0.0007s) =================
1743== 20110130102621 CreateTokens: migrating =====================================
1744-- create_table(:tokens, {:id=>:integer})
1745 -> 0.0044s
1746== 20110130102621 CreateTokens: migrated (0.0081s) ============================
1748== 20110301071656 AddBuildParentIdAndConfiguration: migrating =================
1749-- change_table(:builds)
1750 -> 0.0010s
1751-- change_column(:builds, :number, :string)
1752 -> 0.0044s
1753-- add_index(:builds, :repository_id)
1754 -> 0.0018s
1755-- add_index(:builds, :parent_id)
1756 -> 0.0016s
1757== 20110301071656 AddBuildParentIdAndConfiguration: migrated (0.0090s) ========
1759== 20110316174721 RepositoriesDenormalizeLastBuildAttributes: migrating =======
1760-- change_table(:repositories)
1761 -> 0.0019s
1762== 20110316174721 RepositoriesDenormalizeLastBuildAttributes: migrated (0.0020s)
1764== 20110321075539 RepositoriesAddOwnerNameAndOwnerEmail: migrating ============
1765-- change_table(:repositories)
1766 -> 0.0012s
1767-- remove_column(:repositories, :username)
1768 -> 0.0004s
1769== 20110321075539 RepositoriesAddOwnerNameAndOwnerEmail: migrated (0.0016s) ===
1771== 20110411171936 CreateHistoriesTable: migrating =============================
1772-- create_table(:histories, {:id=>:integer})
1773 -> 0.0047s
1774-- add_index(:histories, [:item, :table, :month, :year])
1775 -> 0.0018s
1776== 20110411171936 CreateHistoriesTable: migrated (0.0066s) ====================
1778== 20110411171937 RenameHistoriesToRailsAdminHistories: migrating =============
1779-- remove_index(:histories, nil, {:name=>:index_histories_on_item_and_table_and_month_and_year})
1780 -> 0.0004s
1781-- rename_table(:histories, :rails_admin_histories)
1782 -> 0.0030s
1783-- add_index("rails_admin_histories", ["item", "table", "month", "year"], {:name=>"index_histories_on_item_and_table_and_month_and_year"})
1784 -> 0.0019s
1785== 20110411171937 RenameHistoriesToRailsAdminHistories: migrated (0.0065s) ====
1787== 20110411172518 AddAdminFlagToUser: migrating ===============================
1788-- change_table(:users)
1789 -> 0.0009s
1790== 20110411172518 AddAdminFlagToUser: migrated (0.0010s) ======================
1792== 20110413101057 BuildsAddRef: migrating =====================================
1793-- change_table(:builds)
1794 -> 0.0010s
1795== 20110413101057 BuildsAddRef: migrated (0.0010s) ============================
1797== 20110414131100 BuildsAddGithubPayload: migrating ===========================
1798-- change_table(:builds)
1799 -> 0.0006s
1800== 20110414131100 BuildsAddGithubPayload: migrated (0.0006s) ==================
1802== 20110503150504 AddGithubIdToUsersTable: migrating ==========================
1803-- add_column(:users, :github_id, :integer)
1804 -> 0.0006s
1805-- add_index(:users, :github_id)
1806 -> 0.0017s
1807== 20110503150504 AddGithubIdToUsersTable: migrated (0.0024s) =================
1809== 20110523012243 RepositoriesChangeOwnerEmailType: migrating =================
1810-- change_column(:repositories, :owner_email, :text)
1811 -> 0.0006s
1812== 20110523012243 RepositoriesChangeOwnerEmailType: migrated (0.0006s) ========
1814== 20110611203537 AddGithubOauthTokenToUser: migrating ========================
1815-- add_column(:users, :github_oauth_token, :string)
1816 -> 0.0005s
1817-- add_index(:users, :github_oauth_token)
1818 -> 0.0018s
1819== 20110611203537 AddGithubOauthTokenToUser: migrated (0.0024s) ===============
1821== 20110613210252 AddCompareUrlToBuild: migrating =============================
1822-- add_column(:builds, :compare_url, :string)
1823 -> 0.0005s
1824== 20110613210252 AddCompareUrlToBuild: migrated (0.0006s) ====================
1826== 20110615152003 BuildsRemoveJobId: migrating ================================
1827-- change_table(:builds)
1828 -> 0.0005s
1829== 20110615152003 BuildsRemoveJobId: migrated (0.0006s) =======================
1831== 20110616211744 BuildRemoveLastBuiltAt: migrating ===========================
1832-- change_table(:repositories)
1833 -> 0.0005s
1834== 20110616211744 BuildRemoveLastBuiltAt: migrated (0.0006s) ==================
1836== 20110617114728 AddMissingIndexes: migrating ================================
1837-- add_index(:repositories, :last_build_started_at)
1838 -> 0.0020s
1839-- add_index(:repositories, [:owner_name, :name])
1840 -> 0.0016s
1841-- add_index(:builds, [:repository_id, :parent_id, :started_at])
1842 -> 0.0018s
1843== 20110617114728 AddMissingIndexes: migrated (0.0057s) =======================
1845== 20110619100906 AddActiveToRepositories: migrating ==========================
1846-- add_column(:repositories, :is_active, :boolean)
1847 -> 0.0005s
1848== 20110619100906 AddActiveToRepositories: migrated (0.0006s) =================
1850== 20110729094426 StoreTokenInBuild: migrating ================================
1851-- add_column(:builds, :token, :string)
1852 -> 0.0006s
1853== 20110729094426 StoreTokenInBuild: migrated (0.0006s) =======================
1855== 20110801161819 CreateRequestsCommitsAndTasks: migrating ====================
1856-- change_table(:builds)
1857 -> 0.0013s
1858-- create_table(:commits, {:force=>true, :id=>:integer})
1859 -> 0.0045s
1860-- create_table(:requests, {:force=>true, :id=>:integer})
1861 -> 0.0045s
1862-- create_table(:tasks, {:force=>true, :id=>:integer})
1863 -> 0.0049s
1864-- add_index(:commits, :commit)
1865 -> 0.0017s
1866-- add_index(:builds, :commit)
1867 -> 0.0018s
1868-- add_index(:requests, :commit)
1869 -> 0.0016s
1870-- add_index(:tasks, :commit)
1871 -> 0.0016s
1872-- execute("UPDATE requests SET commit_id = (SELECT commits.id FROM commits WHERE commits.commit = requests.commit LIMIT 1)")
1873 -> 0.0005s
1874-- execute("UPDATE tasks SET commit_id = (SELECT commits.id FROM commits WHERE commits.commit = tasks.commit LIMIT 1)")
1875 -> 0.0004s
1876-- execute("DELETE FROM builds WHERE parent_id IS NOT NULL")
1877 -> 0.0004s
1878-- execute("UPDATE builds SET request_id = (SELECT requests.id FROM requests WHERE requests.commit = builds.commit LIMIT 1)")
1879 -> 0.0003s
1880-- execute("UPDATE builds SET commit_id = (SELECT commits.id FROM commits WHERE commits.commit = builds.commit LIMIT 1)")
1881 -> 0.0003s
1882-- execute("CREATE SEQUENCE shared_builds_tasks_seq CACHE 30")
1883 -> 0.0004s
1884-- execute("ALTER TABLE builds ALTER COLUMN id TYPE BIGINT")
1885 -> 0.0096s
1886-- execute("ALTER TABLE builds ALTER COLUMN id SET DEFAULT nextval('shared_builds_tasks_seq')")
1887 -> 0.0004s
1888-- execute("ALTER TABLE tasks ALTER COLUMN id TYPE BIGINT")
1889 -> 0.0053s
1890-- execute("ALTER TABLE tasks ALTER COLUMN id SET DEFAULT nextval('shared_builds_tasks_seq')")
1891 -> 0.0004s
1892-- select_value("SELECT max(id) FROM commits")
1893 -> 0.0005s
1894-- execute("SELECT setval('commits_id_seq', 1)")
1895 -> 0.0003s
1896-- select_value("SELECT max(id) FROM requests")
1897 -> 0.0003s
1898-- execute("SELECT setval('requests_id_seq', 1)")
1899 -> 0.0002s
1900-- select_value("SELECT max(id) FROM tasks")
1901 -> 0.0005s
1902-- execute("SELECT setval('tasks_id_seq', 1)")
1903 -> 0.0002s
1904-- remove_column(:builds, :parent_id)
1905 -> 0.0004s
1906-- remove_column(:builds, :commit)
1907 -> 0.0003s
1908-- remove_column(:requests, :commit)
1909 -> 0.0003s
1910-- remove_column(:tasks, :commit)
1911 -> 0.0003s
1912== 20110801161819 CreateRequestsCommitsAndTasks: migrated (0.0440s) ===========
1914== 20110805030147 RepositoryRenameIsActiveToActive: migrating =================
1915-- rename_column(:repositories, :is_active, :active)
1916 -> 0.0059s
1917== 20110805030147 RepositoryRenameIsActiveToActive: migrated (0.0060s) ========
1919== 20110819232908 TasksAddTags: migrating =====================================
1920-- add_column(:tasks, :tags, :text)
1921 -> 0.0009s
1922== 20110819232908 TasksAddTags: migrated (0.0010s) ============================
1924== 20110911204538 CacheOneNumberForSharedBuildsTasksSequence: migrating =======
1925-- execute("ALTER SEQUENCE shared_builds_tasks_seq CACHE 1 NO MAXVALUE NO CYCLE")
1926 -> 0.0008s
1927== 20110911204538 CacheOneNumberForSharedBuildsTasksSequence: migrated (0.0009s)
1929== 20111107134436 RenameTasksToJobs: migrating ================================
1930-- rename_table(:tasks, :jobs)
1931 -> 0.0039s
1932-- execute("UPDATE jobs SET type = 'Job::Test' WHERE type = 'Task::Test'")
1933 -> 0.0005s
1934-- execute("UPDATE jobs SET type = 'Job::Configure' WHERE type = 'Task::Configure'")
1935 -> 0.0004s
1936== 20111107134436 RenameTasksToJobs: migrated (0.0049s) =======================
1938== 20111107134437 CreateArtifacts: migrating ==================================
1939-- create_table(:artifacts, {:id=>:integer})
1940 -> 0.0056s
1941-- execute("UPDATE artifacts SET job_id = id")
1942 -> 0.0006s
1943-- execute("select setval('artifacts_id_seq', (select max(id) + 1 from artifacts));")
1944 -> 0.0030s
1945-- add_index(:artifacts, [:type, :job_id])
1946 -> 0.0023s
1947== 20111107134437 CreateArtifacts: migrated (0.0117s) =========================
1949== 20111107134438 CreateWorkers: migrating ====================================
1950-- create_table(:workers, {:id=>:integer})
1951 -> 0.0050s
1952-- add_index(:workers, [:name, :host])
1953 -> 0.0021s
1954== 20111107134438 CreateWorkers: migrated (0.0072s) ===========================
1956== 20111107134439 JobsAddRetries: migrating ===================================
1957-- change_table(:jobs)
1958 -> 0.0012s
1959== 20111107134439 JobsAddRetries: migrated (0.0013s) ==========================
1961== 20111107134440 RemoveRailsAdmin: migrating =================================
1962-- drop_table(:rails_admin_histories)
1963 -> 0.0023s
1964== 20111107134440 RemoveRailsAdmin: migrated (0.0023s) ========================
1966== 20111128235043 AddIndexesToJobs: migrating =================================
1967-- add_index(:jobs, [:queue, :state])
1968 -> 0.0024s
1969== 20111128235043 AddIndexesToJobs: migrated (0.0024s) ========================
1971== 20111129014329 AddRepositoryIdIndexToJobs: migrating =======================
1972-- add_index(:jobs, :repository_id)
1973 -> 0.0021s
1974== 20111129014329 AddRepositoryIdIndexToJobs: migrated (0.0022s) ==============
1976== 20111129022625 AddOwnerAndTypeIndexToJobs: migrating =======================
1977-- add_index(:jobs, [:type, :owner_id, :owner_type])
1978 -> 0.0022s
1979== 20111129022625 AddOwnerAndTypeIndexToJobs: migrated (0.0023s) ==============
1981== 20111201113500 WorkersAddPayloadAndLastError: migrating ====================
1982-- change_table(:workers)
1983 -> 0.0014s
1984== 20111201113500 WorkersAddPayloadAndLastError: migrated (0.0014s) ===========
1986== 20111203002341 RepositoriesAddDescriptionAndLastLanguage: migrating ========
1987-- change_table(:repositories)
1988 -> 0.0014s
1989-- change_table(:builds)
1990 -> 0.0007s
1991== 20111203002341 RepositoriesAddDescriptionAndLastLanguage: migrated (0.0021s)
1993== 20111203221720 BuildsAddArchivedAt: migrating ==============================
1994-- change_table(:builds)
1995 -> 0.0009s
1996== 20111203221720 BuildsAddArchivedAt: migrated (0.0009s) =====================
1998== 20111207093700 MimicProductionDb: migrating ================================
1999-- column_exists?(:users, :oauth2_uid, :integer)
2000 -> 0.0039s
2001-- column_exists?(:users, :oauth2_token, :string)
2002 -> 0.0015s
2003-- column_exists?(:repositories, :user_id, :integer)
2004 -> 0.0017s
2005== 20111207093700 MimicProductionDb: migrated (0.0072s) =======================
2007== 20111212103859 BuildsAddDuration: migrating ================================
2008-- change_table(:builds)
2009 -> 0.0009s
2010== 20111212103859 BuildsAddDuration: migrated (0.0009s) =======================
2012== 20111212112411 RepositoriesAddLastBuildDuration: migrating =================
2013-- change_table(:repositories)
2014 -> 0.0008s
2015== 20111212112411 RepositoriesAddLastBuildDuration: migrated (0.0009s) ========
2017== 20111214173922 CreateSslKeys: migrating ====================================
2018-- create_table(:ssl_keys, {:id=>:integer})
2019 -> 0.0052s
2020-- add_index("ssl_keys", ["repository_id"], {:name=>"index_ssl_key_on_repository_id"})
2021 -> 0.0017s
2022== 20111214173922 CreateSslKeys: migrated (0.0071s) ===========================
2024== 20120114125404 AddAllowFailureToJobs: migrating ============================
2025-- add_column(:jobs, :allow_failure, :boolean, {:default=>false})
2026 -> 0.0013s
2027== 20120114125404 AddAllowFailureToJobs: migrated (0.0013s) ===================
2029== 20120216133223 AddPullRequestFieldsToRequest: migrating ====================
2030-- add_column(:requests, :event_type, :string)
2031 -> 0.0008s
2032-- add_column(:requests, :comments_url, :string)
2033 -> 0.0005s
2034-- add_column(:requests, :base_commit, :string)
2035 -> 0.0005s
2036-- add_column(:requests, :head_commit, :string)
2037 -> 0.0005s
2038== 20120216133223 AddPullRequestFieldsToRequest: migrated (0.0024s) ===========
2040== 20120222082522 AddGravatarIdToUsers: migrating =============================
2041-- add_column(:users, :gravatar_id, :string)
2042 -> 0.0008s
2043== 20120222082522 AddGravatarIdToUsers: migrated (0.0009s) ====================
2045== 20120301131209 OrganizationsCreate: migrating ==============================
2046-- create_table(:organizations, {:id=>:integer})
2047 -> 0.0057s
2048== 20120301131209 OrganizationsCreate: migrated (0.0058s) =====================
2050== 20120304000502 JobsRenameOwnerToSource: migrating ==========================
2051-- change_table(:jobs)
2052 -> 0.0076s
2053== 20120304000502 JobsRenameOwnerToSource: migrated (0.0076s) =================
2055== 20120304000503 RepositoriesAddOwner: migrating =============================
2056-- change_table(:repositories)
2057 -> 0.0010s
2058== 20120304000503 RepositoriesAddOwner: migrated (0.0010s) ====================
2060== 20120304000504 BuildsAddOwner: migrating ===================================
2061-- change_table(:builds)
2062 -> 0.0009s
2063== 20120304000504 BuildsAddOwner: migrated (0.0010s) ==========================
2065== 20120304000505 JobsAddOwner: migrating =====================================
2066-- change_table(:jobs)
2067 -> 0.0009s
2068== 20120304000505 JobsAddOwner: migrated (0.0010s) ============================
2070== 20120304000506 RequestsAddOwner: migrating =================================
2071-- change_table(:requests)
2072 -> 0.0009s
2073== 20120304000506 RequestsAddOwner: migrated (0.0009s) ========================
2075== 20120311234933 AddLocaleToUser: migrating ==================================
2076-- add_column(:users, :locale, :string)
2077 -> 0.0005s
2078== 20120311234933 AddLocaleToUser: migrated (0.0006s) =========================
2080== 20120316123726 CreateMemberships: migrating ================================
2081-- create_table(:memberships, {:id=>:integer})
2082 -> 0.0027s
2083== 20120316123726 CreateMemberships: migrated (0.0027s) =======================
2085== 20120319170001 RepositoriesAddPrivate: migrating ===========================
2086-- change_table(:repositories)
2087 -> 0.0009s
2088== 20120319170001 RepositoriesAddPrivate: migrated (0.0009s) ==================
2090== 20120324104051 CreateUrls: migrating =======================================
2091-- create_table(:urls, {:id=>:integer})
2092 -> 0.0043s
2093== 20120324104051 CreateUrls: migrated (0.0043s) ==============================
2095== 20120505165100 CopyStatusToResult: migrating ===============================
2096-- add_column(:builds, :result, :integer)
2097 -> 0.0006s
2098-- add_column(:jobs, :result, :integer)
2099 -> 0.0004s
2100-- add_column(:repositories, :last_build_result, :integer)
2101 -> 0.0004s
2102Executing: UPDATE builds SET result = status;
2103Executing: UPDATE jobs SET result = status;
2104Executing: UPDATE repositories SET last_build_result = last_build_status;
2105== 20120505165100 CopyStatusToResult: migrated (0.0025s) ======================
2107== 20120511171900 RequestsAddIndexOnHeadCommit: migrating =====================
2108-- add_index(:requests, :head_commit)
2109 -> 0.0021s
2110== 20120511171900 RequestsAddIndexOnHeadCommit: migrated (0.0022s) ============
2112== 20120521174400 CreatePermissions: migrating ================================
2113-- create_table(:permissions, {:id=>:integer})
2114 -> 0.0108s
2115-- add_index(:permissions, :user_id)
2116 -> 0.0094s
2117-- add_index(:permissions, :repository_id)
2118 -> 0.0018s
2119== 20120521174400 CreatePermissions: migrated (0.0220s) =======================
2121== 20120527235800 BuildsAddPreviousResult: migrating ==========================
2122-- change_table(:builds)
2123 -> 0.0007s
2124== 20120527235800 BuildsAddPreviousResult: migrated (0.0008s) =================
2126== 20120702111126 CreateSubscriptions: migrating ==============================
2127-- create_table(:subscriptions, {:id=>:integer})
2128 -> 0.0052s
2129== 20120702111126 CreateSubscriptions: migrated (0.0052s) =====================
2131== 20120703114226 AddBillingEmailCreditCardDataToSubscriptions: migrating =====
2132-- change_table(:subscriptions)
2133 -> 0.0018s
2134== 20120703114226 AddBillingEmailCreditCardDataToSubscriptions: migrated (0.0018s)
2136== 20120713140816 AddSyncInfoToUser: migrating ================================
2137-- add_column(:users, :in_sync, :boolean)
2138 -> 0.0008s
2139-- add_column(:users, :synced_at, :timestamp)
2140 -> 0.0004s
2141== 20120713140816 AddSyncInfoToUser: migrated (0.0013s) =======================
2143== 20120713153215 RenameInSyncToIsSyncing: migrating ==========================
2144-- rename_column(:users, :in_sync, :is_syncing)
2145 -> 0.0036s
2146== 20120713153215 RenameInSyncToIsSyncing: migrated (0.0036s) =================
2148== 20120725005300 AddQueueToWorkers: migrating ================================
2149-- add_column(:workers, :queue, :string)
2150 -> 0.0008s
2151== 20120725005300 AddQueueToWorkers: migrated (0.0009s) =======================
2153== 20120727151900 AddJobsIndexOnStateOwnerTypeOwnerId: migrating ==============
2154-- add_index(:jobs, ["state", "owner_id", "owner_type"], {:name=>"index_jobs_on_state_owner_type_owner_id"})
2155 -> 0.0036s
2156== 20120727151900 AddJobsIndexOnStateOwnerTypeOwnerId: migrated (0.0038s) =====
2158== 20120731005301 AddQueuedAtToJobs: migrating ================================
2159-- add_column(:jobs, :queued_at, :timestamp, {:precision=>nil})
2160 -> 0.0023s
2161== 20120731005301 AddQueuedAtToJobs: migrated (0.0025s) =======================
2163== 20120731074000 AddAmountToPlans: migrating =================================
2164-- change_table(:plans)
2165 -> 0.0027s
2166== 20120731074000 AddAmountToPlans: migrated (0.0028s) ========================
2168== 20120802001001 AddPushAndPullToPermissions: migrating ======================
2169-- add_column(:permissions, :push, :boolean, {:default=>false})
2170 -> 0.0034s
2171-- add_column(:permissions, :pull, :boolean, {:default=>false})
2172 -> 0.0022s
2173-- change_column_default(:permissions, :admin, false)
2174 -> 0.0052s
2175== 20120802001001 AddPushAndPullToPermissions: migrated (0.0112s) =============
2177== 20120803164000 CreateInvoices: migrating ===================================
2178-- create_table(:invoices, {:id=>:integer})
2179 -> 0.0072s
2180== 20120803164000 CreateInvoices: migrated (0.0075s) ==========================
2182== 20120803182300 AddInvoiceIdToInvoices: migrating ===========================
2183-- change_table(:invoices)
2184 -> 0.0006s
2185== 20120803182300 AddInvoiceIdToInvoices: migrated (0.0007s) ==================
2187== 20120804122700 AddStripeInvoiceIdToInvoices: migrating =====================
2188-- change_table(:invoices)
2189 -> 0.0006s
2190-- add_index(:invoices, :stripe_id)
2191 -> 0.0017s
2192== 20120804122700 AddStripeInvoiceIdToInvoices: migrated (0.0024s) ============
2194== 20120806120400 AddPlanToSubscriptions: migrating ===========================
2195-- change_table(:subscriptions)
2196 -> 0.0006s
2197== 20120806120400 AddPlanToSubscriptions: migrated (0.0006s) ==================
2199== 20120820164000 RenamePlanOnSubscriptions: migrating ========================
2200-- change_table(:subscriptions)
2201 -> 0.0012s
2202== 20120820164000 RenamePlanOnSubscriptions: migrated (0.0012s) ===============
2204== 20120905093300 CreateStripeEvents: migrating ===============================
2205-- create_table(:stripe_events, {:id=>:integer})
2206 -> 0.0041s
2207-- add_index(:stripe_events, :event_type)
2208 -> 0.0016s
2209-- add_index(:stripe_events, :date)
2210 -> 0.0018s
2211== 20120905093300 CreateStripeEvents: migrated (0.0075s) ======================
2213== 20120905171300 AddEventIdToStripeEvents: migrating =========================
2214-- change_table(:stripe_events)
2215 -> 0.0006s
2216-- add_index(:stripe_events, :event_id)
2217 -> 0.0018s
2218== 20120905171300 AddEventIdToStripeEvents: migrated (0.0025s) ================
2220== 20120911160000 AddBuildsIndexOnRepositoryIdAndState: migrating =============
2221-- remove_index("builds", nil, {:column=>"repository_id", :name=>"index_builds_on_repository_id"})
2222 -> 0.0015s
2223-- add_index("builds", ["repository_id", "state"])
2224 -> 0.0017s
2225== 20120911160000 AddBuildsIndexOnRepositoryIdAndState: migrated (0.0041s) ====
2227== 20120911230000 ArtifactsAddAggregatedAt: migrating =========================
2228-- add_column(:artifacts, :aggregated_at, :timestamp, {:precision=>nil})
2229 -> 0.0005s
2230== 20120911230000 ArtifactsAddAggregatedAt: migrated (0.0006s) ================
2232== 20120911230001 AddArtifactParts: migrating =================================
2233-- create_table(:artifact_parts, {:id=>:integer})
2234 -> 0.0041s
2235-- add_index(:artifact_parts, [:artifact_id, :number])
2236 -> 0.0017s
2237== 20120911230001 AddArtifactParts: migrated (0.0058s) ========================
2239== 20120913143800 AddSubscriptionsCoupon: migrating ===========================
2240-- change_table(:subscriptions)
2241 -> 0.0006s
2242== 20120913143800 AddSubscriptionsCoupon: migrated (0.0006s) ==================
2244== 20120915012000 BuildsAddIndexOnFinishedAt: migrating =======================
2245-- add_index("builds", "finished_at")
2246 -> 0.0019s
2247== 20120915012000 BuildsAddIndexOnFinishedAt: migrated (0.0019s) ==============
2249== 20120915012001 CommitsAddIndexOnBranch: migrating ==========================
2250-- add_index("commits", "branch")
2251 -> 0.0017s
2252== 20120915012001 CommitsAddIndexOnBranch: migrated (0.0017s) =================
2254== 20120915150000 JobsAddIndexOnCreatedAt: migrating ==========================
2255-- add_index("jobs", "created_at")
2256 -> 0.0020s
2257== 20120915150000 JobsAddIndexOnCreatedAt: migrated (0.0020s) =================
2259== 20121015002500 CreateEvents: migrating =====================================
2260-- create_table(:events, {:id=>:integer})
2261 -> 0.0043s
2262== 20121015002500 CreateEvents: migrated (0.0043s) ============================
2264== 20121015002501 RequestsAddResultAndMessage: migrating ======================
2265-- add_column(:requests, :result, :string)
2266 -> 0.0006s
2267-- add_column(:requests, :message, :string)
2268 -> 0.0004s
2269== 20121015002501 RequestsAddResultAndMessage: migrated (0.0011s) =============
2271== 20121017040100 CreateBroadcasts: migrating =================================
2272-- create_table(:broadcasts, {:id=>:integer})
2273 -> 0.0041s
2274== 20121017040100 CreateBroadcasts: migrated (0.0041s) ========================
2276== 20121017040200 EventsChangeDataToText: migrating ===========================
2277-- change_column(:events, :data, :text)
2278 -> 0.0005s
2279== 20121017040200 EventsChangeDataToText: migrated (0.0006s) ==================
2281== 20121018201301 AddEventTypeToBuilds: migrating =============================
2282-- add_column(:builds, :event_type, :string)
2283 -> 0.0005s
2284== 20121018201301 AddEventTypeToBuilds: migrated (0.0006s) ====================
2286== 20121018203728 UpdateEventTypeOnBuilds: migrating ==========================
2287-- execute(" UPDATE builds\n SET event_type = requests.event_type\n FROM requests\n WHERE builds.request_id = requests.id\n")
2288 -> 0.0008s
2289== 20121018203728 UpdateEventTypeOnBuilds: migrated (0.0008s) =================
2291== 20121018210156 AddIndexOnRepositoryIdAndEventTypeToBuilds: migrating =======
2292-- add_index(:builds, [:repository_id, :event_type])
2293 -> 0.0018s
2294== 20121018210156 AddIndexOnRepositoryIdAndEventTypeToBuilds: migrated (0.0019s)
2296== 20121125122700 RepositoriesAddLastBuildState: migrating ====================
2297-- add_column(:repositories, :last_build_state, :string)
2298 -> 0.0006s
2299== 20121125122700 RepositoriesAddLastBuildState: migrated (0.0006s) ===========
2301== 20121125122701 BuildsAddPreviousState: migrating ===========================
2302-- add_column(:builds, :previous_state, :string)
2303 -> 0.0005s
2304== 20121125122701 BuildsAddPreviousState: migrated (0.0006s) ==================
2306== 20121222125200 ArtifactPartsAddFinal: migrating ============================
2307-- add_column(:artifact_parts, :final, :boolean)
2308 -> 0.0046s
2309-- add_column(:artifact_parts, :created_at, :timestamp)
2310 -> 0.0010s
2311== 20121222125200 ArtifactPartsAddFinal: migrated (0.0063s) ===================
2313== 20121222125300 ArtifactPartsChangeContentToText: migrating =================
2314-- change_column(:artifact_parts, :content, :text)
2315 -> 0.0007s
2316== 20121222125300 ArtifactPartsChangeContentToText: migrated (0.0007s) ========
2318== 20121222140200 ArtifactPartsAddIndexOnArtifactId: migrating ================
2319-- add_index(:artifact_parts, :artifact_id)
2320 -> 0.0022s
2321== 20121222140200 ArtifactPartsAddIndexOnArtifactId: migrated (0.0022s) =======
2323== 20121223162300 ArtifactPartsRemoveIndexOnArtifactId: migrating =============
2324-- remove_index(:artifact_parts, :artifact_id, {:name=>"index_artifact_parts_on_artifact_id"})
2325 -> 0.0024s
2326== 20121223162300 ArtifactPartsRemoveIndexOnArtifactId: migrated (0.0036s) ====
2328== 20130107165057 AddGithubScopesToUser: migrating ============================
2329-- add_column(:users, :github_scopes, :text)
2330 -> 0.0006s
2331== 20130107165057 AddGithubScopesToUser: migrated (0.0007s) ===================
2333== 20130115125836 AddIndexOnLastSeenAtToWorkers: migrating ====================
2334-- add_index(:workers, :last_seen_at)
2335 -> 0.0020s
2336== 20130115125836 AddIndexOnLastSeenAtToWorkers: migrated (0.0020s) ===========
2338== 20130115145728 CacheFullNameInWorkers: migrating ===========================
2339-- add_column(:workers, :full_name, :string)
2340 -> 0.0006s
2341-- add_index(:workers, :full_name)
2342 -> 0.0017s
2343== 20130115145728 CacheFullNameInWorkers: migrated (0.0023s) ==================
2345== 20130125002600 ArtifactsAddArchivedAt: migrating ===========================
2346-- add_column(:artifacts, :archived_at, :timestamp, {:precision=>nil})
2347 -> 0.0006s
2348-- add_index(:artifacts, :archived_at)
2349 -> 0.0018s
2350== 20130125002600 ArtifactsAddArchivedAt: migrated (0.0024s) ==================
2352== 20130125171100 ArtifactsAddArchivingAndVerified: migrating =================
2353-- add_column(:artifacts, :archiving, :boolean)
2354 -> 0.0007s
2355-- add_column(:artifacts, :archive_verified, :boolean)
2356 -> 0.0004s
2357-- add_index(:artifacts, :archiving)
2358 -> 0.0018s
2359-- add_index(:artifacts, :archive_verified)
2360 -> 0.0018s
2361== 20130125171100 ArtifactsAddArchivingAndVerified: migrated (0.0047s) ========
2363== 20130129142703 CreateEmails: migrating =====================================
2364-- create_table(:emails, {:id=>:integer})
2365 -> 0.0044s
2366-- add_index(:emails, :user_id)
2367 -> 0.0017s
2368-- add_index(:emails, :email)
2369 -> 0.0016s
2370== 20130129142703 CreateEmails: migrated (0.0078s) ============================
2372== 20130208135800 RenameArtifacts: migrating ==================================
2373-- rename_table(:artifacts, :artifacts_backup)
2374 -> 0.0065s
2375-- rename_table(:artifact_parts, :artifact_parts_backup)
2376 -> 0.0042s
2377== 20130208135800 RenameArtifacts: migrated (0.0107s) =========================
2379== 20130208135801 DropArtifacts: migrating ====================================
2380-- drop_table(:artifacts_backup)
2381 -> 0.0015s
2382-- drop_table(:artifact_parts_backup)
2383 -> 0.0012s
2384== 20130208135801 DropArtifacts: migrated (0.0027s) ===========================
2386== 20130306154311 CreatePgcryptoExtension: migrating ==========================
2387-- execute("create extension if not exists pgcrypto")
2388 -> 0.0056s
2389== 20130306154311 CreatePgcryptoExtension: migrated (0.0056s) =================
2391== 20130311211101 AddPullRequestTitleToBuilds: migrating ======================
2392-- add_column(:builds, :pull_request_title, :text)
2393 -> 0.0009s
2394== 20130311211101 AddPullRequestTitleToBuilds: migrated (0.0009s) =============
2396== 20130327100801 AddPullRequestNumberToBuilds: migrating =====================
2397-- add_column(:builds, :pull_request_number, :integer)
2398 -> 0.0007s
2399== 20130327100801 AddPullRequestNumberToBuilds: migrated (0.0007s) ============
2401== 20130418101437 AddIndexToBuildsRequestId: migrating ========================
2402-- execute("CREATE INDEX CONCURRENTLY index_builds_on_request_id ON builds(request_id)")
2403 -> 0.0041s
2404== 20130418101437 AddIndexToBuildsRequestId: migrated (0.0042s) ===============
2406== 20130418103306 AddIndexToJobsOnOwnerIdOwnerTypeAndState: migrating =========
2407-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_id_and_owner_type_and_state ON jobs(owner_id, owner_type, state)")
2408 -> 0.0037s
2409== 20130418103306 AddIndexToJobsOnOwnerIdOwnerTypeAndState: migrated (0.0038s)
2411== 20130505023259 AddMoreIndexesToBuilds: migrating ===========================
2412-- 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")
2413 -> 0.0037s
2414== 20130505023259 AddMoreIndexesToBuilds: migrated (0.0037s) ==================
2416== 20130521115725 AddIndexOnBuildState: migrating =============================
2417-- execute(" CREATE INDEX CONCURRENTLY index_builds_on_state\n ON builds(state);\n")
2418 -> 0.0034s
2419== 20130521115725 AddIndexOnBuildState: migrated (0.0034s) ====================
2421== 20130521133050 UpdateFinishedJobs: migrating ===============================
2422-- execute("UPDATE jobs SET state = 'passed' WHERE state = 'finished' AND result = 0 AND type = 'Job::Test'")
2423 -> 0.0008s
2424-- execute("UPDATE jobs SET state = 'failed' WHERE state = 'finished' AND result = 1 AND type = 'Job::Test'")
2425 -> 0.0004s
2426-- execute("UPDATE jobs SET state = 'errored' WHERE state = 'finished' AND result IS NULL AND type = 'Job::Test'")
2427 -> 0.0004s
2428-- execute("SELECT COUNT(*) FROM jobs WHERE state = 'finished' AND type = 'Job::Test'")
2429 -> 0.0004s
2430== 20130521133050 UpdateFinishedJobs: migrated (0.0021s) ======================
2432== 20130521134224 UpdateFinishedBuilds: migrating =============================
2433-- execute("UPDATE builds SET state = 'passed' WHERE state = 'finished' AND result = 0")
2434 -> 0.0008s
2435-- execute("UPDATE builds SET state = 'failed' WHERE state = 'finished' AND result = 1")
2436 -> 0.0004s
2437-- execute("UPDATE builds SET state = 'errored' WHERE state = 'finished' AND result IS NULL")
2438 -> 0.0004s
2439-- execute("SELECT COUNT(*) FROM builds WHERE state = 'finished'")
2440 -> 0.0004s
2441== 20130521134224 UpdateFinishedBuilds: migrated (0.0021s) ====================
2443== 20130521134800 RemoveUnusedBuildColumns: migrating =========================
2444-- remove_column(:builds, :result)
2445 -> 0.0006s
2446-- remove_column(:builds, :status)
2447 -> 0.0004s
2448-- remove_column(:builds, :previous_result)
2449 -> 0.0004s
2450-- remove_column(:builds, :agent)
2451 -> 0.0004s
2452-- remove_column(:builds, :language)
2453 -> 0.0004s
2454-- remove_column(:builds, :archived_at)
2455 -> 0.0004s
2456== 20130521134800 RemoveUnusedBuildColumns: migrated (0.0027s) ================
2458== 20130521141357 RemoveUnusedJobColumns: migrating ===========================
2459-- remove_column(:jobs, :status)
2460 -> 0.0008s
2461-- remove_column(:jobs, :job_id)
2462 -> 0.0005s
2463-- remove_column(:jobs, :retries)
2464 -> 0.0005s
2465== 20130521141357 RemoveUnusedJobColumns: migrated (0.0019s) ==================
2467== 20130618084205 AddCoupons: migrating =======================================
2468-- create_table(:coupons, {:id=>:integer})
2469 -> 0.0132s
2470== 20130618084205 AddCoupons: migrated (0.0133s) ==============================
2472== 20130629122945 AddGithubIdToUsers: migrating ===============================
2473-- add_column(:repositories, :github_id, :integer)
2474 -> 0.0007s
2475-- add_index(:repositories, :github_id)
2476 -> 0.0017s
2477== 20130629122945 AddGithubIdToUsers: migrated (0.0025s) ======================
2479== 20130629133531 AddDefaultBranchToRepositories: migrating ===================
2480-- add_column(:repositories, :default_branch, :string)
2481 -> 0.0006s
2482== 20130629133531 AddDefaultBranchToRepositories: migrated (0.0007s) ==========
2484== 20130629174449 AddGithubLanguageToRepositories: migrating ==================
2485-- add_column(:repositories, :github_language, :string)
2486 -> 0.0006s
2487== 20130629174449 AddGithubLanguageToRepositories: migrated (0.0006s) =========
2489== 20130701175200 AddContactIdToSubscriptions: migrating ======================
2490-- change_table(:subscriptions)
2491 -> 0.0006s
2492== 20130701175200 AddContactIdToSubscriptions: migrated (0.0007s) =============
2494== 20130702123456 RemoveUnusedRepositoryColumns: migrating ====================
2495-- remove_column(:repositories, :last_duration)
2496 -> 0.0007s
2497-- remove_column(:repositories, :last_build_status)
2498 -> 0.0004s
2499-- remove_column(:repositories, :last_build_result)
2500 -> 0.0005s
2501-- remove_column(:repositories, :last_build_language)
2502 -> 0.0004s
2503== 20130702123456 RemoveUnusedRepositoryColumns: migrated (0.0021s) ===========
2505== 20130702144325 AddUniqueIndexOnUsersGithubIdAndRemoveUniqueIndexOnUsersLogin: migrating
2506-- execute("DROP INDEX index_users_on_login")
2507 -> 0.0011s
2508-- execute("CREATE INDEX CONCURRENTLY index_users_on_login ON users(login)")
2509 -> 0.0034s
2510-- execute("DROP INDEX index_users_on_github_id")
2511 -> 0.0010s
2512-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_github_id ON users(github_id)")
2513 -> 0.0034s
2514== 20130702144325 AddUniqueIndexOnUsersGithubIdAndRemoveUniqueIndexOnUsersLogin: migrated (0.0090s)
2516== 20130705123456 AddExtraColumnsToOrganizations: migrating ===================
2517-- add_column(:organizations, :avatar_url, :string)
2518 -> 0.0006s
2519-- add_column(:organizations, :location, :string)
2520 -> 0.0004s
2521-- add_column(:organizations, :email, :string)
2522 -> 0.0004s
2523-- add_column(:organizations, :company, :string)
2524 -> 0.0004s
2525-- add_column(:organizations, :homepage, :string)
2526 -> 0.0004s
2527== 20130705123456 AddExtraColumnsToOrganizations: migrated (0.0024s) ==========
2529== 20130707164854 AddIndexOnGithubIdToOrganizations: migrating ================
2530-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organizations_on_github_id ON organizations(github_id)")
2531 -> 0.0032s
2532== 20130707164854 AddIndexOnGithubIdToOrganizations: migrated (0.0032s) =======
2534== 20130709185200 CreateAnnotations: migrating ================================
2535-- create_table(:annotations, {:id=>:integer})
2536 -> 0.0050s
2537== 20130709185200 CreateAnnotations: migrated (0.0051s) =======================
2539== 20130709233500 CreateAnnotationProviders: migrating ========================
2540-- create_table(:annotation_providers, {:id=>:integer})
2541 -> 0.0054s
2542== 20130709233500 CreateAnnotationProviders: migrated (0.0054s) ===============
2544== 20130710000745 AddAnnotationProviderIdToAnnotations: migrating =============
2545-- add_column(:annotations, :annotation_provider_id, :integer, {:null=>false})
2546 -> 0.0007s
2547== 20130710000745 AddAnnotationProviderIdToAnnotations: migrated (0.0007s) ====
2549== 20130726101124 AddCanceledAtToJobsAndBuilds: migrating =====================
2550-- add_column(:builds, :canceled_at, :timestamp, {:precision=>nil})
2551 -> 0.0007s
2552-- add_column(:jobs, :canceled_at, :timestamp, {:precision=>nil})
2553 -> 0.0005s
2554== 20130726101124 AddCanceledAtToJobsAndBuilds: migrated (0.0012s) ============
2556== 20130901183019 AddIndexOnRepositoryGithubId: migrating =====================
2557-- execute("DROP INDEX index_repositories_on_github_id")
2558 -> 0.0011s
2559-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_github_id ON repositories(github_id)")
2560 -> 0.0035s
2561== 20130901183019 AddIndexOnRepositoryGithubId: migrated (0.0047s) ============
2563== 20130909203321 AddCachedMatrixIdsToBuilds: migrating =======================
2564-- execute("ALTER TABLE builds ADD COLUMN cached_matrix_ids integer[]")
2565 -> 0.0006s
2566== 20130909203321 AddCachedMatrixIdsToBuilds: migrated (0.0007s) ==============
2568== 20130910184823 CreateIndexOnBuildsIdDescAndRepositoryIdAndEventType: migrating
2569-- execute("CREATE INDEX CONCURRENTLY index_builds_on_id_repository_id_and_event_type_desc ON builds (id DESC, repository_id, event_type);")
2570 -> 0.0036s
2571== 20130910184823 CreateIndexOnBuildsIdDescAndRepositoryIdAndEventType: migrated (0.0036s)
2573== 20130916101056 AddUniqueIndexOnRepositoryGithubId: migrating ===============
2574-- execute("DROP INDEX index_repositories_on_github_id")
2575 -> 0.0010s
2576-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_repositories_on_github_id ON repositories(github_id)")
2577 -> 0.0035s
2578== 20130916101056 AddUniqueIndexOnRepositoryGithubId: migrated (0.0046s) ======
2580== 20130920135744 AddSettingsToRepositories: migrating ========================
2581-- add_column(:repositories, :settings, :json)
2582 -> 0.0007s
2583== 20130920135744 AddSettingsToRepositories: migrated (0.0007s) ===============
2585== 20131104101056 RemoveWorkersTableAndIndexes: migrating =====================
2586-- drop_table(:workers)
2587 -> 0.0014s
2588== 20131104101056 RemoveWorkersTableAndIndexes: migrated (0.0014s) ============
2590== 20131109101056 RemoveEventsTable: migrating ================================
2591-- drop_table(:events)
2592 -> 0.0012s
2593== 20131109101056 RemoveEventsTable: migrated (0.0012s) =======================
2595== 20140120225125 RemoveAnnotationImageInfo: migrating ========================
2596-- remove_column(:annotations, :image_url)
2597 -> 0.0007s
2598-- remove_column(:annotations, :image_alt)
2599 -> 0.0005s
2600== 20140120225125 RemoveAnnotationImageInfo: migrated (0.0012s) ===============
2602== 20140121003026 AddStatusToAnnotations: migrating ===========================
2603-- add_column(:annotations, :status, :string)
2604 -> 0.0006s
2605== 20140121003026 AddStatusToAnnotations: migrated (0.0007s) ==================
2607== 20140204220926 AddIndicesToRequests: migrating =============================
2608-- execute("CREATE INDEX CONCURRENTLY index_requests_on_repository_id ON requests(repository_id)")
2609 -> 0.0033s
2610-- execute("CREATE INDEX CONCURRENTLY index_requests_on_commit_id ON requests(commit_id)")
2611 -> 0.0033s
2612== 20140204220926 AddIndicesToRequests: migrated (0.0066s) ====================
2614== 20140210003014 AddIndicesToMemberships: migrating ==========================
2615-- execute("CREATE INDEX CONCURRENTLY index_memberships_on_user_id ON memberships(user_id)")
2616 -> 0.0032s
2617== 20140210003014 AddIndicesToMemberships: migrated (0.0032s) =================
2619== 20140210012509 RemoveUnusedIndices: migrating ==============================
2620-- execute("DROP INDEX CONCURRENTLY index_commits_on_commit")
2621 -> 0.0020s
2622-- execute("DROP INDEX CONCURRENTLY index_builds_on_state")
2623 -> 0.0020s
2624-- execute("DROP INDEX CONCURRENTLY index_commits_on_branch")
2625 -> 0.0019s
2626-- execute("DROP INDEX CONCURRENTLY index_users_on_github_oauth_token")
2627 -> 0.0019s
2628-- execute("DROP INDEX CONCURRENTLY index_builds_on_finished_at")
2629 -> 0.0023s
2630-- execute("DROP INDEX CONCURRENTLY index_jobs_on_queue_and_state")
2631 -> 0.0020s
2632-- execute("DROP INDEX CONCURRENTLY index_jobs_on_created_at")
2633 -> 0.0019s
2634== 20140210012509 RemoveUnusedIndices: migrated (0.0144s) =====================
2636== 20140612131826 AddRemovedInfoToLogs: migrating =============================
2637== 20140612131826 AddRemovedInfoToLogs: migrated (0.0008s) ====================
2639== 20140827121945 AddEducationFieldToUser: migrating ==========================
2640-- add_column(:users, :education, :boolean)
2641 -> 0.0007s
2642== 20140827121945 AddEducationFieldToUser: migrated (0.0007s) =================
2644== 20150121135400 JobsAddReceivedAt: migrating ================================
2645-- add_column(:jobs, :received_at, :timestamp, {:precision=>nil})
2646 -> 0.0007s
2647== 20150121135400 JobsAddReceivedAt: migrated (0.0007s) =======================
2649== 20150121135401 BuildsAddReceivedAt: migrating ==============================
2650-- add_column(:builds, :received_at, :timestamp, {:precision=>nil})
2651 -> 0.0007s
2652== 20150121135401 BuildsAddReceivedAt: migrated (0.0007s) =====================
2654== 20150204144312 AddIndexOnRepositoryIdToCommits: migrating ==================
2655-- execute("DROP INDEX IF EXISTS index_commits_on_repository_id")
2656 -> 0.0003s
2657-- execute("CREATE INDEX CONCURRENTLY index_commits_on_repository_id ON commits(repository_id)")
2658 -> 0.0034s
2659== 20150204144312 AddIndexOnRepositoryIdToCommits: migrated (0.0037s) =========
2661== 20150210170900 IndexRequestsOnCreatedAt: migrating =========================
2662-- execute("DROP INDEX IF EXISTS index_requests_on_created_at")
2663 -> 0.0002s
2664-- execute("CREATE INDEX CONCURRENTLY index_requests_on_created_at ON requests(created_at)")
2665 -> 0.0032s
2666== 20150210170900 IndexRequestsOnCreatedAt: migrated (0.0035s) ================
2668== 20150223125700 CreateBranches: migrating ===================================
2669-- create_table(:branches, {:id=>:integer})
2670 -> 0.0151s
2671-- add_index(:branches, [:repository_id, :name], {:unique=>true})
2672 -> 0.0018s
2673== 20150223125700 CreateBranches: migrated (0.0170s) ==========================
2675== 20150311020321 AddNextBuildNumberToRepository: migrating ===================
2676-- add_column(:repositories, :next_build_number, :integer)
2677 -> 0.0007s
2678== 20150311020321 AddNextBuildNumberToRepository: migrated (0.0007s) ==========
2680== 20150316020321 AddActiveIndexToRepository: migrating =======================
2681-- execute("DROP INDEX IF EXISTS index_repositories_on_active")
2682 -> 0.0002s
2683-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_active ON repositories(active)")
2684 -> 0.0033s
2685== 20150316020321 AddActiveIndexToRepository: migrated (0.0036s) ==============
2687== 20150316080321 AddOwnerTypeAndOwnerIdIndexesToBuilds: migrating ============
2688-- execute("DROP INDEX IF EXISTS index_builds_on_owner_type")
2689 -> 0.0003s
2690-- execute("DROP INDEX IF EXISTS index_builds_on_owner_id")
2691 -> 0.0003s
2692-- execute("CREATE INDEX CONCURRENTLY index_builds_on_owner_type ON builds(owner_type)")
2693 -> 0.0035s
2694-- execute("CREATE INDEX CONCURRENTLY index_builds_on_owner_id ON builds(owner_id)")
2695 -> 0.0030s
2696== 20150316080321 AddOwnerTypeAndOwnerIdIndexesToBuilds: migrated (0.0071s) ===
2698== 20150316100321 AddOwnerTypeAndOwnerIdIndexesToRepositories: migrating ======
2699-- execute("DROP INDEX IF EXISTS index_repositories_on_owner_type")
2700 -> 0.0002s
2701-- execute("DROP INDEX IF EXISTS index_repositories_on_owner_id")
2702 -> 0.0002s
2703-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_type ON repositories(owner_type)")
2704 -> 0.0031s
2705-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_id ON repositories(owner_id)")
2706 -> 0.0031s
2707== 20150316100321 AddOwnerTypeAndOwnerIdIndexesToRepositories: migrated (0.0066s)
2709== 20150317004600 AddSlugIndexToRepositories: migrating =======================
2710-- execute("CREATE EXTENSION IF NOT EXISTS pg_trgm")
2711 -> 0.0082s
2712-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_slug ON repositories USING gin((owner_name || '/' || name) gin_trgm_ops)")
2713 -> 0.0025s
2714== 20150317004600 AddSlugIndexToRepositories: migrated (0.0108s) ==============
2716== 20150317020321 AddTokenIndexToTokens: migrating ============================
2717-- execute("DROP INDEX IF EXISTS index_tokens_on_token")
2718 -> 0.0003s
2719-- execute("CREATE INDEX CONCURRENTLY index_tokens_on_token ON tokens(token)")
2720 -> 0.0071s
2721== 20150317020321 AddTokenIndexToTokens: migrated (0.0074s) ===================
2723== 20150317080321 AddLoginIndexToOrganizations: migrating =====================
2724-- execute("DROP INDEX IF EXISTS index_organizations_on_login")
2725 -> 0.0002s
2726-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_login ON organizations(login)")
2727 -> 0.0046s
2728== 20150317080321 AddLoginIndexToOrganizations: migrated (0.0048s) ============
2730== 20150414001337 AddLowerCaseIndices: migrating ==============================
2731-- execute("DROP INDEX IF EXISTS index_organizations_on_lower_login")
2732 -> 0.0003s
2733-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_lower_login ON organizations USING btree(lower(login))")
2734 -> 0.0037s
2735-- execute("DROP INDEX IF EXISTS index_users_on_lower_login")
2736 -> 0.0003s
2737-- execute("CREATE INDEX CONCURRENTLY index_users_on_lower_login ON users USING btree(lower(login))")
2738 -> 0.0037s
2739-- execute("DROP INDEX IF EXISTS index_repositories_on_lower_name")
2740 -> 0.0003s
2741-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_name ON repositories USING btree(lower(name))")
2742 -> 0.0034s
2743-- execute("DROP INDEX IF EXISTS index_repositories_on_lower_owner_name")
2744 -> 0.0002s
2745-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_owner_name ON repositories USING btree(lower(owner_name))")
2746 -> 0.0033s
2747== 20150414001337 AddLowerCaseIndices: migrated (0.0153s) =====================
2749== 20150528101600 RepositoriesAddIndexOwnerName: migrating ====================
2750-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_name ON repositories(owner_name)")
2751 -> 0.0033s
2752== 20150528101600 RepositoriesAddIndexOwnerName: migrated (0.0033s) ===========
2754== 20150528101601 RepositoriesAddIndexName: migrating =========================
2755-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_name ON repositories(name)")
2756 -> 0.0032s
2757== 20150528101601 RepositoriesAddIndexName: migrated (0.0032s) ================
2759== 20150528101602 RepositoriesDropIndexOwnerNameName: migrating ===============
2760-- execute("DROP INDEX CONCURRENTLY index_repositories_on_owner_name_and_name")
2761 -> 0.0019s
2762== 20150528101602 RepositoriesDropIndexOwnerNameName: migrated (0.0019s) ======
2764== 20150528101603 BuildsAddIndexEventType: migrating ==========================
2765-- execute("CREATE INDEX CONCURRENTLY index_builds_on_event_type ON builds (event_type)")
2766 -> 0.0029s
2767== 20150528101603 BuildsAddIndexEventType: migrated (0.0029s) =================
2769== 20150528101604 BuildsAddIndexRepositoryId: migrating =======================
2770-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id ON builds (repository_id)")
2771 -> 0.0030s
2772== 20150528101604 BuildsAddIndexRepositoryId: migrated (0.0031s) ==============
2774== 20150528101605 BuildsAddIndexState: migrating ==============================
2775-- execute("CREATE INDEX CONCURRENTLY index_builds_on_state ON builds (state)")
2776 -> 0.0032s
2777== 20150528101605 BuildsAddIndexState: migrated (0.0033s) =====================
2779== 20150528101607 BuildsAddIndexBranch: migrating =============================
2780-- execute("CREATE INDEX CONCURRENTLY index_builds_on_branch ON builds (branch)")
2781 -> 0.0028s
2782== 20150528101607 BuildsAddIndexBranch: migrated (0.0028s) ====================
2784== 20150528101608 BuildsDropIndexRepositoryIdAndState: migrating ==============
2785-- execute("DROP INDEX CONCURRENTLY index_builds_on_repository_id_and_state")
2786 -> 0.0020s
2787== 20150528101608 BuildsDropIndexRepositoryIdAndState: migrated (0.0020s) =====
2789== 20150528101609 BuildsDropIndexRepositoryIdAndEventType: migrating ==========
2790-- execute("DROP INDEX CONCURRENTLY index_builds_on_repository_id_and_event_type")
2791 -> 0.0021s
2792== 20150528101609 BuildsDropIndexRepositoryIdAndEventType: migrated (0.0022s) =
2794== 20150528101610 BuildsDropIndexIdRepositoryIdAndEventTypeDesc: migrating ====
2795-- execute("DROP INDEX CONCURRENTLY index_builds_on_id_repository_id_and_event_type_desc")
2796 -> 0.0026s
2797== 20150528101610 BuildsDropIndexIdRepositoryIdAndEventTypeDesc: migrated (0.0026s)
2799== 20150528101611 BuildsDropIndexRepositoryIdAndEventTypeAndStateAndBranch: migrating
2800-- execute("DROP INDEX CONCURRENTLY index_builds_on_repository_id_and_event_type_and_state_and_bran")
2801 -> 0.0016s
2802== 20150528101611 BuildsDropIndexRepositoryIdAndEventTypeAndStateAndBranch: migrated (0.0016s)
2804== 20150609175200 AddCancelationColumnsToSubscriptions: migrating =============
2805-- change_table(:subscriptions)
2806 -> 0.0011s
2807== 20150609175200 AddCancelationColumnsToSubscriptions: migrated (0.0011s) ====
2809== 20150610143500 JobsAddIndexOwnerId: migrating ==============================
2810-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_id ON jobs (owner_id)")
2811 -> 0.0035s
2812== 20150610143500 JobsAddIndexOwnerId: migrated (0.0035s) =====================
2814== 20150610143501 JobsAddIndexOwnerType: migrating ============================
2815-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_type ON jobs (owner_type)")
2816 -> 0.0031s
2817== 20150610143501 JobsAddIndexOwnerType: migrated (0.0032s) ===================
2819== 20150610143502 JobsAddIndexSourceId: migrating =============================
2820-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_source_id ON jobs (source_id)")
2821 -> 0.0029s
2822== 20150610143502 JobsAddIndexSourceId: migrated (0.0029s) ====================
2824== 20150610143503 JobsAddIndexSourceType: migrating ===========================
2825-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_source_type ON jobs (source_type)")
2826 -> 0.0031s
2827== 20150610143503 JobsAddIndexSourceType: migrated (0.0031s) ==================
2829== 20150610143504 JobsAddIndexType: migrating =================================
2830-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_type ON jobs (type)")
2831 -> 0.0032s
2832== 20150610143504 JobsAddIndexType: migrated (0.0032s) ========================
2834== 20150610143505 JobsDropIndexOwnerIdAndOwnerTypeAndState: migrating =========
2835-- execute("DROP INDEX CONCURRENTLY index_jobs_on_owner_id_and_owner_type_and_state")
2836 -> 0.0019s
2837== 20150610143505 JobsDropIndexOwnerIdAndOwnerTypeAndState: migrated (0.0020s)
2839== 20150610143506 JobsDropIndexStateOwnerTypeOwnerId: migrating ===============
2840-- execute("DROP INDEX CONCURRENTLY index_jobs_on_state_owner_type_owner_id")
2841 -> 0.0018s
2842== 20150610143506 JobsDropIndexStateOwnerTypeOwnerId: migrated (0.0019s) ======
2844== 20150610143507 JobsDropIndexTypeAndSourceIdAndSourceType: migrating ========
2845-- 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"})
2846 -> 0.0055s
2847== 20150610143507 JobsDropIndexTypeAndSourceIdAndSourceType: migrated (0.0056s)
2849== 20150610143508 JobsAddIndexState: migrating ================================
2850-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_state ON jobs (state)")
2851 -> 0.0035s
2852== 20150610143508 JobsAddIndexState: migrated (0.0036s) =======================
2854== 20150610143509 JobsAddIndexQueue: migrating ================================
2855-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_queue ON jobs (queue)")
2856 -> 0.0033s
2857== 20150610143509 JobsAddIndexQueue: migrated (0.0034s) =======================
2859== 20150610143510 TokensAddIndexUserId: migrating =============================
2860-- execute("CREATE INDEX CONCURRENTLY index_tokens_on_user_id ON tokens (user_id)")
2861 -> 0.0033s
2862== 20150610143510 TokensAddIndexUserId: migrated (0.0034s) ====================
2864== 20150615103059 AddStatusToSubscriptions: migrating =========================
2865-- add_column(:subscriptions, :status, :string)
2866 -> 0.0008s
2867== 20150615103059 AddStatusToSubscriptions: migrated (0.0009s) ================
2869== 20150629231300 ReposAddInvalidatedAt: migrating ============================
2870-- add_column(:repositories, :invalidated_at, :timestamp, {:precision=>nil})
2871 -> 0.0010s
2872== 20150629231300 ReposAddInvalidatedAt: migrated (0.0010s) ===================
2874== 20150923131400 BroadcastsAddCategory: migrating ============================
2875-- add_column(:broadcasts, :category, :string)
2876 -> 0.0009s
2877== 20150923131400 BroadcastsAddCategory: migrated (0.0010s) ===================
2879== 20151112153500 CreateStars: migrating ======================================
2880-- create_table(:stars, {:id=>:integer})
2881 -> 0.0042s
2882-- add_index(:stars, :user_id)
2883 -> 0.0020s
2884== 20151112153500 CreateStars: migrated (0.0064s) =============================
2886== 20151113111400 StarsAddIndexUserIdAndRepositoryId: migrating ===============
2887-- execute("CREATE UNIQUE INDEX index_stars_on_user_id_and_repository_id ON stars (user_id, repository_id)")
2888 -> 0.0025s
2889== 20151113111400 StarsAddIndexUserIdAndRepositoryId: migrated (0.0026s) ======
2891== 20151127153500 UsersAddIndexGithubOauthToken: migrating ====================
2892-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_github_oauth_token ON users (github_oauth_token)")
2893 -> 0.0036s
2894== 20151127153500 UsersAddIndexGithubOauthToken: migrated (0.0036s) ===========
2896== 20151127154200 AnnotationsAddIndexJobId: migrating =========================
2897-- execute("CREATE INDEX CONCURRENTLY index_annotations_on_job_id ON annotations (job_id)")
2898 -> 0.0037s
2899== 20151127154200 AnnotationsAddIndexJobId: migrated (0.0037s) ================
2901== 20151127154600 BroadcastsAddIndexRecipientIdAndRecipientType: migrating ====
2902-- execute("CREATE INDEX CONCURRENTLY index_broadcasts_on_recipient_id_and_recipient_type ON broadcasts (recipient_id, recipient_type)")
2903 -> 0.0036s
2904== 20151127154600 BroadcastsAddIndexRecipientIdAndRecipientType: migrated (0.0036s)
2906== 20151202122200 UsersAddFirstLoggedInAt: migrating ==========================
2907-- add_column(:users, :first_logged_in_at, :timestamp, {:precision=>nil})
2908 -> 0.0010s
2909== 20151202122200 UsersAddFirstLoggedInAt: migrated (0.0011s) =================
2911== 20160107120927 AddCronTable: migrating =====================================
2912-- create_table(:crons, {:id=>:integer})
2913 -> 0.0065s
2914== 20160107120927 AddCronTable: migrated (0.0066s) ============================
2916== 20160303165750 AddDebugOptionsToJobs: migrating ============================
2917-- add_column(:jobs, :debug_options, :text)
2918 -> 0.0010s
2919== 20160303165750 AddDebugOptionsToJobs: migrated (0.0011s) ===================
2921== 20160412113020 BuildsDropIndexOwnerType: migrating =========================
2922-- execute("DROP INDEX CONCURRENTLY index_builds_on_owner_type")
2923 -> 0.0021s
2924== 20160412113020 BuildsDropIndexOwnerType: migrated (0.0022s) ================
2926== 20160412113070 RepositoriesDropIndexLastBuildStartedAt: migrating ==========
2927-- execute("DROP INDEX CONCURRENTLY index_repositories_on_last_build_started_at")
2928 -> 0.0023s
2929== 20160412113070 RepositoriesDropIndexLastBuildStartedAt: migrated (0.0024s) =
2931== 20160412121405 JobsDropIndexType: migrating ================================
2932-- execute("DROP INDEX CONCURRENTLY index_jobs_on_type")
2933 -> 0.0020s
2934== 20160412121405 JobsDropIndexType: migrated (0.0021s) =======================
2936== 20160412123900 JobsDropIndexSourceType: migrating ==========================
2937-- execute("DROP INDEX CONCURRENTLY index_jobs_on_source_type")
2938 -> 0.0018s
2939== 20160412123900 JobsDropIndexSourceType: migrated (0.0018s) =================
2941== 20160414214442 JobsAddIndexQueuedAt: migrating =============================
2942-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_queued_at ON jobs (queued_at)")
2943 -> 0.0037s
2944== 20160414214442 JobsAddIndexQueuedAt: migrated (0.0037s) ====================
2946== 20160422104300 BuildsAddIndexNumber: migrating =============================
2947-- execute("CREATE INDEX CONCURRENTLY index_builds_on_number ON builds (number)")
2948 -> 0.0033s
2949== 20160422104300 BuildsAddIndexNumber: migrated (0.0033s) ====================
2951== 20160422121400 BuildsAddIndexRepositoryIdAndNumberAndEventType: migrating ==
2952-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_number_and_event_type ON builds (repository_id, number, event_type)")
2953 -> 0.0036s
2954== 20160422121400 BuildsAddIndexRepositoryIdAndNumberAndEventType: migrated (0.0037s)
2956== 20160510142700 JobsAddIndexCreatedAt: migrating ============================
2957-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_created_at ON jobs (created_at)")
2958 -> 0.0032s
2959== 20160510142700 JobsAddIndexCreatedAt: migrated (0.0033s) ===================
2961== 20160510144200 BuildsAddPrivate: migrating =================================
2962-- change_table(:builds)
2963 -> 0.0007s
2964== 20160510144200 BuildsAddPrivate: migrated (0.0007s) ========================
2966== 20160510150300 JobsAddPrivate: migrating ===================================
2967-- change_table(:jobs)
2968 -> 0.0007s
2969== 20160510150300 JobsAddPrivate: migrated (0.0007s) ==========================
2971== 20160510150400 RequestsAddPrivate: migrating ===============================
2972-- change_table(:requests)
2973 -> 0.0006s
2974== 20160510150400 RequestsAddPrivate: migrated (0.0006s) ======================
2976== 20160513074300 AddCurrentBuildIdToRepositories: migrating ==================
2977-- add_column(:repositories, :current_build_id, :bigint)
2978 -> 0.0006s
2979-- execute("ALTER TABLE repositories ADD CONSTRAINT fk_repositories_current_build_id FOREIGN KEY (current_build_id) REFERENCES builds (id);")
2980 -> 0.0014s
2981== 20160513074300 AddCurrentBuildIdToRepositories: migrated (0.0021s) =========
2983== 20160609163600 PermissionsAddIndexUserIdAndRepositoryId: migrating =========
2984-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_permissions_on_user_id_and_repository_id ON permissions (user_id, repository_id)")
2985 -> 0.0033s
2986== 20160609163600 PermissionsAddIndexUserIdAndRepositoryId: migrated (0.0033s)
2988== 20160623133900 CreatePreviousJobStates: migrating ==========================
2989-- create_table(:previous_job_states, {:id=>:integer})
2990 -> 0.0047s
2991-- add_column(:jobs, :previous_job_state_id, :bigint)
2992 -> 0.0004s
2993== 20160623133900 CreatePreviousJobStates: migrated (0.0052s) =================
2995== 20160623133901 AddPreviousStatesTriggers: migrating ========================
2996-- 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")
2997 -> 0.0048s
2998== 20160623133901 AddPreviousStatesTriggers: migrated (0.0049s) ===============
3000== 20160712125400 RevertPreviousJobStates: migrating ==========================
3001-- 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")
3002 -> 0.0007s
3003-- remove_column(:jobs, :previous_job_state_id)
3004 -> 0.0004s
3005-- drop_table(:previous_job_states)
3006 -> 0.0007s
3007== 20160712125400 RevertPreviousJobStates: migrated (0.0020s) =================
3009== 20160819103700 AddAvatarUrlToUsers: migrating ==============================
3010-- add_column(:users, :avatar_url, :string)
3011 -> 0.0007s
3012== 20160819103700 AddAvatarUrlToUsers: migrated (0.0008s) =====================
3014== 20160920220400 AddRoleToMemberships: migrating =============================
3015-- add_column(:memberships, :role, :string)
3016 -> 0.0031s
3017== 20160920220400 AddRoleToMemberships: migrated (0.0033s) ====================
3019== 20161028154600 RemoveTypeIndices: migrating ================================
3020-- execute("DROP INDEX CONCURRENTLY IF EXISTS index_requests_on_event_type")
3021 -> 0.0007s
3022-- execute("DROP INDEX CONCURRENTLY IF EXISTS index_jobs_on_owner_type")
3023 -> 0.0023s
3024== 20161028154600 RemoveTypeIndices: migrated (0.0032s) =======================
3026== 20161101000000 AddNextRunLastRunToCrons: migrating =========================
3027-- column_exists?(:crons, :next_run)
3028 -> 0.0040s
3029-- add_column(:crons, :next_run, :timestamp, {:precision=>nil})
3030 -> 0.0011s
3031-- column_exists?(:crons, :last_run)
3032 -> 0.0030s
3033-- add_column(:crons, :last_run, :timestamp, {:precision=>nil})
3034 -> 0.0011s
3035== 20161101000000 AddNextRunLastRunToCrons: migrated (0.0098s) ================
3037== 20161101000001 AddDontRunIfRecentBuildExists: migrating ====================
3038-- column_exists?(:crons, :dont_run_if_recent_build_exists)
3039 -> 0.0037s
3040-- add_column(:crons, :dont_run_if_recent_build_exists, :boolean, {:default=>false})
3041 -> 0.0016s
3042== 20161101000001 AddDontRunIfRecentBuildExists: migrated (0.0055s) ===========
3044== 20161201112200 CreateBetaFeatures: migrating ===============================
3045-- create_table(:beta_features, {:id=>:integer})
3046 -> 0.0074s
3047== 20161201112200 CreateBetaFeatures: migrated (0.0078s) ======================
3049== 20161201112600 CreateUserBetaFeatures: migrating ===========================
3050-- create_table(:user_beta_features, {:id=>:integer})
3051 -> 0.0046s
3052-- add_index(:user_beta_features, [:user_id, :beta_feature_id])
3053 -> 0.0022s
3054== 20161201112600 CreateUserBetaFeatures: migrated (0.0070s) ==================
3056== 20161202000000 RemoveDisableByBuildFromCrons: migrating ====================
3057-- remove_column(:crons, :disable_by_build)
3058 -> 0.0016s
3059== 20161202000000 RemoveDisableByBuildFromCrons: migrated (0.0019s) ===========
3061== 20161206155800 AddBillingAdminOnlyToOrganizations: migrating ===============
3062-- add_column(:organizations, :billing_admin_only, :boolean)
3063 -> 0.0017s
3064== 20161206155800 AddBillingAdminOnlyToOrganizations: migrated (0.0018s) ======
3066== 20161221171300 BuildsAddIndexRepositoryIdAndNumber: migrating ==============
3067-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_number ON builds(repository_id, (number::integer))")
3068 -> 0.0035s
3069== 20161221171300 BuildsAddIndexRepositoryIdAndNumber: migrated (0.0036s) =====
3071== 20170211000000 JobsAddStageNumber: migrating ===============================
3072-- add_column(:jobs, :stage_number, :string)
3073 -> 0.0006s
3074== 20170211000000 JobsAddStageNumber: migrated (0.0006s) ======================
3076== 20170211000001 JobsAddStageId: migrating ===================================
3077-- change_table(:jobs)
3078 -> 0.0006s
3079== 20170211000001 JobsAddStageId: migrated (0.0006s) ==========================
3081== 20170211000002 StagesCreate: migrating =====================================
3082-- create_table(:stages, {:id=>:integer})
3083 -> 0.0044s
3084== 20170211000002 StagesCreate: migrated (0.0044s) ============================
3086== 20170211000003 StagesAddStateAndTimestamps: migrating ======================
3087-- change_table(:stages)
3088 -> 0.0013s
3089== 20170211000003 StagesAddStateAndTimestamps: migrated (0.0013s) =============
3091== 20170213124000 AddConstraintForOwnerIdToSubscriptions: migrating ===========
3092-- execute("CREATE UNIQUE INDEX subscriptions_owner ON subscriptions (owner_id, owner_type) WHERE (status = 'subscribed');")
3093 -> 0.0021s
3094== 20170213124000 AddConstraintForOwnerIdToSubscriptions: migrated (0.0021s) ==
3096== 20170316000000 QueueableJobsCreate: migrating ==============================
3097-- create_table(:queueable_jobs, {:id=>:integer})
3098 -> 0.0024s
3099== 20170316000000 QueueableJobsCreate: migrated (0.0024s) =====================
3101== 20170316000001 QueueableJobsIndexJobId: migrating ==========================
3102-- add_index(:queueable_jobs, :job_id, {:algorithm=>:concurrently})
3103 -> 0.0031s
3104== 20170316000001 QueueableJobsIndexJobId: migrated (0.0031s) =================
3106== 20170318000000 PullRequestsCreate: migrating ===============================
3107-- create_table(:pull_requests, {:id=>:integer})
3108 -> 0.0041s
3109== 20170318000000 PullRequestsCreate: migrated (0.0042s) ======================
3111== 20170318000001 RequestsAddPullRequestId: migrating =========================
3112-- change_table(:requests)
3113 -> 0.0006s
3114== 20170318000001 RequestsAddPullRequestId: migrated (0.0006s) ================
3116== 20170318000002 BuildsAddPullRequestId: migrating ===========================
3117-- change_table(:builds)
3118 -> 0.0006s
3119== 20170318000002 BuildsAddPullRequestId: migrated (0.0008s) ==================
3121== 20170322000000 AddIndexOnRequestsRepositoryIdAndIdDesc: migrating ==========
3122-- execute("CREATE INDEX CONCURRENTLY index_requests_on_repository_id_and_id_desc ON requests (repository_id, id DESC);")
3123 -> 0.0031s
3124== 20170322000000 AddIndexOnRequestsRepositoryIdAndIdDesc: migrated (0.0031s) =
3126== 20170331000000 AddIndexRepositoryIdOnPullRequests: migrating ===============
3127-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_pull_requests_on_repository_id_and_number ON pull_requests (repository_id, (number::integer));")
3128 -> 0.0031s
3129== 20170331000000 AddIndexRepositoryIdOnPullRequests: migrated (0.0031s) ======
3131== 20170401000000 OwnerGroupsCreate: migrating ================================
3132-- create_table(:owner_groups, {:id=>:integer})
3133 -> 0.0039s
3134== 20170401000000 OwnerGroupsCreate: migrated (0.0040s) =======================
3136== 20170401000001 OwnerGroupsIndexOwnerIdOwnerType: migrating =================
3137-- execute("CREATE INDEX CONCURRENTLY index_owner_groups_on_owner_type_and_owner_id ON owner_groups (owner_type, owner_id);")
3138 -> 0.0029s
3139== 20170401000001 OwnerGroupsIndexOwnerIdOwnerType: migrated (0.0029s) ========
3141== 20170401000002 OwnerGroupsIndexUuid: migrating =============================
3142-- execute("CREATE INDEX CONCURRENTLY index_owner_groups_on_uuid ON owner_groups (uuid);")
3143 -> 0.0029s
3144== 20170401000002 OwnerGroupsIndexUuid: migrated (0.0029s) ====================
3146== 20170405000000 TagsCreate: migrating =======================================
3147-- create_table(:tags, {:id=>:integer})
3148 -> 0.0044s
3149== 20170405000000 TagsCreate: migrated (0.0044s) ==============================
3151== 20170405000001 RequestsAddBranchIdAndTagId: migrating ======================
3152-- change_table(:requests)
3153 -> 0.0099s
3154== 20170405000001 RequestsAddBranchIdAndTagId: migrated (0.0109s) =============
3156== 20170405000002 CommitsAddBranchIdAndTagId: migrating =======================
3157-- change_table(:commits)
3158 -> 0.0027s
3159== 20170405000002 CommitsAddBranchIdAndTagId: migrated (0.0028s) ==============
3161== 20170405000003 BuildsAddBranchIdAndTagId: migrating ========================
3162-- change_table(:builds)
3163 -> 0.0029s
3164== 20170405000003 BuildsAddBranchIdAndTagId: migrated (0.0031s) ===============
3166== 20170408000000 RequestsAddSenderId: migrating ==============================
3167-- change_table(:requests)
3168 -> 0.0025s
3169== 20170408000000 RequestsAddSenderId: migrated (0.0026s) =====================
3171== 20170408000001 BuildsAddSenderId: migrating ================================
3172-- change_table(:builds)
3173 -> 0.0027s
3174== 20170408000001 BuildsAddSenderId: migrated (0.0029s) =======================
3176== 20170410000000 JobsIndexStageId: migrating =================================
3177-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_stage_id ON jobs (stage_id);")
3178 -> 0.0038s
3179== 20170410000000 JobsIndexStageId: migrated (0.0039s) ========================
3181== 20170411000000 TagsIndexRepoIdAndName: migrating ===========================
3182-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_repository_id_and_name ON tags (repository_id, name);")
3183 -> 0.0036s
3184== 20170411000000 TagsIndexRepoIdAndName: migrated (0.0037s) ==================
3186== 20170419093249 AddSourceToSubscriptions: migrating =========================
3187-- execute(" CREATE TYPE source_type AS ENUM ('manual', 'stripe', 'github', 'unknown');\n")
3188 -> 0.0013s
3189-- add_column(:subscriptions, :source, :source_type, {:default=>"unknown", :null=>false})
3190 -> 0.0017s
3191== 20170419093249 AddSourceToSubscriptions: migrated (0.0032s) ================
3193== 20170531125700 AddIndexOnBuildsSenderTypeAndSenderId: migrating ============
3194-- execute("CREATE INDEX CONCURRENTLY index_builds_on_sender_type_and_sender_id ON builds (sender_type, sender_id);")
3195 -> 0.0036s
3196== 20170531125700 AddIndexOnBuildsSenderTypeAndSenderId: migrated (0.0037s) ===
3198== 20170601163700 DropIndexOnRepositoriesBuildsAndCommits: migrating ==========
3199-- execute("DROP INDEX CONCURRENTLY index_repositories_on_lower_owner_name")
3200 -> 0.0021s
3201-- execute("DROP INDEX CONCURRENTLY index_repositories_on_owner_type")
3202 -> 0.0020s
3203-- execute("DROP INDEX CONCURRENTLY index_commits_on_repository_id")
3204 -> 0.0021s
3205-- execute("DROP INDEX CONCURRENTLY index_builds_on_number")
3206 -> 0.0022s
3207== 20170601163700 DropIndexOnRepositoriesBuildsAndCommits: migrated (0.0086s) =
3209== 20170601164400 AddIndexOnBuildsAndStages: migrating ========================
3210-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_branch_and_event_type_and_id ON builds (repository_id, branch, event_type, id)")
3211 -> 0.0039s
3212-- execute("CREATE INDEX CONCURRENTLY index_stages_on_build_id ON stages (build_id)")
3213 -> 0.0033s
3214== 20170601164400 AddIndexOnBuildsAndStages: migrated (0.0073s) ===============
3216== 20170609174400 DropUnusedIndexesOnJobsAndBuilds: migrating =================
3217-- execute("DROP INDEX CONCURRENTLY index_jobs_on_repository_id")
3218 -> 0.0021s
3219-- execute("DROP INDEX CONCURRENTLY index_jobs_on_queued_at")
3220 -> 0.0020s
3221-- execute("DROP INDEX CONCURRENTLY index_jobs_on_queue")
3222 -> 0.0020s
3223-- execute("DROP INDEX CONCURRENTLY index_jobs_on_owner_id")
3224 -> 0.0019s
3225-- execute("DROP INDEX CONCURRENTLY index_builds_on_branch")
3226 -> 0.0019s
3227-- execute("DROP INDEX CONCURRENTLY index_builds_on_event_type")
3228 -> 0.0020s
3229-- execute("DROP INDEX CONCURRENTLY index_builds_on_owner_id")
3230 -> 0.0019s
3231== 20170609174400 DropUnusedIndexesOnJobsAndBuilds: migrated (0.0139s) ========
3233== 20170613000000 CreateTrials: migrating =====================================
3234-- create_table(:trials, {:id=>:integer})
3235 -> 0.0061s
3236-- execute("CREATE INDEX CONCURRENTLY index_trials_on_owner ON trials(owner_id, owner_type)")
3237 -> 0.0031s
3238== 20170613000000 CreateTrials: migrated (0.0094s) ============================
3240== 20170620144500 AddIndexesOnBuildsAndJobsAndBranches: migrating =============
3241-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_branch_and_id_desc ON builds (repository_id, branch, id DESC)")
3242 -> 0.0031s
3243-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_id_and_owner_type_and_state ON jobs (owner_id, owner_type, state)")
3244 -> 0.0030s
3245-- execute("CREATE INDEX CONCURRENTLY index_branches_on_repository_id ON branches (repository_id)")
3246 -> 0.0028s
3247== 20170620144500 AddIndexesOnBuildsAndJobsAndBranches: migrated (0.0090s) ====
3249== 20170621142300 RemovePlansTable: migrating =================================
3250-- drop_table(:plans)
3251 -> 0.0008s
3252== 20170621142300 RemovePlansTable: migrated (0.0009s) ========================
3254== 20170713162000 AddCcLastDigitsToInvoices: migrating ========================
3255-- change_table(:invoices)
3256 -> 0.0006s
3257== 20170713162000 AddCcLastDigitsToInvoices: migrated (0.0006s) ===============
3259== 20170822171600 CreateMessages: migrating ===================================
3260-- create_table("messages", {:force=>:cascade, :id=>:integer})
3261 -> 0.0050s
3262-- execute("CREATE INDEX CONCURRENTLY index_messages_on_subject_type_and_subject_id ON messages(subject_type, subject_id)")
3263 -> 0.0031s
3264== 20170822171600 CreateMessages: migrated (0.0082s) ==========================
3266== 20170831000000 CreateTrialAllowances: migrating ============================
3267-- create_table(:trial_allowances, {:id=>:integer})
3268 -> 0.0043s
3269-- add_index(:trial_allowances, :trial_id)
3270 -> 0.0017s
3271-- add_index(:trial_allowances, [:creator_id, :creator_type])
3272 -> 0.0016s
3273== 20170831000000 CreateTrialAllowances: migrated (0.0076s) ===================
3275== 20170911172800 AddIndexOnJobsUpdatedAt: migrating ==========================
3276-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_updated_at ON jobs (updated_at)")
3277 -> 0.0031s
3278== 20170911172800 AddIndexOnJobsUpdatedAt: migrated (0.0032s) =================
3280== 20171017104500 AddConcurrencyToSubscriptions: migrating ====================
3281-- change_table(:subscriptions)
3282 -> 0.0006s
3283== 20171017104500 AddConcurrencyToSubscriptions: migrated (0.0006s) ===========
3285== 20171024000000 AddAbuseTable: migrating ====================================
3286-- create_table(:abuses, {:id=>:integer})
3287 -> 0.0049s
3288-- execute("CREATE INDEX CONCURRENTLY index_abuses_on_owner ON abuses(owner_id)")
3289 -> 0.0029s
3290== 20171024000000 AddAbuseTable: migrated (0.0079s) ===========================
3292== 20171025000000 AddUpdatedAtTriggerToBuildsAndJobs: migrating ===============
3293-- 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")
3294 -> 0.0007s
3295== 20171025000000 AddUpdatedAtTriggerToBuildsAndJobs: migrated (0.0007s) ======
3297== 20171103000000 UpdateIndexOnAbuses: migrating ==============================
3298-- index_exists?(:abuses, :owner, {:name=>"index_abuses_on_owner"})
3299 -> 0.0013s
3300-- index_exists?(:abuses, [:owner_id, :owner_type, :level], {:name=>"index_abuses_on_owner_id_and_owner_type_and_level"})
3301 -> 0.0011s
3302-- add_index(:abuses, [:owner_id, :owner_type, :level], {:unique=>true, :algorithm=>:concurrently})
3303 -> 0.0031s
3304== 20171103000000 UpdateIndexOnAbuses: migrated (0.0055s) =====================
3306== 20171211000000 AddRepositoryIdBranchEventTypeIndexOnBuilds: migrating ======
3307-- 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')")
3308 -> 0.0033s
3309== 20171211000000 AddRepositoryIdBranchEventTypeIndexOnBuilds: migrated (0.0033s)
3311== 20180212000000 UsersAddSuspended: migrating ================================
3312-- add_column(:users, :suspended, :boolean, {:default=>false})
3313 -> 0.0024s
3314== 20180212000000 UsersAddSuspended: migrated (0.0026s) =======================
3316== 20180213000000 UsersAddSuspendedAt: migrating ==============================
3317-- add_column(:users, :suspended_at, :timestamp, {:precision=>nil})
3318 -> 0.0019s
3319== 20180213000000 UsersAddSuspendedAt: migrated (0.0020s) =====================
3321== 20180222000000 AddComIdAndOrgId: migrating =================================
3322-- add_column(:branches, :org_id, :integer)
3323 -> 0.0017s
3324-- add_column(:builds, :org_id, :integer)
3325 -> 0.0011s
3326-- add_column(:commits, :org_id, :integer)
3327 -> 0.0011s
3328-- add_column(:crons, :org_id, :integer)
3329 -> 0.0011s
3330-- add_column(:jobs, :org_id, :integer)
3331 -> 0.0011s
3332-- add_column(:organizations, :org_id, :integer)
3333 -> 0.0010s
3334-- add_column(:permissions, :org_id, :integer)
3335 -> 0.0010s
3336-- add_column(:pull_requests, :org_id, :integer)
3337 -> 0.0010s
3338-- add_column(:repositories, :org_id, :integer)
3339 -> 0.0011s
3340-- add_column(:requests, :org_id, :integer)
3341 -> 0.0011s
3342-- add_column(:ssl_keys, :org_id, :integer)
3343 -> 0.0010s
3344-- add_column(:stages, :org_id, :integer)
3345 -> 0.0010s
3346-- add_column(:tags, :org_id, :integer)
3347 -> 0.0009s
3348-- add_column(:users, :org_id, :integer)
3349 -> 0.0011s
3350-- add_column(:branches, :com_id, :integer)
3351 -> 0.0010s
3352-- add_column(:builds, :com_id, :integer)
3353 -> 0.0010s
3354-- add_column(:commits, :com_id, :integer)
3355 -> 0.0010s
3356-- add_column(:crons, :com_id, :integer)
3357 -> 0.0010s
3358-- add_column(:jobs, :com_id, :integer)
3359 -> 0.0010s
3360-- add_column(:organizations, :com_id, :integer)
3361 -> 0.0011s
3362-- add_column(:permissions, :com_id, :integer)
3363 -> 0.0010s
3364-- add_column(:pull_requests, :com_id, :integer)
3365 -> 0.0010s
3366-- add_column(:repositories, :com_id, :integer)
3367 -> 0.0010s
3368-- add_column(:requests, :com_id, :integer)
3369 -> 0.0010s
3370-- add_column(:ssl_keys, :com_id, :integer)
3371 -> 0.0010s
3372-- add_column(:stages, :com_id, :integer)
3373 -> 0.0010s
3374-- add_column(:tags, :com_id, :integer)
3375 -> 0.0010s
3376-- add_column(:users, :com_id, :integer)
3377 -> 0.0010s
3378== 20180222000000 AddComIdAndOrgId: migrated (0.0326s) ========================
3380== 20180222000001 AddComIdAndOrgIdIndices: migrating ==========================
3381-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_on_org_id ON branches USING btree (org_id)")
3382 -> 0.0039s
3383-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_builds_on_org_id ON builds USING btree (org_id)")
3384 -> 0.0036s
3385-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_jobs_on_org_id ON jobs USING btree (org_id)")
3386 -> 0.0037s
3387-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_commits_on_org_id ON commits USING btree (org_id)")
3388 -> 0.0034s
3389-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_crons_on_org_id ON crons USING btree (org_id)")
3390 -> 0.0032s
3391-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organizations_on_org_id ON organizations USING btree (org_id)")
3392 -> 0.0035s
3393-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_permissions_on_org_id ON permissions USING btree (org_id)")
3394 -> 0.0034s
3395-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_pull_requests_on_org_id ON pull_requests USING btree (org_id)")
3396 -> 0.0035s
3397-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_repositories_on_org_id ON repositories USING btree (org_id)")
3398 -> 0.0033s
3399-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_requests_on_org_id ON requests USING btree (org_id)")
3400 -> 0.0031s
3401-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_ssl_keys_on_org_id ON ssl_keys USING btree (org_id)")
3402 -> 0.0032s
3403-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_stages_on_org_id ON stages USING btree (org_id)")
3404 -> 0.0032s
3405-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_org_id ON tags USING btree (org_id)")
3406 -> 0.0033s
3407-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_org_id ON users USING btree (org_id)")
3408 -> 0.0031s
3409-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_on_com_id ON branches USING btree (com_id)")
3410 -> 0.0029s
3411-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_builds_on_com_id ON builds USING btree (com_id)")
3412 -> 0.0033s
3413-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_jobs_on_com_id ON jobs USING btree (com_id)")
3414 -> 0.0031s
3415-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_commits_on_com_id ON commits USING btree (com_id)")
3416 -> 0.0030s
3417-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_crons_on_com_id ON crons USING btree (com_id)")
3418 -> 0.0031s
3419-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organizations_on_com_id ON organizations USING btree (com_id)")
3420 -> 0.0031s
3421-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_permissions_on_com_id ON permissions USING btree (com_id)")
3422 -> 0.0031s
3423-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_pull_requests_on_com_id ON pull_requests USING btree (com_id)")
3424 -> 0.0030s
3425-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_repositories_on_com_id ON repositories USING btree (com_id)")
3426 -> 0.0031s
3427-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_requests_on_com_id ON requests USING btree (com_id)")
3428 -> 0.0029s
3429-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_ssl_keys_on_com_id ON ssl_keys USING btree (com_id)")
3430 -> 0.0030s
3431-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_stages_on_com_id ON stages USING btree (com_id)")
3432 -> 0.0032s
3433-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_com_id ON tags USING btree (com_id)")
3434 -> 0.0029s
3435-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_com_id ON users USING btree (com_id)")
3436 -> 0.0031s
3437== 20180222000001 AddComIdAndOrgIdIndices: migrated (0.0909s) =================
3439== 20180222000002 AddMigrating: migrating =====================================
3440-- add_column(:repositories, :migrating, :boolean)
3441 -> 0.0006s
3442-- add_column(:repositories, :migrated_at, :timestamp, {:precision=>nil})
3443 -> 0.0004s
3444-- add_column(:organizations, :migrating, :boolean)
3445 -> 0.0003s
3446-- add_column(:organizations, :migrated_at, :timestamp, {:precision=>nil})
3447 -> 0.0003s
3448-- add_column(:users, :migrating, :boolean)
3449 -> 0.0003s
3450-- add_column(:users, :migrated_at, :timestamp, {:precision=>nil})
3451 -> 0.0003s
3452== 20180222000002 AddMigrating: migrated (0.0025s) ============================
3454== 20180222000003 DropFkRepositoriesCurrentBuildId: migrating =================
3455-- execute("ALTER TABLE repositories DROP CONSTRAINT fk_repositories_current_build_id")
3456 -> 0.0007s
3457== 20180222000003 DropFkRepositoriesCurrentBuildId: migrated (0.0007s) ========
3459== 20180222000009 CreateRepoCounts: migrating =================================
3460-- create_table(:repo_counts, {:id=>false})
3461 -> 0.0058s
3462-- add_index(:repo_counts, :repository_id)
3463 -> 0.0018s
3464== 20180222000009 CreateRepoCounts: migrated (0.0077s) ========================
3466== 20180222000012 CreateRepoCountsTriggers: migrating =========================
3467-- 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")
3468 -> 0.0171s
3469== 20180222000012 CreateRepoCountsTriggers: migrated (0.0175s) ================
3471== 20180222164100 DropAnnotations: migrating ==================================
3472-- drop_table(:annotations)
3473 -> 0.0038s
3474-- drop_table(:annotation_providers)
3475 -> 0.0029s
3476== 20180222164100 DropAnnotations: migrated (0.0069s) =========================
3478== 20180305143800 IndexBuildsOnRepositoryIdWhereStateNotFinished: migrating ===
3479-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_where_state_not_finished ON builds (repository_id) WHERE state IN ('created', 'queued', 'received', 'started');")
3480 -> 0.0051s
3481== 20180305143800 IndexBuildsOnRepositoryIdWhereStateNotFinished: migrated (0.0052s)
3483== 20180321102400 IndexJobsOnRepositoryIdWhereStateRunning: migrating =========
3484-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_repository_id_where_state_running ON jobs (repository_id) WHERE state IN ('queued', 'received', 'started')")
3485 -> 0.0047s
3486== 20180321102400 IndexJobsOnRepositoryIdWhereStateRunning: migrated (0.0048s)
3488== 20180330000000 CreateRequestPayloads: migrating ============================
3489-- create_table(:request_payloads, {:id=>:integer})
3490 -> 0.0087s
3491-- add_index(:request_payloads, :request_id)
3492 -> 0.0033s
3493-- add_index(:request_payloads, [:created_at, :archived])
3494 -> 0.0019s
3495== 20180330000000 CreateRequestPayloads: migrated (0.0141s) ===================
3497== 20180331000000 CreateConfigs: migrating ====================================
3498-- create_table(:request_configs, {:id=>:integer})
3499 -> 0.0061s
3500-- create_table(:build_configs, {:id=>:integer})
3501 -> 0.0045s
3502-- create_table(:job_configs, {:id=>:integer})
3503 -> 0.0046s
3504-- add_index(:request_configs, [:repository_id, :key])
3505 -> 0.0019s
3506-- add_index(:build_configs, [:repository_id, :key])
3507 -> 0.0019s
3508-- add_index(:job_configs, [:repository_id, :key])
3509 -> 0.0021s
3510-- add_column(:requests, :config_id, :integer)
3511 -> 0.0005s
3512-- add_column(:builds, :config_id, :integer)
3513 -> 0.0005s
3514-- add_column(:jobs, :config_id, :integer)
3515 -> 0.0005s
3516== 20180331000000 CreateConfigs: migrated (0.0230s) ===========================
3518== 20180404000001 CreateInstallations: migrating ==============================
3519-- create_table(:installations, {:id=>:integer})
3520 -> 0.0094s
3521-- change_table(:repositories)
3522 -> 0.0009s
3523== 20180404000001 CreateInstallations: migrated (0.0104s) =====================
3525== 20180410000000 RequestsDropPayload: migrating ==============================
3526-- remove_column(:requests, :payload, :text)
3527 -> 0.0007s
3528== 20180410000000 RequestsDropPayload: migrated (0.0007s) =====================
3530== 20180413000000 IndexBranchesOnRepositoryIdAndNameAndId: migrating ==========
3531-- execute("CREATE INDEX CONCURRENTLY index_branches_on_repository_id_and_name_and_id ON branches (repository_id, name, id)")
3532 -> 0.0034s
3533-- execute("DROP INDEX CONCURRENTLY index_branches_on_repository_id_and_name")
3534 -> 0.0020s
3535== 20180413000000 IndexBranchesOnRepositoryIdAndNameAndId: migrated (0.0055s) =
3537== 20180417000000 IndexBuildsOrganizationsUsersOnUpdatedAt: migrating =========
3538-- execute("CREATE INDEX CONCURRENTLY index_builds_on_updated_at ON builds (updated_at)")
3539 -> 0.0035s
3540-- execute("CREATE INDEX CONCURRENTLY index_users_on_updated_at ON users (updated_at)")
3541 -> 0.0035s
3542-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_updated_at ON repositories (updated_at)")
3543 -> 0.0033s
3544-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_updated_at ON organizations (updated_at)")
3545 -> 0.0033s
3546== 20180417000000 IndexBuildsOrganizationsUsersOnUpdatedAt: migrated (0.0138s)
3548== 20180420000000 ConstraintsAndIndexesForGhApps: migrating ===================
3549-- execute("CREATE UNIQUE INDEX CONCURRENTLY github_id_installations_idx ON installations (github_id)")
3550 -> 0.0032s
3551-- execute("CREATE INDEX CONCURRENTLY managed_repositories_idx ON repositories (managed_by_installation_at)")
3552 -> 0.0033s
3553-- execute("CREATE UNIQUE INDEX CONCURRENTLY owner_installations_idx ON installations (owner_id, owner_type) WHERE removed_by_id IS NULL")
3554 -> 0.0034s
3555== 20180420000000 ConstraintsAndIndexesForGhApps: migrated (0.0100s) ==========
3557== 20180425000000 IndexActiveOnOrg: migrating =================================
3558-- execute("CREATE INDEX CONCURRENTLY index_active_on_org ON repositories (active_on_org)")
3559 -> 0.0035s
3560== 20180425000000 IndexActiveOnOrg: migrated (0.0035s) ========================
3562== 20180425100000 AddRemovedAtOnInstallations: migrating ======================
3563-- add_column(:installations, :removed_at, :timestamp, {:precision=>nil})
3564 -> 0.0006s
3565== 20180425100000 AddRemovedAtOnInstallations: migrated (0.0007s) =============
3567== 20180429000000 IndexRepositoriesOnOwnerNameAndName: migrating ==============
3568-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_name_and_name ON repositories (owner_name, name) WHERE invalidated_at IS NULL")
3569 -> 0.0033s
3570== 20180429000000 IndexRepositoriesOnOwnerNameAndName: migrated (0.0033s) =====
3572== 20180501000000 IndexJobsOnOwnerWhereStateRunning: migrating ================
3573-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_where_state_running ON jobs (owner_id, owner_type) WHERE state IN ('queued', 'received', 'started')")
3574 -> 0.0038s
3575== 20180501000000 IndexJobsOnOwnerWhereStateRunning: migrated (0.0038s) =======
3577== 20180517000000 IndexRequestsConfigId: migrating ============================
3578-- execute("CREATE INDEX CONCURRENTLY index_requests_on_config_id ON requests (config_id)")
3579 -> 0.0034s
3580== 20180517000000 IndexRequestsConfigId: migrated (0.0034s) ===================
3582== 20180517000001 IndexBuildsConfigId: migrating ==============================
3583-- execute("CREATE INDEX CONCURRENTLY index_builds_on_config_id ON requests (config_id)")
3584 -> 0.0033s
3585== 20180517000001 IndexBuildsConfigId: migrated (0.0034s) =====================
3587== 20180517000002 IndexJobsConfigId: migrating ================================
3588-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_config_id ON requests (config_id)")
3589 -> 0.0034s
3590== 20180517000002 IndexJobsConfigId: migrated (0.0035s) =======================
3592== 20180518000000 IndexBuildsOnMultiple: migrating ============================
3593-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_builds_on_repo_branch_event_type_and_private ON builds (repository_id, branch, event_type, private)")
3594 -> 0.0039s
3595== 20180518000000 IndexBuildsOnMultiple: migrated (0.0040s) ===================
3597== 20180522000000 AddActiveFlagToCrons: migrating =============================
3598-- change_table(:crons)
3599 -> 0.0016s
3600-- add_index(:crons, :next_run, {:where=>"(active IS TRUE)", :algorithm=>:concurrently})
3601 -> 0.0036s
3602== 20180522000000 AddActiveFlagToCrons: migrated (0.0053s) ====================
3604== 20180531000000 CreateRequestYamlConfigs: migrating =========================
3605-- create_table(:request_yaml_configs, {:id=>:integer})
3606 -> 0.0059s
3607-- add_index(:request_yaml_configs, [:repository_id, :key])
3608 -> 0.0024s
3609-- add_column(:requests, :yaml_config_id, :integer)
3610 -> 0.0010s
3611== 20180531000000 CreateRequestYamlConfigs: migrated (0.0094s) ================
3613== 20180606000000 IndexCommitsOnRepositoryId: migrating =======================
3614-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_commits_on_repository_id ON commits (repository_id)")
3615 -> 0.0033s
3616== 20180606000000 IndexCommitsOnRepositoryId: migrated (0.0034s) ==============
3618== 20180606000001 IndexJobsOnRepositoryId: migrating ==========================
3619-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_jobs_on_repository_id ON jobs (repository_id)")
3620 -> 0.0035s
3621== 20180606000001 IndexJobsOnRepositoryId: migrated (0.0036s) =================
3623== 20180614000000 DropRequestsConfig: migrating ===============================
3624-- remove_column(:requests, :config)
3625 -> 0.0008s
3626== 20180614000000 DropRequestsConfig: migrated (0.0009s) ======================
3628== 20180614000001 DropBuildsConfig: migrating =================================
3629-- remove_column(:builds, :config)
3630 -> 0.0008s
3631== 20180614000001 DropBuildsConfig: migrated (0.0008s) ========================
3633== 20180614000002 DropJobsConfig: migrating ===================================
3634-- remove_column(:jobs, :config)
3635 -> 0.0008s
3636== 20180614000002 DropJobsConfig: migrated (0.0009s) ==========================
3638== 20180620000000 IndexBuildsOnRepositoryIdEventTypeId: migrating =============
3639-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_builds_on_repository_id_event_type_id ON builds (repository_id, event_type, id DESC)")
3640 -> 0.0034s
3641== 20180620000000 IndexBuildsOnRepositoryIdEventTypeId: migrated (0.0035s) ====
3643== 20180725000000 CreateCancellations: migrating ==============================
3644-- create_table(:cancellations, {:id=>:integer})
3645 -> 0.0074s
3646== 20180725000000 CreateCancellations: migrated (0.0075s) =====================
3648== 20180726000000 CommitsIndexAuthorEmail: migrating ==========================
3649-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_commits_on_author_email ON commits (author_email)")
3650 -> 0.0035s
3651== 20180726000000 CommitsIndexAuthorEmail: migrated (0.0036s) =================
3653== 20180726000001 CommitsIndexCommitterEmail: migrating =======================
3654-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_commits_on_committer_email ON commits (committer_email)")
3655 -> 0.0033s
3656== 20180726000001 CommitsIndexCommitterEmail: migrated (0.0033s) ==============
3658== 20180801000001 UsersAddRedactedAt: migrating ===============================
3659-- change_table(:users)
3660 -> 0.0009s
3661== 20180801000001 UsersAddRedactedAt: migrated (0.0010s) ======================
3663== 20180822000000 CreateEmailUnsubscribes: migrating ==========================
3664-- create_table(:email_unsubscribes, {:id=>:integer})
3665 -> 0.0098s
3666== 20180822000000 CreateEmailUnsubscribes: migrated (0.0099s) =================
3668== 20180823000000 AddPreferences: migrating ===================================
3669-- change_table(:users)
3670 -> 0.0021s
3671== 20180823000000 AddPreferences: migrated (0.0021s) ==========================
3673== 20180828000000 ChangePreferencesDefault: migrating =========================
3674-- change_column_default(:users, :preferences, {})
3675 -> 0.0073s
3676== 20180828000000 ChangePreferencesDefault: migrated (0.0073s) ================
3678== 20180829000000 MakeEmailUnsubscribesIdBigint: migrating ====================
3679-- change_column(:email_unsubscribes, :id, :bigint)
3680 -> 0.0074s
3681== 20180829000000 MakeEmailUnsubscribesIdBigint: migrated (0.0075s) ===========
3683== 20180830000001 JobsAddRestartedAt: migrating ===============================
3684-- change_table(:jobs)
3685 -> 0.0006s
3686== 20180830000001 JobsAddRestartedAt: migrated (0.0006s) ======================
3688== 20180830000002 BuildsAddRestartedAt: migrating =============================
3689-- change_table(:builds)
3690 -> 0.0005s
3691== 20180830000002 BuildsAddRestartedAt: migrated (0.0005s) ====================
3693== 20180830000003 JobVersionsCreate: migrating ================================
3694-- create_table(:job_versions, {:id=>:integer})
3695 -> 0.0045s
3696== 20180830000003 JobVersionsCreate: migrated (0.0046s) =======================
3698== 20180903000000 JobConfigsIndexConfigResourcesGpu: migrating ================
3699-- 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")
3700 -> 0.0010s
3701-- 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")
3702 -> 0.0040s
3703== 20180903000000 JobConfigsIndexConfigResourcesGpu: migrated (0.0051s) =======
3705== 20180903000001 FixIndexesOnBuildsAndJobsConfigId: migrating ================
3706-- execute("DROP INDEX index_builds_on_config_id")
3707 -> 0.0010s
3708-- execute("CREATE INDEX CONCURRENTLY index_builds_on_config_id ON builds (config_id)")
3709 -> 0.0032s
3710-- execute("DROP INDEX index_jobs_on_config_id")
3711 -> 0.0009s
3712-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_config_id ON jobs (config_id)")
3713 -> 0.0033s
3714== 20180903000001 FixIndexesOnBuildsAndJobsConfigId: migrated (0.0086s) =======
3716== 20180904000001 CreateJobConfigsGpu: migrating ==============================
3717-- 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")
3718 -> 0.0020s
3719== 20180904000001 CreateJobConfigsGpu: migrated (0.0021s) =====================
3721== 20180906000000 AddIndexUsersPreferencesBuildEmails: migrating ==============
3722-- execute("CREATE INDEX CONCURRENTLY user_preferences_build_emails_false ON users (id) WHERE preferences->>'build_emails' = 'false';\n")
3723 -> 0.0036s
3724== 20180906000000 AddIndexUsersPreferencesBuildEmails: migrated (0.0036s) =====
3726== 20181002115306 DeleteDuplicateRecordsFromMemberships: migrating ============
3727-- 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")
3728 -> 0.0022s
3729== 20181002115306 DeleteDuplicateRecordsFromMemberships: migrated (0.0022s) ===
3731== 20181002115307 AddConstraintOnOrganizationAndUserToMemberships: migrating ==
3732-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organization_id_and_user_id_on_memberships ON memberships USING btree (organization_id, user_id);\n")
3733 -> 0.0034s
3734== 20181002115307 AddConstraintOnOrganizationAndUserToMemberships: migrated (0.0034s)
3736== 20181018000000 IndexBuildsOnCreatedAt: migrating ===========================
3737-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_builds_on_created_at ON builds (created_at)")
3738 -> 0.0034s
3739== 20181018000000 IndexBuildsOnCreatedAt: migrated (0.0035s) ==================
3741== 20181029120000 AddMigrationStatusColumnToRepositories: migrating ===========
3742-- add_column(:repositories, :migration_status, :string)
3743 -> 0.0009s
3744== 20181029120000 AddMigrationStatusColumnToRepositories: migrated (0.0009s) ==
3746== 20181113120000 AddGithubGuidColumnToRequests: migrating ====================
3747-- add_column(:requests, :github_guid, :text)
3748 -> 0.0011s
3749-- add_index(:requests, :github_guid, {:algorithm=>:concurrently, :unique=>true})
3750 -> 0.0033s
3751== 20181113120000 AddGithubGuidColumnToRequests: migrated (0.0045s) ===========
3753== 20181116800000 AddConstraintsToMultipleTables: migrating ===================
3754-- 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")
3755 -> 0.0012s
3756-- 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")
3757 -> 0.0008s
3758-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
3759 -> 0.0010s
3760-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) NOT VALID")
3761 -> 0.0010s
3762-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_request_id FOREIGN KEY (request_id) REFERENCES requests(id) NOT VALID")
3763 -> 0.0010s
3764-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_pull_request_id FOREIGN KEY (pull_request_id) REFERENCES pull_requests(id) NOT VALID")
3765 -> 0.0010s
3766-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")
3767 -> 0.0009s
3768-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) NOT VALID")
3769 -> 0.0011s
3770-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_config_id FOREIGN KEY (config_id) REFERENCES build_configs(id) NOT VALID")
3771 -> 0.0009s
3772-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
3773 -> 0.0009s
3774-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) NOT VALID")
3775 -> 0.0009s
3776-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_stage_id FOREIGN KEY (stage_id) REFERENCES stages(id) NOT VALID")
3777 -> 0.0009s
3778-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_config_id FOREIGN KEY (config_id) REFERENCES job_configs(id) NOT VALID")
3779 -> 0.0009s
3780-- execute("ALTER TABLE branches ADD CONSTRAINT fk_branches_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
3781 -> 0.0008s
3782-- 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")
3783 -> 0.0009s
3784-- execute("ALTER TABLE tags ADD CONSTRAINT fk_tags_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
3785 -> 0.0008s
3786-- 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")
3787 -> 0.0008s
3788-- execute("ALTER TABLE commits ADD CONSTRAINT fk_commits_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
3789 -> 0.0008s
3790-- execute("ALTER TABLE commits ADD CONSTRAINT fk_commits_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")
3791 -> 0.0007s
3792-- execute("ALTER TABLE commits ADD CONSTRAINT fk_commits_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) NOT VALID")
3793 -> 0.0008s
3794-- execute("ALTER TABLE crons ADD CONSTRAINT fk_crons_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")
3795 -> 0.0010s
3796-- execute("ALTER TABLE job_configs ADD CONSTRAINT fk_job_configs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
3797 -> 0.0008s
3798-- execute("ALTER TABLE build_configs ADD CONSTRAINT fk_build_configs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
3799 -> 0.0008s
3800-- execute("ALTER TABLE pull_requests ADD CONSTRAINT fk_pull_requests_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
3801 -> 0.0009s
3802-- execute("ALTER TABLE ssl_keys ADD CONSTRAINT fk_ssl_keys_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")
3803 -> 0.0009s
3804-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) NOT VALID")
3805 -> 0.0009s
3806-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_pull_request_id FOREIGN KEY (pull_request_id) REFERENCES pull_requests(id) NOT VALID")
3807 -> 0.0007s
3808-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")
3809 -> 0.0007s
3810-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) NOT VALID")
3811 -> 0.0008s
3812-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_config_id FOREIGN KEY (config_id) REFERENCES request_configs(id) NOT VALID")
3813 -> 0.0009s
3814-- execute("ALTER TABLE stages ADD CONSTRAINT fk_stages_on_build_id FOREIGN KEY (build_id) REFERENCES builds(id) NOT VALID")
3815 -> 0.0008s
3816== 20181116800000 AddConstraintsToMultipleTables: migrated (0.0279s) ==========
3818== 20181116800001 ValidateConstraints: migrating ==============================
3819-- execute("ALTER TABLE repositories VALIDATE CONSTRAINT fk_repositories_on_current_build_id")
3820 -> 0.0037s
3821-- execute("ALTER TABLE repositories VALIDATE CONSTRAINT fk_repositories_on_last_build_id")
3822 -> 0.0009s
3823-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_repository_id")
3824 -> 0.0009s
3825-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_commit_id")
3826 -> 0.0010s
3827-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_request_id")
3828 -> 0.0011s
3829-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_pull_request_id")
3830 -> 0.0010s
3831-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_branch_id")
3832 -> 0.0010s
3833-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_tag_id")
3834 -> 0.0010s
3835-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_config_id")
3836 -> 0.0009s
3837-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_repository_id")
3838 -> 0.0012s
3839-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_commit_id")
3840 -> 0.0010s
3841-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_stage_id")
3842 -> 0.0014s
3843-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_config_id")
3844 -> 0.0010s
3845-- execute("ALTER TABLE branches VALIDATE CONSTRAINT fk_branches_on_repository_id")
3846 -> 0.0010s
3847-- execute("ALTER TABLE branches VALIDATE CONSTRAINT fk_branches_on_last_build_id")
3848 -> 0.0031s
3849-- execute("ALTER TABLE tags VALIDATE CONSTRAINT fk_tags_on_repository_id")
3850 -> 0.0007s
3851-- execute("ALTER TABLE tags VALIDATE CONSTRAINT fk_tags_on_last_build_id")
3852 -> 0.0007s
3853-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_commits_on_repository_id")
3854 -> 0.0007s
3855-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_commits_on_branch_id")
3856 -> 0.0006s
3857-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_commits_on_tag_id")
3858 -> 0.0022s
3859-- execute("ALTER TABLE crons VALIDATE CONSTRAINT fk_crons_on_branch_id")
3860 -> 0.0008s
3861-- execute("ALTER TABLE job_configs VALIDATE CONSTRAINT fk_job_configs_on_repository_id")
3862 -> 0.0007s
3863-- execute("ALTER TABLE build_configs VALIDATE CONSTRAINT fk_build_configs_on_repository_id")
3864 -> 0.0007s
3865-- execute("ALTER TABLE pull_requests VALIDATE CONSTRAINT fk_pull_requests_on_repository_id")
3866 -> 0.0008s
3867-- execute("ALTER TABLE ssl_keys VALIDATE CONSTRAINT fk_ssl_keys_on_repository_id")
3868 -> 0.0011s
3869-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_commit_id")
3870 -> 0.0012s
3871-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_pull_request_id")
3872 -> 0.0010s
3873-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_branch_id")
3874 -> 0.0010s
3875-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_tag_id")
3876 -> 0.0009s
3877-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_config_id")
3878 -> 0.0011s
3879-- execute("ALTER TABLE stages VALIDATE CONSTRAINT fk_stages_on_build_id")
3880 -> 0.0012s
3881== 20181116800001 ValidateConstraints: migrated (0.0362s) =====================
3883== 20181126080000 AddIndexesForForeignKeys: migrating =========================
3884-- index_exists?(:builds, :branch_id)
3885 -> 0.0086s
3886-- add_index(:builds, :branch_id, {:algorithm=>:concurrently})
3887 -> 0.0042s
3888-- index_exists?(:builds, :commit_id)
3889 -> 0.0087s
3890-- add_index(:builds, :commit_id, {:algorithm=>:concurrently})
3891 -> 0.0038s
3892-- index_exists?(:builds, :pull_request_id)
3893 -> 0.0116s
3894-- add_index(:builds, :pull_request_id, {:algorithm=>:concurrently})
3895 -> 0.0036s
3896-- index_exists?(:builds, :tag_id)
3897 -> 0.0102s
3898-- add_index(:builds, :tag_id, {:algorithm=>:concurrently})
3899 -> 0.0039s
3900-- index_exists?(:jobs, :commit_id)
3901 -> 0.0064s
3902-- add_index(:jobs, :commit_id, {:algorithm=>:concurrently})
3903 -> 0.0037s
3904-- index_exists?(:branches, :last_build_id)
3905 -> 0.0027s
3906-- add_index(:branches, :last_build_id, {:algorithm=>:concurrently})
3907 -> 0.0073s
3908-- index_exists?(:tags, :repository_id)
3909 -> 0.0019s
3910-- add_index(:tags, :repository_id, {:algorithm=>:concurrently})
3911 -> 0.0033s
3912-- index_exists?(:tags, :last_build_id)
3913 -> 0.0022s
3914-- add_index(:tags, :last_build_id, {:algorithm=>:concurrently})
3915 -> 0.0032s
3916-- index_exists?(:commits, :tag_id)
3917 -> 0.0025s
3918-- add_index(:commits, :tag_id, {:algorithm=>:concurrently})
3919 -> 0.0034s
3920-- index_exists?(:commits, :branch_id)
3921 -> 0.0033s
3922-- add_index(:commits, :branch_id, {:algorithm=>:concurrently})
3923 -> 0.0036s
3924-- index_exists?(:job_configs, :repository_id)
3925 -> 0.0016s
3926-- add_index(:job_configs, :repository_id, {:algorithm=>:concurrently})
3927 -> 0.0033s
3928-- index_exists?(:build_configs, :repository_id)
3929 -> 0.0015s
3930-- add_index(:build_configs, :repository_id, {:algorithm=>:concurrently})
3931 -> 0.0032s
3932-- index_exists?(:pull_requests, :repository_id)
3933 -> 0.0022s
3934-- add_index(:pull_requests, :repository_id, {:algorithm=>:concurrently})
3935 -> 0.0035s
3936-- index_exists?(:requests, :pull_request_id)
3937 -> 0.0044s
3938-- add_index(:requests, :pull_request_id, {:algorithm=>:concurrently})
3939 -> 0.0033s
3940-- index_exists?(:requests, :tag_id)
3941 -> 0.0045s
3942-- add_index(:requests, :tag_id, {:algorithm=>:concurrently})
3943 -> 0.0033s
3944-- index_exists?(:requests, :branch_id)
3945 -> 0.0049s
3946-- add_index(:requests, :branch_id, {:algorithm=>:concurrently})
3947 -> 0.0037s
3948-- index_exists?(:repositories, :current_build_id)
3949 -> 0.0057s
3950-- add_index(:repositories, :current_build_id, {:algorithm=>:concurrently})
3951 -> 0.0038s
3952-- index_exists?(:repositories, :last_build_id)
3953 -> 0.0056s
3954-- add_index(:repositories, :last_build_id, {:algorithm=>:concurrently})
3955 -> 0.0038s
3956-- index_exists?(:crons, :branch_id)
3957 -> 0.0022s
3958-- add_index(:crons, :branch_id, {:algorithm=>:concurrently})
3959 -> 0.0038s
3960== 20181126080000 AddIndexesForForeignKeys: migrated (0.1636s) ================
3962== 20181128120000 AddUniqueIndexToBranchesOnRepositoryIdAndName: migrating ====
3963-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_on_repository_id_and_name ON branches(repository_id, name)")
3964 -> 0.0036s
3965== 20181128120000 AddUniqueIndexToBranchesOnRepositoryIdAndName: migrated (0.0037s)
3967== 20181203075818 AddUniqueNameColumnToBranches: migrating ====================
3968-- add_column(:branches, :unique_name, :text)
3969 -> 0.0009s
3970== 20181203075818 AddUniqueNameColumnToBranches: migrated (0.0010s) ===========
3972== 20181203075819 AddSetUniqueNameTriggerToBranches: migrating ================
3973-- 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")
3974 -> 0.0009s
3975== 20181203075819 AddSetUniqueNameTriggerToBranches: migrated (0.0010s) =======
3977== 20181203080356 CreateIndexOnBranchesUniqueNameAndRepositoryId: migrating ===
3978-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_repository_id_unique_name ON branches(repository_id, unique_name) WHERE unique_name IS NOT NULL")
3979 -> 0.0040s
3980== 20181203080356 CreateIndexOnBranchesUniqueNameAndRepositoryId: migrated (0.0041s)
3982== 20181205152712 AddUniqueIndexToCronsOnBranchId: migrating ==================
3983-- execute("DROP INDEX CONCURRENTLY index_crons_on_branch_id")
3984 -> 0.0022s
3985-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_crons_on_branch_id ON crons(branch_id)")
3986 -> 0.0032s
3987== 20181205152712 AddUniqueIndexToCronsOnBranchId: migrated (0.0054s) =========
3989== 20190102000000 AddOrganizationPreferences: migrating =======================
3990-- change_table(:organizations)
3991 -> 0.0011s
3992== 20190102000000 AddOrganizationPreferences: migrated (0.0011s) ==============
3994== 20190102000001 ChangeOrganizationPreferencesDefault: migrating =============
3995-- change_column_default(:organizations, :preferences, {})
3996 -> 0.0032s
3997== 20190102000001 ChangeOrganizationPreferencesDefault: migrated (0.0032s) ====
3999== 20190109000000 CreateBetaMigrationRequestTable: migrating ==================
4000-- create_table(:beta_migration_requests, {:id=>:integer})
4001 -> 0.0065s
4002-- add_index(:beta_migration_requests, [:owner_type, :owner_id])
4003 -> 0.0020s
4004== 20190109000000 CreateBetaMigrationRequestTable: migrated (0.0086s) =========
4006== 20190118000000 AddBetaMigrationRequestColumnToOrganizations: migrating =====
4007-- add_column(:organizations, :beta_migration_request_id, :integer)
4008 -> 0.0009s
4009== 20190118000000 AddBetaMigrationRequestColumnToOrganizations: migrated (0.0009s)
4011== 20190204000000 MakeSubscriptionOwnerNotNullable: migrating =================
4012-- change_column_null(:subscriptions, :owner_type, false)
4013 -> 0.0007s
4014-- change_column_null(:subscriptions, :owner_id, false)
4015 -> 0.0007s
4016== 20190204000000 MakeSubscriptionOwnerNotNullable: migrated (0.0015s) ========
4018== 20190313000000 RequestRawConfigsCreate: migrating ==========================
4019-- create_table(:request_raw_configs, {:id=>:integer})
4020 -> 0.0067s
4021-- add_index(:request_raw_configs, [:repository_id, :key])
4022 -> 0.0031s
4023-- create_table(:request_raw_configurations, {:id=>:integer})
4024 -> 0.0049s
4025-- add_index(:request_raw_configurations, :request_id)
4026 -> 0.0018s
4027-- add_index(:request_raw_configurations, :request_raw_config_id)
4028 -> 0.0017s
4029== 20190313000000 RequestRawConfigsCreate: migrated (0.0183s) =================
4031== 20190329093854 CreateGatekeeperWorkers: migrating ==========================
4032-- create_table(:gatekeeper_workers)
4033 -> 0.0031s
4034-- execute("INSERT INTO gatekeeper_workers(id) SELECT generate_series(1,200) as id;")
4035 -> 0.0009s
4036== 20190329093854 CreateGatekeeperWorkers: migrated (0.0040s) =================
4038== 20190409133118 AddUniqueNumberColumnToBuilds: migrating ====================
4039-- add_column(:builds, :unique_number, :int)
4040 -> 0.0007s
4041== 20190409133118 AddUniqueNumberColumnToBuilds: migrated (0.0008s) ===========
4043== 20190409133320 AddSetUniqueNumberTriggerToBuilds: migrating ================
4044-- 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")
4045 -> 0.0009s
4046== 20190409133320 AddSetUniqueNumberTriggerToBuilds: migrated (0.0010s) =======
4048== 20190409133444 CreateUniqueIndexOnRepositoryIdAndNumberOnBuilds: migrating =
4049-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_builds_repository_id_unique_number ON builds(repository_id, unique_number) WHERE unique_number IS NOT NULL")
4050 -> 0.0037s
4051== 20190409133444 CreateUniqueIndexOnRepositoryIdAndNumberOnBuilds: migrated (0.0037s)
4053== 20190410121039 MakeSetUniqueNumberTriggerRunOnlyOnInsert: migrating ========
4054-- 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")
4055 -> 0.0011s
4056== 20190410121039 MakeSetUniqueNumberTriggerRunOnlyOnInsert: migrated (0.0011s)
4058== 20190416071629 RemoveUniqueNameFromBranches: migrating =====================
4059-- execute("drop index concurrently index_branches_repository_id_unique_name;")
4060 -> 0.0021s
4061-- execute("DROP TRIGGER IF EXISTS set_unique_name_on_branches ON branches;\nDROP FUNCTION IF EXISTS set_unique_name();\n\n")
4062 -> 0.0009s
4063-- remove_column(:branches, :unique_name)
4064 -> 0.0009s
4065== 20190416071629 RemoveUniqueNameFromBranches: migrated (0.0041s) ============
4067== 20190417072423 AlterBuildsUniqueNumberIndex: migrating =====================
4068-- 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")
4069 -> 0.0040s
4070-- execute("DROP INDEX CONCURRENTLY index_builds_repository_id_unique_number")
4071 -> 0.0021s
4072-- execute("ALTER INDEX index_builds_repository_id_unique_number_new RENAME TO index_builds_repository_id_unique_number")
4073 -> 0.0009s
4074== 20190417072423 AlterBuildsUniqueNumberIndex: migrated (0.0070s) ============
4076== 20190417072838 ReinstallSetUniqueNumberTrigger: migrating ==================
4077-- execute("DROP TRIGGER IF EXISTS set_unique_number_on_builds ON builds;\nDROP FUNCTION IF EXISTS set_unique_number();\n")
4078 -> 0.0006s
4079-- 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")
4080 -> 0.0007s
4081== 20190417072838 ReinstallSetUniqueNumberTrigger: migrated (0.0016s) =========
4083== 20190502175059 AddMergeableStateToPullRequests: migrating ==================
4084-- add_column(:pull_requests, :mergeable_state, :string)
4085 -> 0.0007s
4086== 20190502175059 AddMergeableStateToPullRequests: migrated (0.0007s) =========
4088== 20190510121000 AddReposIndexOnLowerOwnerNameAndName: migrating =============
4089-- 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")
4090 -> 0.0037s
4091== 20190510121000 AddReposIndexOnLowerOwnerNameAndName: migrated (0.0037s) ====
4093== 20190605121000 AddHistoryMigrationStatusToRepositories: migrating ==========
4094-- add_column(:repositories, :history_migration_status, :string)
4095 -> 0.0007s
4096== 20190605121000 AddHistoryMigrationStatusToRepositories: migrated (0.0007s) =
4098== 20190605155459 AddPullRequestMergeableToRequests: migrating ================
4099-- add_column(:requests, :pull_request_mergeable, :string)
4100 -> 0.0007s
4101== 20190605155459 AddPullRequestMergeableToRequests: migrated (0.0008s) =======
4103== 20190613120000 SoftDeleteRepositoryAlongWithItsData: migrating =============
4104-- execute("create table if not exists deleted_builds (like builds)")
4105 -> 0.0033s
4106-- execute("create table if not exists deleted_stages (like stages)")
4107 -> 0.0024s
4108-- execute("create table if not exists deleted_jobs (like jobs)")
4109 -> 0.0027s
4110-- execute("create table if not exists deleted_requests (like requests)")
4111 -> 0.0028s
4112-- execute("create table if not exists deleted_commits (like commits)")
4113 -> 0.0025s
4114-- execute("create table if not exists deleted_pull_requests (like pull_requests)")
4115 -> 0.0025s
4116-- execute("create table if not exists deleted_job_configs (like job_configs)")
4117 -> 0.0024s
4118-- execute("create table if not exists deleted_build_configs (like build_configs)")
4119 -> 0.0026s
4120-- execute("create table if not exists deleted_request_configs (like request_configs)")
4121 -> 0.0023s
4122-- execute("create table if not exists deleted_request_payloads (like request_payloads)")
4123 -> 0.0024s
4124-- execute("create table if not exists deleted_ssl_keys (like ssl_keys)")
4125 -> 0.0023s
4126-- execute("create table if not exists deleted_tags (like tags)")
4127 -> 0.0024s
4128-- 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")
4129 -> 0.0015s
4130== 20190613120000 SoftDeleteRepositoryAlongWithItsData: migrated (0.0326s) ====
4132== 20190618082559 AddVcsTypeToUser: migrating =================================
4133-- add_column(:users, :vcs_type, :string, {:default=>nil})
4134 -> 0.0011s
4135-- execute("ALTER TABLE users ALTER COLUMN vcs_type SET DEFAULT 'GithubUser'")
4136 -> 0.0004s
4137-- select_value("SELECT id FROM users ORDER BY id DESC LIMIT 1")
4138 -> 0.0008s
4139-- execute("UPDATE users SET vcs_type = 'GithubUser' WHERE id BETWEEN 0 AND 5000")
4140 -> 0.0007s
4141== 20190618082559 AddVcsTypeToUser: migrated (0.0040s) ========================
4143== 20190701082559 AddVcsTypeToRepository: migrating ===========================
4144-- add_column(:repositories, :vcs_type, :string, {:default=>nil})
4145 -> 0.0009s
4146-- execute("ALTER TABLE repositories ALTER COLUMN vcs_type SET DEFAULT 'GithubRepository'")
4147 -> 0.0004s
4148-- select_value("SELECT id FROM repositories ORDER BY id DESC LIMIT 1")
4149 -> 0.0007s
4150-- execute("UPDATE repositories SET vcs_type = 'GithubRepository' WHERE id BETWEEN 0 AND 5000")
4151 -> 0.0006s
4152== 20190701082559 AddVcsTypeToRepository: migrated (0.0037s) ==================
4154== 20190704082559 AddVcsTypeToOrganization: migrating =========================
4155-- add_column(:organizations, :vcs_type, :string, {:default=>nil})
4156 -> 0.0009s
4157-- execute("ALTER TABLE organizations ALTER COLUMN vcs_type SET DEFAULT 'GithubOrganization'")
4158 -> 0.0004s
4159-- select_value("SELECT id FROM organizations ORDER BY id DESC LIMIT 1")
4160 -> 0.0007s
4161-- execute("UPDATE organizations SET vcs_type = 'GithubOrganization' WHERE id BETWEEN 0 AND 5000")
4162 -> 0.0005s
4163== 20190704082559 AddVcsTypeToOrganization: migrated (0.0035s) ================
4165== 20190718092750 AddDeleteCascadeToForeignKeys: migrating ====================
4166-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4167 -> 0.0010s
4168-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) ON DELETE CASCADE NOT VALID")
4169 -> 0.0007s
4170-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_request_id FOREIGN KEY (request_id) REFERENCES requests(id) ON DELETE CASCADE NOT VALID")
4171 -> 0.0009s
4172-- 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")
4173 -> 0.0007s
4174-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")
4175 -> 0.0007s
4176-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE NOT VALID")
4177 -> 0.0008s
4178-- 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")
4179 -> 0.0007s
4180-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_new_jobs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4181 -> 0.0008s
4182-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_new_jobs_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) ON DELETE CASCADE NOT VALID")
4183 -> 0.0007s
4184-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_new_jobs_on_stage_id FOREIGN KEY (stage_id) REFERENCES stages(id) ON DELETE CASCADE NOT VALID")
4185 -> 0.0007s
4186-- 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")
4187 -> 0.0007s
4188-- execute("ALTER TABLE branches ADD CONSTRAINT fk_new_branches_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4189 -> 0.0045s
4190-- execute("ALTER TABLE tags ADD CONSTRAINT fk_new_tags_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4191 -> 0.0006s
4192-- execute("ALTER TABLE commits ADD CONSTRAINT fk_new_commits_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")
4193 -> 0.0006s
4194-- execute("ALTER TABLE commits ADD CONSTRAINT fk_new_commits_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")
4195 -> 0.0005s
4196-- execute("ALTER TABLE commits ADD CONSTRAINT fk_new_commits_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE NOT VALID")
4197 -> 0.0005s
4198-- execute("ALTER TABLE crons ADD CONSTRAINT fk_new_crons_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")
4199 -> 0.0005s
4200-- 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")
4201 -> 0.0005s
4202-- 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")
4203 -> 0.0006s
4204-- 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")
4205 -> 0.0005s
4206-- 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")
4207 -> 0.0005s
4208-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) ON DELETE CASCADE NOT VALID")
4209 -> 0.0005s
4210-- 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")
4211 -> 0.0005s
4212-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")
4213 -> 0.0006s
4214-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE NOT VALID")
4215 -> 0.0005s
4216-- 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")
4217 -> 0.0009s
4218-- execute("ALTER TABLE stages ADD CONSTRAINT fk_new_stages_on_build_id FOREIGN KEY (build_id) REFERENCES builds(id) ON DELETE CASCADE NOT VALID")
4219 -> 0.0010s
4220-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_repository_id")
4221 -> 0.0014s
4222-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_commit_id")
4223 -> 0.0012s
4224-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_request_id")
4225 -> 0.0012s
4226-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_pull_request_id")
4227 -> 0.0010s
4228-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_branch_id")
4229 -> 0.0010s
4230-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_tag_id")
4231 -> 0.0011s
4232-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_config_id")
4233 -> 0.0009s
4234-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_repository_id")
4235 -> 0.0010s
4236-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_commit_id")
4237 -> 0.0009s
4238-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_stage_id")
4239 -> 0.0009s
4240-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_config_id")
4241 -> 0.0008s
4242-- execute("ALTER TABLE branches VALIDATE CONSTRAINT fk_new_branches_on_repository_id")
4243 -> 0.0008s
4244-- execute("ALTER TABLE tags VALIDATE CONSTRAINT fk_new_tags_on_repository_id")
4245 -> 0.0008s
4246-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_new_commits_on_repository_id")
4247 -> 0.0009s
4248-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_new_commits_on_branch_id")
4249 -> 0.0043s
4250-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_new_commits_on_tag_id")
4251 -> 0.0005s
4252-- execute("ALTER TABLE crons VALIDATE CONSTRAINT fk_new_crons_on_branch_id")
4253 -> 0.0006s
4254-- execute("ALTER TABLE job_configs VALIDATE CONSTRAINT fk_new_job_configs_on_repository_id")
4255 -> 0.0006s
4256-- execute("ALTER TABLE build_configs VALIDATE CONSTRAINT fk_new_build_configs_on_repository_id")
4257 -> 0.0005s
4258-- execute("ALTER TABLE pull_requests VALIDATE CONSTRAINT fk_new_pull_requests_on_repository_id")
4259 -> 0.0006s
4260-- execute("ALTER TABLE ssl_keys VALIDATE CONSTRAINT fk_new_ssl_keys_on_repository_id")
4261 -> 0.0005s
4262-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_commit_id")
4263 -> 0.0008s
4264-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_pull_request_id")
4265 -> 0.0006s
4266-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_branch_id")
4267 -> 0.0005s
4268-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_tag_id")
4269 -> 0.0005s
4270-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_config_id")
4271 -> 0.0005s
4272-- execute("ALTER TABLE stages VALIDATE CONSTRAINT fk_new_stages_on_build_id")
4273 -> 0.0006s
4274-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_repository_id")
4275 -> 0.0007s
4276-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_commit_id")
4277 -> 0.0010s
4278-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_request_id")
4279 -> 0.0009s
4280-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_pull_request_id")
4281 -> 0.0008s
4282-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_branch_id")
4283 -> 0.0009s
4284-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_tag_id")
4285 -> 0.0008s
4286-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_config_id")
4287 -> 0.0008s
4288-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_repository_id")
4289 -> 0.0009s
4290-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_commit_id")
4291 -> 0.0008s
4292-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_stage_id")
4293 -> 0.0008s
4294-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_config_id")
4295 -> 0.0007s
4296-- execute("ALTER TABLE branches DROP CONSTRAINT fk_branches_on_repository_id")
4297 -> 0.0008s
4298-- execute("ALTER TABLE tags DROP CONSTRAINT fk_tags_on_repository_id")
4299 -> 0.0008s
4300-- execute("ALTER TABLE commits DROP CONSTRAINT fk_commits_on_repository_id")
4301 -> 0.0008s
4302-- execute("ALTER TABLE commits DROP CONSTRAINT fk_commits_on_branch_id")
4303 -> 0.0008s
4304-- execute("ALTER TABLE commits DROP CONSTRAINT fk_commits_on_tag_id")
4305 -> 0.0007s
4306-- execute("ALTER TABLE crons DROP CONSTRAINT fk_crons_on_branch_id")
4307 -> 0.0007s
4308-- execute("ALTER TABLE job_configs DROP CONSTRAINT fk_job_configs_on_repository_id")
4309 -> 0.0008s
4310-- execute("ALTER TABLE build_configs DROP CONSTRAINT fk_build_configs_on_repository_id")
4311 -> 0.0008s
4312-- execute("ALTER TABLE pull_requests DROP CONSTRAINT fk_pull_requests_on_repository_id")
4313 -> 0.0008s
4314-- execute("ALTER TABLE ssl_keys DROP CONSTRAINT fk_ssl_keys_on_repository_id")
4315 -> 0.0008s
4316-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_commit_id")
4317 -> 0.0008s
4318-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_pull_request_id")
4319 -> 0.0007s
4320-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_branch_id")
4321 -> 0.0008s
4322-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_tag_id")
4323 -> 0.0008s
4324-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_config_id")
4325 -> 0.0007s
4326-- execute("ALTER TABLE stages DROP CONSTRAINT fk_stages_on_build_id")
4327 -> 0.0006s
4328-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_repository_id TO fk_builds_on_repository_id")
4329 -> 0.0004s
4330-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_commit_id TO fk_builds_on_commit_id")
4331 -> 0.0004s
4332-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_request_id TO fk_builds_on_request_id")
4333 -> 0.0004s
4334-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_pull_request_id TO fk_builds_on_pull_request_id")
4335 -> 0.0004s
4336-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_branch_id TO fk_builds_on_branch_id")
4337 -> 0.0004s
4338-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_tag_id TO fk_builds_on_tag_id")
4339 -> 0.0004s
4340-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_config_id TO fk_builds_on_config_id")
4341 -> 0.0004s
4342-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_repository_id TO fk_jobs_on_repository_id")
4343 -> 0.0003s
4344-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_commit_id TO fk_jobs_on_commit_id")
4345 -> 0.0003s
4346-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_stage_id TO fk_jobs_on_stage_id")
4347 -> 0.0004s
4348-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_config_id TO fk_jobs_on_config_id")
4349 -> 0.0005s
4350-- execute("ALTER TABLE branches RENAME CONSTRAINT fk_new_branches_on_repository_id TO fk_branches_on_repository_id")
4351 -> 0.0003s
4352-- execute("ALTER TABLE tags RENAME CONSTRAINT fk_new_tags_on_repository_id TO fk_tags_on_repository_id")
4353 -> 0.0003s
4354-- execute("ALTER TABLE commits RENAME CONSTRAINT fk_new_commits_on_repository_id TO fk_commits_on_repository_id")
4355 -> 0.0003s
4356-- execute("ALTER TABLE commits RENAME CONSTRAINT fk_new_commits_on_branch_id TO fk_commits_on_branch_id")
4357 -> 0.0003s
4358-- execute("ALTER TABLE commits RENAME CONSTRAINT fk_new_commits_on_tag_id TO fk_commits_on_tag_id")
4359 -> 0.0003s
4360-- execute("ALTER TABLE crons RENAME CONSTRAINT fk_new_crons_on_branch_id TO fk_crons_on_branch_id")
4361 -> 0.0003s
4362-- execute("ALTER TABLE job_configs RENAME CONSTRAINT fk_new_job_configs_on_repository_id TO fk_job_configs_on_repository_id")
4363 -> 0.0003s
4364-- execute("ALTER TABLE build_configs RENAME CONSTRAINT fk_new_build_configs_on_repository_id TO fk_build_configs_on_repository_id")
4365 -> 0.0003s
4366-- execute("ALTER TABLE pull_requests RENAME CONSTRAINT fk_new_pull_requests_on_repository_id TO fk_pull_requests_on_repository_id")
4367 -> 0.0003s
4368-- execute("ALTER TABLE ssl_keys RENAME CONSTRAINT fk_new_ssl_keys_on_repository_id TO fk_ssl_keys_on_repository_id")
4369 -> 0.0003s
4370-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_commit_id TO fk_requests_on_commit_id")
4371 -> 0.0003s
4372-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_pull_request_id TO fk_requests_on_pull_request_id")
4373 -> 0.0004s
4374-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_branch_id TO fk_requests_on_branch_id")
4375 -> 0.0003s
4376-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_tag_id TO fk_requests_on_tag_id")
4377 -> 0.0004s
4378-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_config_id TO fk_requests_on_config_id")
4379 -> 0.0005s
4380-- execute("ALTER TABLE stages RENAME CONSTRAINT fk_new_stages_on_build_id TO fk_stages_on_build_id")
4381 -> 0.0003s
4382== 20190718092750 AddDeleteCascadeToForeignKeys: migrated (0.0804s) ===========
4384== 20190718100426 UpdateSoftDeleteProcedure: migrating ========================
4385-- 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")
4386 -> 0.0017s
4387== 20190718100426 UpdateSoftDeleteProcedure: migrated (0.0019s) ===============
4389== 20190725103113 UpdateSoftDelete: migrating =================================
4390-- execute("create table deleted_request_yaml_configs (like request_yaml_configs)")
4391 -> 0.0026s
4392-- 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")
4393 -> 0.0015s
4394== 20190725103113 UpdateSoftDelete: migrated (0.0044s) ========================
4396== 20190725105934 AddOrgIdToConfigs: migrating ================================
4397-- add_column(:job_configs, :org_id, :bigint)
4398 -> 0.0010s
4399-- add_column(:deleted_job_configs, :org_id, :bigint)
4400 -> 0.0011s
4401-- add_column(:build_configs, :org_id, :bigint)
4402 -> 0.0010s
4403-- add_column(:deleted_build_configs, :org_id, :bigint)
4404 -> 0.0009s
4405-- add_column(:request_configs, :org_id, :bigint)
4406 -> 0.0008s
4407-- add_column(:deleted_request_configs, :org_id, :bigint)
4408 -> 0.0008s
4409-- add_column(:request_yaml_configs, :org_id, :bigint)
4410 -> 0.0008s
4411-- add_column(:deleted_request_yaml_configs, :org_id, :bigint)
4412 -> 0.0009s
4413-- add_column(:request_payloads, :org_id, :bigint)
4414 -> 0.0008s
4415-- add_column(:deleted_request_payloads, :org_id, :bigint)
4416 -> 0.0009s
4417-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_job_configs_on_org_id ON job_configs (org_id)")
4418 -> 0.0036s
4419-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_build_configs_on_org_id ON build_configs (org_id)")
4420 -> 0.0035s
4421-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_configs_on_org_id ON request_configs (org_id)")
4422 -> 0.0032s
4423-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_yaml_configs_on_org_id ON request_yaml_configs (org_id)")
4424 -> 0.0035s
4425-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_payloads_on_org_id ON request_payloads (org_id)")
4426 -> 0.0037s
4427== 20190725105934 AddOrgIdToConfigs: migrated (0.0267s) =======================
4429== 20190729105934 AddOrgAndComIdsToRawConfigs: migrating ======================
4430-- add_column(:request_raw_configs, :org_id, :bigint)
4431 -> 0.0009s
4432-- add_column(:request_raw_configurations, :org_id, :bigint)
4433 -> 0.0010s
4434-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_raw_configs_on_org_id ON request_raw_configs (org_id)")
4435 -> 0.0033s
4436-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_raw_configurations_on_org_id ON request_raw_configurations (org_id)")
4437 -> 0.0031s
4438== 20190729105934 AddOrgAndComIdsToRawConfigs: migrated (0.0086s) =============
4440== 20190801120510 AddMoreDeletedTables: migrating =============================
4441-- execute("create table if not exists deleted_request_raw_configs (like request_raw_configs)")
4442 -> 0.0028s
4443-- execute("create table if not exists deleted_request_raw_configurations (like request_raw_configurations)")
4444 -> 0.0026s
4445-- 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")
4446 -> 0.0020s
4447== 20190801120510 AddMoreDeletedTables: migrated (0.0077s) ====================
4449== 20190815152336 AddComIdToMoreTables: migrating =============================
4450-- add_column(:request_configs, :com_id, :bigint)
4451 -> 0.0010s
4452-- add_column(:request_yaml_configs, :com_id, :bigint)
4453 -> 0.0009s
4454-- add_column(:deleted_request_configs, :com_id, :bigint)
4455 -> 0.0010s
4456-- add_column(:deleted_request_yaml_configs, :com_id, :bigint)
4457 -> 0.0010s
4458-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_configs_on_com_id ON request_configs (com_id)")
4459 -> 0.0033s
4460-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_yaml_configs_on_com_id ON request_yaml_configs (com_id)")
4461 -> 0.0032s
4462== 20190815152336 AddComIdToMoreTables: migrated (0.0108s) ====================
4464== 20190815164320 AddComIdToBuildConfigs: migrating ===========================
4465-- add_column(:build_configs, :com_id, :bigint)
4466 -> 0.0009s
4467-- add_column(:deleted_build_configs, :com_id, :bigint)
4468 -> 0.0010s
4469-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_build_configs_on_com_id ON build_configs (com_id)")
4470 -> 0.0036s
4471== 20190815164320 AddComIdToBuildConfigs: migrated (0.0057s) ==================
4473== 20190815172205 AddComIdToJobConfigs: migrating =============================
4474-- add_column(:job_configs, :com_id, :bigint)
4475 -> 0.0010s
4476-- add_column(:deleted_job_configs, :com_id, :bigint)
4477 -> 0.0010s
4478-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_job_configs_on_com_id ON job_configs (com_id)")
4479 -> 0.0032s
4480== 20190815172205 AddComIdToJobConfigs: migrated (0.0053s) ====================
4482== 20190819082558 AddVcsIdToUser: migrating ===================================
4483-- add_column(:users, :vcs_id, :string, {:default=>nil})
4484 -> 0.0013s
4485-- execute("CREATE INDEX CONCURRENTLY index_users_on_vcs_id_and_vcs_type ON users (vcs_id, vcs_type);")
4486 -> 0.0036s
4487== 20190819082558 AddVcsIdToUser: migrated (0.0050s) ==========================
4489== 20190819082559 AddVcsIdToRepository: migrating =============================
4490-- add_column(:repositories, :vcs_id, :string, {:default=>nil})
4491 -> 0.0015s
4492-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_vcs_id_and_vcs_type ON repositories (vcs_id, vcs_type);")
4493 -> 0.0035s
4494== 20190819082559 AddVcsIdToRepository: migrated (0.0050s) ====================
4496== 20190820082431 AddVcsIdToOrganization: migrating ===========================
4497-- add_column(:organizations, :vcs_id, :string, {:default=>nil})
4498 -> 0.0013s
4499-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_vcs_id_and_vcs_type ON organizations (vcs_id, vcs_type);")
4500 -> 0.0031s
4501== 20190820082431 AddVcsIdToOrganization: migrated (0.0045s) ==================
4503== 20190913092543 CopyVcsIdForRepository: migrating ===========================
4504-- select_value("SELECT id FROM repositories ORDER BY id DESC LIMIT 1")
4505 -> 0.0008s
4506-- execute("UPDATE \"repositories\" SET vcs_id = github_id WHERE id BETWEEN 0 AND 5000")
4507 -> 0.0009s
4508== 20190913092543 CopyVcsIdForRepository: migrated (0.0022s) ==================
4510== 20190913092554 CopyVcsIdForUser: migrating =================================
4511-- select_value("SELECT id FROM users ORDER BY id DESC LIMIT 1")
4512 -> 0.0015s
4513-- execute("UPDATE \"users\" SET vcs_id = github_id WHERE id BETWEEN 0 AND 5000")
4514 -> 0.0016s
4515== 20190913092554 CopyVcsIdForUser: migrated (0.0042s) ========================
4517== 20190913092565 CopyVcsIdForOrganization: migrating =========================
4518-- select_value("SELECT id FROM organizations ORDER BY id DESC LIMIT 1")
4519 -> 0.0009s
4520-- execute("UPDATE \"organizations\" SET vcs_id = github_id WHERE id BETWEEN 0 AND 5000")
4521 -> 0.0008s
4522== 20190913092565 CopyVcsIdForOrganization: migrated (0.0023s) ================
4524== 20190920160300 MessagesAddTypeSourceLine: migrating ========================
4525-- add_column(:messages, :type, :string, {:default=>nil})
4526 -> 0.0014s
4527-- add_column(:messages, :src, :string, {:default=>nil})
4528 -> 0.0015s
4529-- add_column(:messages, :line, :integer, {:default=>nil})
4530 -> 0.0014s
4531== 20190920160300 MessagesAddTypeSourceLine: migrated (0.0045s) ===============
4533== 20191112000000 ReposAddFork: migrating =====================================
4534-- add_column(:repositories, :fork, :boolean, {:default=>nil})
4535 -> 0.0014s
4536== 20191112000000 ReposAddFork: migrated (0.0015s) ============================
4538== 20191112172015 AddVcsIndexToRepositories: migrating ========================
4539-- add_index(:repositories, [:vcs_type, :vcs_id], {:algorithm=>:concurrently})
4540 -> 0.0042s
4541== 20191112172015 AddVcsIndexToRepositories: migrated (0.0043s) ===============
4543== 20191112172332 AddVcsIndexToUsers: migrating ===============================
4544-- add_index(:users, [:vcs_type, :vcs_id], {:algorithm=>:concurrently})
4545 -> 0.0058s
4546== 20191112172332 AddVcsIndexToUsers: migrated (0.0059s) ======================
4548== 20191219091445 AddHeadRepoVcsIdToPullRequest: migrating ====================
4549-- add_column(:pull_requests, :head_repo_vcs_id, :string, {:default=>nil})
4550 -> 0.0015s
4551-- execute("CREATE INDEX CONCURRENTLY index_pull_requests_on_head_repo_vcs_id ON pull_requests (head_repo_vcs_id);")
4552 -> 0.0035s
4553== 20191219091445 AddHeadRepoVcsIdToPullRequest: migrated (0.0051s) ===========
4555== 20191219091446 AddHeadRepoVcsIdToDeletedPullRequest: migrating =============
4556-- add_column(:deleted_pull_requests, :head_repo_vcs_id, :string, {:default=>nil})
4557 -> 0.0014s
4558-- execute("CREATE INDEX CONCURRENTLY index_deleted_pull_requests_on_head_repo_vcs_id ON deleted_pull_requests (head_repo_vcs_id);")
4559 -> 0.0034s
4560== 20191219091446 AddHeadRepoVcsIdToDeletedPullRequest: migrated (0.0049s) ====
4562== 20200122000000 AddConfigsJson: migrating ===================================
4563-- add_column(:request_configs, :config_json, :json)
4564 -> 0.0009s
4565-- add_column(:build_configs, :config_json, :json)
4566 -> 0.0006s
4567-- add_column(:job_configs, :config_json, :json)
4568 -> 0.0006s
4569-- add_column(:deleted_request_configs, :config_json, :json)
4570 -> 0.0006s
4571-- add_column(:deleted_build_configs, :config_json, :json)
4572 -> 0.0006s
4573-- add_column(:deleted_job_configs, :config_json, :json)
4574 -> 0.0006s
4575== 20200122000000 AddConfigsJson: migrated (0.0040s) ==========================
4577== 20200127000000 DropJobConfigsGpu: migrating ================================
4578-- execute("DROP MATERIALIZED VIEW job_configs_gpu\n")
4579 -> 0.0010s
4580== 20200127000000 DropJobConfigsGpu: migrated (0.0010s) =======================
4582== 20200127000001 RenameConfigsJson: migrating ================================
4583-- remove_column(:request_configs, :config)
4584 -> 0.0008s
4585-- rename_column(:request_configs, :config_json, :config)
4586 -> 0.0035s
4587-- remove_column(:build_configs, :config)
4588 -> 0.0005s
4589-- rename_column(:build_configs, :config_json, :config)
4590 -> 0.0034s
4591-- remove_column(:job_configs, :config)
4592 -> 0.0006s
4593-- rename_column(:job_configs, :config_json, :config)
4594 -> 0.0033s
4595-- remove_column(:deleted_request_configs, :config)
4596 -> 0.0005s
4597-- rename_column(:deleted_request_configs, :config_json, :config)
4598 -> 0.0013s
4599-- remove_column(:deleted_build_configs, :config)
4600 -> 0.0005s
4601-- rename_column(:deleted_build_configs, :config_json, :config)
4602 -> 0.0012s
4603-- remove_column(:deleted_job_configs, :config)
4604 -> 0.0005s
4605-- rename_column(:deleted_job_configs, :config_json, :config)
4606 -> 0.0012s
4607== 20200127000001 RenameConfigsJson: migrated (0.0181s) =======================
4609== 20200214144655 AddIndexToJobVersionsOnJobId: migrating =====================
4610-- add_index(:job_versions, :job_id, {:algorithm=>:concurrently})
4611 -> 0.0039s
4612== 20200214144655 AddIndexToJobVersionsOnJobId: migrated (0.0040s) ============
4614== 20200225085734 AddVcsSlugToRepository: migrating ===========================
4615-- add_column(:repositories, :vcs_slug, :string, {:default=>nil})
4616 -> 0.0014s
4617== 20200225085734 AddVcsSlugToRepository: migrated (0.0015s) ==================
4619== 20200227085734 AddVcsSourceHostToRepository: migrating =====================
4620-- add_column(:repositories, :vcs_source_host, :string, {:default=>nil})
4621 -> 0.0015s
4622== 20200227085734 AddVcsSourceHostToRepository: migrated (0.0016s) ============
4624== 20200227085736 AddVcsIndexes: migrating ====================================
4625-- 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")
4626 -> 0.0041s
4627== 20200227085736 AddVcsIndexes: migrated (0.0042s) ===========================
4629== 20200227085737 AddRepositoryNameAndSlugIndex: migrating ====================
4630-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_slug_or_names ON repositories (vcs_slug, owner_name, name) WHERE invalidated_at IS NULL")
4631 -> 0.0037s
4632== 20200227085737 AddRepositoryNameAndSlugIndex: migrated (0.0038s) ===========
4634== 20200227085742 AddPullRequestSourceData: migrating =========================
4635-- add_column(:pull_requests, :base_repo_slug, :string, {:default=>nil})
4636 -> 0.0014s
4637-- add_column(:pull_requests, :base_repo_vcs_id, :string, {:default=>nil})
4638 -> 0.0013s
4639-- add_column(:pull_requests, :base_ref, :string, {:default=>nil})
4640 -> 0.0014s
4641-- add_column(:deleted_pull_requests, :base_repo_slug, :string, {:default=>nil})
4642 -> 0.0013s
4643-- add_column(:deleted_pull_requests, :base_repo_vcs_id, :string, {:default=>nil})
4644 -> 0.0013s
4645-- add_column(:deleted_pull_requests, :base_ref, :string, {:default=>nil})
4646 -> 0.0014s
4647== 20200227085742 AddPullRequestSourceData: migrated (0.0084s) ================
4649== 20200312184018 AddUserUtmParamsTable: migrating ============================
4650-- create_table(:user_utm_params)
4651 -> 0.0074s
4652== 20200312184018 AddUserUtmParamsTable: migrated (0.0075s) ===================
4654== 20200316085738 AddRepositoryVcsSlugIndex: migrating ========================
4655-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_vcs_slug ON repositories (LOWER(vcs_slug))")
4656 -> 0.0037s
4657-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_vcs_slug_valid ON repositories (LOWER(vcs_slug)) WHERE invalidated_at IS NULL")
4658 -> 0.0031s
4659== 20200316085738 AddRepositoryVcsSlugIndex: migrated (0.0070s) ===============
4661== 20200325115329 AddMultipleJobStateIndexesOrderByNewest: migrating ==========
4662-- 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'")
4663 -> 0.0035s
4664-- 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'")
4665 -> 0.0035s
4666-- 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'")
4667 -> 0.0036s
4668-- 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'")
4669 -> 0.0035s
4670-- 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'")
4671 -> 0.0036s
4672-- 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'")
4673 -> 0.0039s
4674-- 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'")
4675 -> 0.0038s
4676-- 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'")
4677 -> 0.0038s
4678-- 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'")
4679 -> 0.0032s
4680== 20200325115329 AddMultipleJobStateIndexesOrderByNewest: migrated (0.0326s) =
4682== 20200325130013 AddFunctionMostRecentJobIdsForUserRepositoriesByStates: migrating
4683-- 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 ")
4684 -> 0.0012s
4685== 20200325130013 AddFunctionMostRecentJobIdsForUserRepositoriesByStates: migrated (0.0013s)
4687== 20200330110527 AddFunctionMostRecentJobIdsForRepositoryByState: migrating ==
4688-- 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 ")
4689 -> 0.0008s
4690== 20200330110527 AddFunctionMostRecentJobIdsForRepositoryByState: migrated (0.0008s)
4692== 20200406121218 AddIndexJobsOnRepositoryIdOrderByNewest: migrating ==========
4693-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc)")
4694 -> 0.0036s
4695== 20200406121218 AddIndexJobsOnRepositoryIdOrderByNewest: migrated (0.0036s) =
4697== 20200424000000 RequestRawConfigurationsAddMergeMode: migrating =============
4698-- add_column(:request_raw_configurations, :merge_mode, :string, {:default=>nil})
4699 -> 0.0013s
4700-- add_column(:deleted_request_raw_configurations, :merge_mode, :string, {:default=>nil})
4701 -> 0.0012s
4702== 20200424000000 RequestRawConfigurationsAddMergeMode: migrated (0.0026s) ====
4704== 20200527123653 AddColumnPriorityToTableJobsAndDeletedJobs: migrating =======
4705-- add_column(:jobs, :priority, :integer, {:default=>nil})
4706 -> 0.0012s
4707-- add_column(:deleted_jobs, :priority, :integer, {:default=>nil})
4708 -> 0.0022s
4709== 20200527123653 AddColumnPriorityToTableJobsAndDeletedJobs: migrated (0.0035s)
4711== 20200928143126 AddBuildTriggerPermissions: migrating =======================
4712-- add_column(:memberships, :build_permission, :boolean, {:default=>nil})
4713 -> 0.0009s
4714-- add_column(:permissions, :build, :boolean, {:default=>nil})
4715 -> 0.0009s
4716== 20200928143126 AddBuildTriggerPermissions: migrated (0.0018s) ==============
4718== 20202427123653 AddColumnHasLocalRegistrationToTableSubscriptions: migrating
4719-- add_column(:subscriptions, :has_local_registration, :boolean, {:default=>nil})
4720 -> 0.0012s
4721== 20202427123653 AddColumnHasLocalRegistrationToTableSubscriptions: migrated (0.0012s)
4723== 20210203130200 CreateBuildBackupsTable: migrating ==========================
4724-- create_table(:build_backups, {:id=>:integer})
4725 -> 0.0058s
4726== 20210203130200 CreateBuildBackupsTable: migrated (0.0059s) =================
4728== 20210203143155 AddConfirmationFieldsToUser: migrating ======================
4729-- add_column(:users, :confirmed_at, :timestamp, {:precision=>nil})
4730 -> 0.0010s
4731-- add_column(:users, :token_expires_at, :timestamp, {:precision=>nil})
4732 -> 0.0010s
4733-- add_column(:users, :confirmation_token, :string)
4734 -> 0.0010s
4735-- add_index(:users, :confirmation_token)
4736 -> 0.0025s
4737== 20210203143155 AddConfirmationFieldsToUser: migrated (0.0058s) =============
4739== 20210203143406 ConfirmCurrentUsers: migrating ==============================
4740== 20210203143406 ConfirmCurrentUsers: migrated (0.0000s) =====================
4742== 20210614140633 AddServerTypeToRepositories: migrating ======================
4743-- add_column(:repositories, :server_type, :string, {:limit=>20})
4744 -> 0.0010s
4745== 20210614140633 AddServerTypeToRepositories: migrated (0.0010s) =============
4747== 20220610092916 MostRecentJobIdsForUserRepositoriesByStatesLw: migrating ====
4748-- 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 ")
4749 -> 0.0010s
4750== 20220610092916 MostRecentJobIdsForUserRepositoriesByStatesLw: migrated (0.0011s)
4752== 20220621151453 AddColumnRestartedByToTableJobs: migrating ==================
4753-- add_column(:jobs, :restarted_by, :integer, {:default=>nil})
4754 -> 0.0010s
4755-- add_column(:deleted_jobs, :restarted_by, :integer, {:default=>nil})
4756 -> 0.0010s
4757== 20220621151453 AddColumnRestartedByToTableJobs: migrated (0.0021s) =========
4759== 20220722162400 CreateAuditsTable: migrating ================================
4760-- create_table(:audits)
4761 -> 0.0056s
4762== 20220722162400 CreateAuditsTable: migrated (0.0057s) =======================
4764== 20220825140522 CreateCustomKeysTable: migrating ============================
4765-- create_table(:custom_keys)
4766 -> 0.0059s
4767== 20220825140522 CreateCustomKeysTable: migrated (0.0059s) ===================
4769== 20220905144600 AddScanFailedAtToRepositories: migrating ====================
4770-- add_column(:repositories, :scan_failed_at, :timestamp)
4771 -> 0.0008s
4772== 20220905144600 AddScanFailedAtToRepositories: migrated (0.0008s) ===========
4774== 20221214171030 AddPurposeColumnToTokens: migrating =========================
4775-- add_column(:tokens, :purpose, :integer, {:limit=>4, :default=>0})
4776 -> 0.0013s
4777== 20221214171030 AddPurposeColumnToTokens: migrated (0.0014s) ================
4779== 20230208161446 AddCloneUrlToRepositories: migrating ========================
4780-- add_column(:repositories, :clone_url, :string)
4781 -> 0.0007s
4782== 20230208161446 AddCloneUrlToRepositories: migrated (0.0008s) ===============
4784== 20230505055250 RolifyCreateRoles: migrating ================================
4785-- create_table(:roles)
4786 -> 0.0078s
4787-- create_table(:role_names)
4788 -> 0.0054s
4789-- create_table(:users_roles, {:id=>false})
4790 -> 0.0060s
4791-- add_index(:roles, :name)
4792 -> 0.0019s
4793-- add_index(:role_names, :name)
4794 -> 0.0019s
4795-- add_index(:roles, [:name, :resource_type, :resource_id])
4796 -> 0.0018s
4797-- add_index(:users_roles, [:user_id, :role_id])
4798 -> 0.0017s
4799== 20230505055250 RolifyCreateRoles: migrated (0.0268s) =======================
4801== 20230505060110 CreatePolicies: migrating ===================================
4802-- create_table(:policy_permissions)
4803 -> 0.0052s
4804-- create_table(:role_permissions, {:id=>false})
4805 -> 0.0044s
4806-- add_index(:policy_permissions, :name)
4807 -> 0.0017s
4808-- add_index(:role_permissions, [:role_name_id, :policy_permission_id])
4809 -> 0.0017s
4810== 20230505060110 CreatePolicies: migrated (0.0131s) ==========================
4812== 20230713115855 CreatePermissionsSync: migrating ============================
4813-- create_table(:permissions_syncs)
4814 -> 0.0086s
4815== 20230713115855 CreatePermissionsSync: migrated (0.0086s) ===================
4817== 20231005111642 CreatePermissionsIndex: migrating ===========================
4818-- add_index(:permissions_syncs, [:user_id, :resource_type, :resource_id], {:name=>"index_permissions_syncs_on_user_and_resource"})
4819 -> 0.0020s
4820-- add_index(:role_names, :role_type)
4821 -> 0.0016s
4822== 20231005111642 CreatePermissionsIndex: migrated (0.0037s) ==================
4824== 20240823085523 AddVmsizeToJobs: migrating ==================================
4825-- add_column(:jobs, :vm_size, :string)
4826 -> 0.0008s
4827-- add_column(:deleted_jobs, :vm_size, :string)
4828 -> 0.0004s
4829== 20240823085523 AddVmsizeToJobs: migrated (0.0012s) =========================
4831== 20240925205714 AddExpiresInToTokens: migrating =============================
4832-- add_column(:tokens, :expires_in, :integer)
4833 -> 0.0007s
4834== 20240925205714 AddExpiresInToTokens: migrated (0.0007s) ====================
4836 sets unique_number on INSERT
4837 does not set unique_number on INSERT if 0 is given as a value
4838 sets unique_number on UPDATE
4839 does not set unique_number on UPDATE if unique_number is 0
4841set_updated_at trigger
4842 jobs
4843 sets updated_at on INSERT
4844 sets updated_at on UPDATE
4845 works also for new columns
4846 builds
4847 sets updated_at on INSERT
4848 sets updated_at on UPDATE
4849 works also for new columns
4851soft delete repo
4852 ensure that soft delete tables have the same fields that the originals
4853 soft deleting a repo moves all of the related data to deleted_* tables
4855Rake tasks
4856 rake db:create
4857 migrates the main db
4858 rake db:schema:load
4859 loads the main schema
4861Deprecation Warnings:
4863Using `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)>'.
4866If you need more of the backtrace for any of these deprecations to
4867identify where to make the necessary changes, you can configure
4868`config.raise_errors_for_deprecations!`, and it will turn the
4869deprecation warnings into errors, giving you the full backtrace.
48711 deprecation warning total
4873Finished in 36.76 seconds (files took 0.34326 seconds to load)
487419 examples, 0 failures
4876The command "bundle exec rspec spec" exited with 0.
cache.2
4877store build cache
48780.00s1.39snothing changed
after_success
48800.18s$ script/upload_structure.rb
4881<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)
4882 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'
4883 from script/upload_structure.rb:5:in `<main>'
4885Done. Your build exited with 0.
Top