Pull request event #3653 passed

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