AMD64
Ruby: 3.2.2
Git
Scroll to End of Log
0.00s0.20s0.12s0.06s0.00sTopworker_info1Worker information2hostname: ec49fe01-53c7-4cad-af6a-3457f73a9ac0@1.worker-n2-com-f8c4bb956-zjhwc.gce-production-13version: deploy_2024.10.02-2-gc32b553 https://github.com/travis-ci/worker/tree/c32b553e81363378d09787f52103ea9bcadf253c4instance: travis-job-4d40488c-d5e1-49ab-8edc-c5a1960aeb63 travis-ci-ubuntu-2004-1726220016-655c8cb5 (via amqp)5startup: 5.685178651ssystem_info7Build system information8Build language: ruby9Build dist: focal10Build id: 27398512311Job id: 63003297012Runtime kernel version: 5.15.0-1068-gcp13VM: default14travis-build version: 6b157a1c15Build image provisioning date and time16Fri 13 Sep 2024 09:58:48 AM UTC17Operating System Details18Distributor ID: Ubuntu19Description: Ubuntu 20.04.6 LTS20Release: 20.0421Codename: focal22Systemd Version23systemd 245 (245.4-4ubuntu3.23)24Cookbooks Version2539734fe https://github.com/travis-ci/travis-cookbooks/tree/39734fe26git version27git version 2.46.028bash version29GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)30gcc version31gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.032docker version33Client:34 Version: 24.0.735 API version: 1.4336 Go version: go1.21.137 Git commit: 24.0.7-0ubuntu2~20.04.138 Built: Wed Mar 13 20:29:24 202439 OS/Arch: linux/amd6440 Context: default42Server:43 Engine:44 Version: 24.0.745 API version: 1.43 (minimum version 1.12)46 Go version: go1.21.147 Git commit: 24.0.7-0ubuntu2~20.04.148 Built: Wed Mar 13 20:29:24 202449 OS/Arch: linux/amd6450 Experimental: false51 containerd:52 Version: 1.7.1253 GitCommit:54 runc:55 Version: 1.1.12-0ubuntu2~20.04.156 GitCommit:57 docker-init:58 Version: 0.19.059 GitCommit:60clang version61clang version 18.1.862jq version63jq-1.7.164bats version65Bats 1.11.066shellcheck version670.10.068shfmt version69v3.8.070ccache version713.7.772cmake version73cmake version 3.29.074heroku version75heroku/9.2.1 linux-x64 node-v16.20.276imagemagick version77Version: ImageMagick 6.9.10-23 Q16 x86_64 20190101 https://imagemagick.org78md5deep version794.480mercurial version81version 6.5.282mysql version83mysql Ver 8.0.39-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))84openssl version85OpenSSL 1.1.1f 31 Mar 202086packer version87Packer v1.11.288postgresql client version89psql (PostgreSQL) 13.16 (Ubuntu 13.16-1.pgdg20.04+1)90ragel version91Ragel State Machine Compiler version 6.10 March 201792sudo version931.8.3194gzip version95gzip 1.1096zip version97Zip 3.098vim version99VIM - Vi IMproved 8.1 (2018 May 18, compiled Sep 04 2024 03:11:27)100iptables version101iptables v1.8.4 (legacy)102curl version103curl 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.3104wget version105GNU Wget 1.20.3 built on linux-gnu.106rsync version107rsync version 3.1.3 protocol version 31108gimme version109v1.5.4110nvm version1110.40.1112perlbrew version113/home/travis/perl5/perlbrew/bin/perlbrew - App::perlbrew/0.95114phpenv version115rbenv 1.3.0116rvm version117rvm 1.29.12 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]118default ruby version119ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [x86_64-linux]120default python version121Python 3.7.17122ElasticSearch version1237.16.3124Installed Firefox version125firefox 99.0126MongoDB version127MongoDB 4.4.29128PhantomJS version1292.1.1130Redis version131redis-server 7.4.0132Pre-installed Go versions1331.23.0134mvn version135Apache Maven 3.9.4 (dfbb324ad4a7c8fb0bf182e6d91b0ae20e3d2dd9)136gradle version137Gradle 8.3!138lein version139Leiningen 2.11.2 on Java 11.0.21 OpenJDK 64-Bit Server VM140Pre-installed Node.js versions141v10.24.1142v12.22.12143v14.21.3144v16.15145v16.20.2146v18.20.3147v18.20.4148v20.17.0149v4.9.1150v6.17.1151v8.17.0152phpenv versions153 system154 7.4155* 7.4.6 (set by /home/travis/.phpenv/version)156 hhvm-stable157 hhvm158composer --version159Composer version 1.10.6 2020-05-06 10:28:10160Pre-installed Ruby versions161ruby-2.7.6162ruby-3.3.51650.00s0.05s0.00s0.02s0.18s0.00s0.00s0.00s0.02s0.00s0.18s0.00s1.05s0.00s0.13s6.03s0.00s4.10s0.00s2.31sdocker_mtu_and_registry_mirrorsDockerresolvconfapt166Adding APT Sources168OK1690.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/null171Installing APT Packages172PostgreSQL package is detected. Stopping postgresql service. See https://github.com/travis-ci/travis-ci/issues/5737 for more information.173$ sudo systemctl stop postgresql17414.80s$ sudo -E apt-get -yq --no-install-suggests --no-install-recommends $(travis_apt_get_options) install postgresql-11 postgresql-client-11175Reading package lists...176Building dependency tree...177Reading state information...178The following packages were automatically installed and are no longer required:179 amd64-microcode intel-microcode iucode-tool libglu1-mesa180 libjs-jquery-metadata libjs-jquery-tablesorter libnotify4 libwxbase3.0-0v5181 libwxgtk3.0-gtk3-0v5 linux-modules-5.4.0-195-generic postgresql-client-12182Use 'sudo apt autoremove' to remove them.183Suggested packages:184 postgresql-doc-11185Recommended packages:186 sysstat187The following NEW packages will be installed:188 postgresql-11 postgresql-client-111890 upgraded, 2 newly installed, 0 to remove and 129 not upgraded.190Need to get 15.8 MB of archives.191After this operation, 54.1 MB of additional disk space will be used.192Get:1 http://apt.postgresql.org/pub/repos/apt focal-pgdg/main amd64 postgresql-client-11 amd64 11.22-9.pgdg20.04+1 [1,495 kB]193Get:2 http://apt.postgresql.org/pub/repos/apt focal-pgdg/main amd64 postgresql-11 amd64 11.22-9.pgdg20.04+1 [14.3 MB]194Preconfiguring packages ...195Fetched 15.8 MB in 2s (7,872 kB/s)196Selecting previously unselected package postgresql-client-11.197(Reading database ... 154608 files and directories currently installed.)198Preparing to unpack .../postgresql-client-11_11.22-9.pgdg20.04+1_amd64.deb ...199Unpacking postgresql-client-11 (11.22-9.pgdg20.04+1) ...200Selecting previously unselected package postgresql-11.201Preparing to unpack .../postgresql-11_11.22-9.pgdg20.04+1_amd64.deb ...202Unpacking postgresql-11 (11.22-9.pgdg20.04+1) ...203Setting up postgresql-client-11 (11.22-9.pgdg20.04+1) ...204Setting up postgresql-11 (11.22-9.pgdg20.04+1) ...205Creating new PostgreSQL cluster 11/main ...206/usr/lib/postgresql/11/bin/initdb -D /var/lib/postgresql/11/main --auth-local peer --auth-host md5207The files belonging to this database system will be owned by user "postgres".208This user must also own the server process.210The database cluster will be initialized with locale "en_US.UTF-8".211The default database encoding has accordingly been set to "UTF8".212The default text search configuration will be set to "english".214Data page checksums are disabled.216fixing permissions on existing directory /var/lib/postgresql/11/main ... ok217creating subdirectories ... ok218selecting default max_connections ... 100219selecting default shared_buffers ... 128MB220selecting default timezone ... UTC221selecting dynamic shared memory implementation ... posix222creating configuration files ... ok223running bootstrap script ... ok224performing post-bootstrap initialization ... ok225syncing data to disk ... ok227Success. You can now start the database server using:229 pg_ctlcluster 11 main start231Processing triggers for postgresql-common (262.pgdg20.04+1) ...232Building PostgreSQL dictionaries from installed myspell/hunspell packages...233Removing obsolete dictionary files:2343.01sservicesgit.checkout2390.01s0.56s$ git clone --depth=50 --branch=master https://github.com/travis-ci/travis-migrations.git travis-ci/travis-migrations240Cloning into 'travis-ci/travis-migrations'...241$ cd travis-ci/travis-migrations242$ git checkout -qf eceffad5926ead66098e9b887658be1e5b59c9ce2440.01s245Setting environment variables from repository settings246$ export QUAY_ROBOT_HANDLE=[secure]247$ export QUAY_ROBOT_TOKEN=[secure]248$ export ARTIFACTS_BUCKET=travis-migrations-structure-dumps249$ export ARTIFACTS_SECRET=[secure]250$ export ARTIFACTS_KEY=[secure]rvm253Downloading https://get.rvm.io254Downloading https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer.asc255Verifying /home/travis/.rvm/archives/rvm-installer.asc256gpg: Signature made Tue 21 Feb 2023 11:35:16 PM UTC257gpg: using RSA key 7D2BAF1CF37B13E2069D6956105BD0E739499BDB258gpg: Good signature from "Piotr Kuczynski <piotr.kuczynski@gmail.com>" [unknown]259gpg: WARNING: This key is not certified with a trusted signature!260gpg: There is no indication that the signature belongs to the owner.261Primary key fingerprint: 7D2B AF1C F37B 13E2 069D 6956 105B D0E7 3949 9BDB262GPG verified '/home/travis/.rvm/archives/rvm-installer'263Downloading https://github.com/rvm/rvm/archive/master.tar.gz264Upgrading the RVM installation in /home/travis/.rvm/265 RVM PATH line found in /home/travis/.mkshrc /home/travis/.profile /home/travis/.zshrc.266 RVM PATH line not found for Bash, rerun this command with '--auto-dotfiles' flag to fix it.267 RVM sourcing line found in /home/travis/.profile /home/travis/.bashrc /home/travis/.zlogin.268Upgrade of RVM in /home/travis/.rvm/ is complete.270<warn>Thanks for installing RVM 🙏</warn>271Please consider donating to our open collective to help us maintain RVM.273👉 Donate: <code>https://opencollective.com/rvm/donate</code>276RVM reloaded!278curl: (22) The requested URL returned error: 404279Required ruby-3.2.2 is not installed - installing.280curl: (22) The requested URL returned error: 404281Searching for binary rubies, this might take some time.282Found remote file https://rubies.travis-ci.org/ubuntu/20.04/x86_64/ruby-3.2.2.tar.bz2283Checking requirements for ubuntu.284Requirements installation successful.285ruby-3.2.2 - #configure286ruby-3.2.2 - #download287 % Total % Received % Xferd Average Speed Time Time Time Current288 Dload Upload Total Spent Left Speed289 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0290curl: (60) SSL certificate problem: certificate has expired291More details here: https://curl.haxx.se/docs/sslcerts.html293curl failed to verify the legitimacy of the server and therefore could not294establish a secure connection to it. To learn more about this situation and295how to fix it, please visit the web page mentioned above.296/home/travis/.rvm/scripts/fetch: line 104: log: command not found297Checking fallback: ftp://rubies.travis-ci.org/ubuntu/20.04/x86_64/ruby-3.2.2.tar.bz2?rvm=1.29.12-next298Checking fallback: https://www.mirrorservice.org/sites/rubies.travis-ci.org/ubuntu/20.04/x86_64/ruby-3.2.2.tar.bz2?rvm=1.29.12-next299No fallback URL could be found, try increasing timeout with:301 echo "export rvm_max_time_flag=20" >> ~/.rvmrc303Downloading https://rubies.travis-ci.org/ubuntu/20.04/x86_64/ruby-3.2.2.tar.bz2 failed.304Mounting remote ruby failed with status 2, stopping installation.305Checking requirements for ubuntu.306Requirements installation successful.307curl: (22) The requested URL returned error: 404308Installing Ruby from source to: /home/travis/.rvm/rubies/ruby-3.2.2, this may take a while depending on your cpu(s)...309curl: (22) The requested URL returned error: 404310ruby-3.2.2 - #downloading ruby-3.2.2, this may take a while depending on your connection...311 % Total % Received % Xferd Average Speed Time Time Time Current312 Dload Upload Total Spent Left Speed313100 19.5M 100 19.5M 0 0 81.3M 0 --:--:-- --:--:-- --:--:-- 81.3M316ruby-3.2.2 - #configuring.............................................................................318ruby-3.2.2 - #compiling..................................................................................................321Installed rubygems 3.4.10 is newer than 3.0.9 provided with installed ruby, skipping installation, use --force to force installation.322ruby-3.2.2 - #gemset created /home/travis/.rvm/gems/ruby-3.2.2@global323ruby-3.2.2 - #importing gemset /home/travis/.rvm/gemsets/global.gems................................................................326ruby-3.2.2 - #gemset created /home/travis/.rvm/gems/ruby-3.2.2329ruby-3.2.2 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).330Install of ruby-3.2.2 - #complete331Ruby was built without documentation, to build it run: rvm docs generate-ri332Using /home/travis/.rvm/gems/ruby-3.2.2334$ export BUNDLE_GEMFILE=$PWD/Gemfilecache.1335Setting up build cache336$ export CASHER_DIR=${TRAVIS_HOME}/.casher339fetching master/cache--linux-focal-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855--rvm-3.2.2--gemfile-Gemfile.tgz340found cache342creating directory /home/travis/build/travis-ci/travis-migrations/vendor/bundleruby.versions345$ ruby --version346ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]347$ rvm --version348rvm 1.29.12-next (master) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]349$ bundle --version350Bundler version 2.4.10351$ gem --version3523.4.10before_install.1355Updating rubygems-update356Successfully installed rubygems-update-3.6.3357Installing RubyGems 3.6.3358 Successfully built RubyGem359 Name: bundler360 Version: 2.6.3361 File: bundler-2.6.3.gem362Bundler 2.6.3 installed363RubyGems 3.6.3 installed364Regenerating binstubs365Regenerating plugins367# 3.6.3 / 2025-01-16369## Enhancements:371* Add credentials file path to `gem env`. Pull request372 [#8375](https://github.com/rubygems/rubygems/pull/8375) by duckinator373* Update SPDX license list as of 2024-12-30. Pull request374 [#8387](https://github.com/rubygems/rubygems/pull/8387) by375 github-actions[bot]376* Installs bundler 2.6.3 as a default gem.378## Bug fixes:380* Fix `@licenses` array unmarshalling. Pull request381 [#8411](https://github.com/rubygems/rubygems/pull/8411) by rykov383# 3.6.2 / 2024-12-23385## Security:387* Fix Gem::SafeMarshal buffer overrun when given lengths larger than fit388 into a byte. Pull request389 [#8305](https://github.com/rubygems/rubygems/pull/8305) by segiddins390* Improve type checking in marshal_load methods. Pull request391 [#8306](https://github.com/rubygems/rubygems/pull/8306) by segiddins393## Enhancements:395* Skip rdoc hooks and their tests on newer rdoc versions. Pull request396 [#8340](https://github.com/rubygems/rubygems/pull/8340) by397 deivid-rodriguez398* Installs bundler 2.6.2 as a default gem.400## Bug fixes:402* Fix serialized metadata including an empty `@original_platform`403 attribute. Pull request404 [#8355](https://github.com/rubygems/rubygems/pull/8355) by405 deivid-rodriguez407# 3.6.1 / 2024-12-17409## Enhancements:411* Installs bundler 2.6.1 as a default gem.413## Bug fixes:415* Fix `gem info` tagging some non default gems as default. Pull request416 [#8321](https://github.com/rubygems/rubygems/pull/8321) by417 deivid-rodriguez419## Documentation:421* Fix broken links. Pull request422 [#8327](https://github.com/rubygems/rubygems/pull/8327) by st0012424# 3.6.0 / 2024-12-16426## Security:428* Stop storing executable names in ivars. Pull request429 [#8307](https://github.com/rubygems/rubygems/pull/8307) by segiddins431## Breaking changes:433* Drop ruby 3.0 support. Pull request434 [#8091](https://github.com/rubygems/rubygems/pull/8091) by segiddins436## Features:438* Add --attestation option to gem push. Pull request439 [#8239](https://github.com/rubygems/rubygems/pull/8239) by segiddins441## Enhancements:443* Skip unresolved deps warning on `Gem::Specification.reset` on benign444 cases. Pull request445 [#8309](https://github.com/rubygems/rubygems/pull/8309) by446 deivid-rodriguez447* Let `gem install <name>` suggest `<name>-ruby` and `ruby-<name>` when448 providing "did you mean" suggestions. Pull request449 [#8197](https://github.com/rubygems/rubygems/pull/8197) by duckinator450* Update SPDX license list as of 2024-08-19. Pull request451 [#8233](https://github.com/rubygems/rubygems/pull/8233) by452 github-actions[bot]453* Add `--target-rbconfig` option to `gem install` and `gem update`454 commands. Pull request455 [#7628](https://github.com/rubygems/rubygems/pull/7628) by kateinoigakukun456* Skip nil-value keys to make metadata reproducible. Pull request457 [#7129](https://github.com/rubygems/rubygems/pull/7129) by nobu458* Allow disabling installation of compiled extensions into lib through459 `Gem.configuration.install_extension_in_lib`. Pull request460 [#6463](https://github.com/rubygems/rubygems/pull/6463) by hsbt461* Installs bundler 2.6.0 as a default gem.463## Bug fixes:465* Set $0 to exe when running `gem exec` to fix name in CLI output. Pull466 request [#8267](https://github.com/rubygems/rubygems/pull/8267) by adam12467* Fix manifest in gem package using incorrect platform sometimes. Pull468 request [#8202](https://github.com/rubygems/rubygems/pull/8202) by469 deivid-rodriguez471## Documentation:473* Fix missing single quote in git source example. Pull request474 [#8303](https://github.com/rubygems/rubygems/pull/8303) by nobu475* Update the `gem install` demo in REAME to use a gem that just works on476 Windows. Pull request477 [#8262](https://github.com/rubygems/rubygems/pull/8262) by soda92478* Unify rubygems and bundler docs directory. Pull request479 [#8159](https://github.com/rubygems/rubygems/pull/8159) by hsbt481# 3.5.23 / 2024-11-05483## Enhancements:485* Validate user input encoding of `gem` CLI arguments. Pull request486 [#6471](https://github.com/rubygems/rubygems/pull/6471) by487 deivid-rodriguez488* Fix `gem update --system` leaving old default bundler executables489 around. Pull request490 [#8172](https://github.com/rubygems/rubygems/pull/8172) by491 deivid-rodriguez492* Installs bundler 2.5.23 as a default gem.494## Bug fixes:496* Fix commands with 2 MFA requests when webauthn is enabled. Pull request497 [#8174](https://github.com/rubygems/rubygems/pull/8174) by498 deivid-rodriguez499* Make `--enable-load-relative` binstubs prolog work when Ruby is not500 installed in the same directory as the binstub. Pull request501 [#7872](https://github.com/rubygems/rubygems/pull/7872) by502 deivid-rodriguez504## Performance:506* Speed up `gem install <nonexistent-gem>` by finding alternative name507 suggestions faster. Pull request508 [#8084](https://github.com/rubygems/rubygems/pull/8084) by duckinator510## Documentation:512* Add missing comma in documentation. Pull request513 [#8152](https://github.com/rubygems/rubygems/pull/8152) by leoarnold515# 3.5.22 / 2024-10-16517## Enhancements:519* Prevent `._*` files in packages generated from macOS. Pull request520 [#8150](https://github.com/rubygems/rubygems/pull/8150) by521 deivid-rodriguez522* Fix `gem pristine etc` resetting gem twice sometimes. Pull request523 [#8117](https://github.com/rubygems/rubygems/pull/8117) by524 deivid-rodriguez525* Allow `gem pristine` to reset default gems too. Pull request526 [#8118](https://github.com/rubygems/rubygems/pull/8118) by527 deivid-rodriguez528* Update vendored `uri` and `net-http`. Pull request529 [#8112](https://github.com/rubygems/rubygems/pull/8112) by segiddins530* Installs bundler 2.5.22 as a default gem.532## Bug fixes:534* Fix `gem contents` for default gems. Pull request535 [#8132](https://github.com/rubygems/rubygems/pull/8132) by536 deivid-rodriguez537* Fix duplicated specs when they have been previously activated. Pull538 request [#8131](https://github.com/rubygems/rubygems/pull/8131) by539 deivid-rodriguez540* Fix `gem install` on NFS shares. Pull request541 [#8123](https://github.com/rubygems/rubygems/pull/8123) by542 deivid-rodriguez543* Fix a `gem install` crash during "done installing" hooks. Pull request544 [#8113](https://github.com/rubygems/rubygems/pull/8113) by545 deivid-rodriguez546* Fix plugin command loading. Pull request547 [#8121](https://github.com/rubygems/rubygems/pull/8121) by548 deivid-rodriguez550# 3.5.21 / 2024-10-03552## Enhancements:554* Fix `Gem::MissingSpecVersionError#to_s` not showing exception message.555 Pull request [#8074](https://github.com/rubygems/rubygems/pull/8074) by556 deivid-rodriguez557* Remove code that makes suggest_gems_from_name give worse results. Pull558 request [#8083](https://github.com/rubygems/rubygems/pull/8083) by559 duckinator560* Warning about PATH in `--user-install` mode is only necessary for gems561 with executables. Pull request562 [#8071](https://github.com/rubygems/rubygems/pull/8071) by563 deivid-rodriguez564* Installs bundler 2.5.21 as a default gem.566## Bug fixes:568* Fix error in one source when fetching dependency APIs clearing results569 from all sources. Pull request570 [#8080](https://github.com/rubygems/rubygems/pull/8080) by571 deivid-rodriguez572* Fix `gem cleanup` warning when two versions of psych installed. Pull573 request [#8072](https://github.com/rubygems/rubygems/pull/8072) by574 deivid-rodriguez576# 3.5.20 / 2024-09-24578## Enhancements:580* Installs bundler 2.5.20 as a default gem.582# 3.5.19 / 2024-09-18584## Enhancements:586* Standardize pretty-print output for `Gem::Source` and subclasses. Pull587 request [#7994](https://github.com/rubygems/rubygems/pull/7994) by588 djberube589* Update vendored `molinillo` to master and vendored `resolv` to 0.4.0.590 Pull request [#7521](https://github.com/rubygems/rubygems/pull/7521) by591 hsbt592* Installs bundler 2.5.19 as a default gem.594## Bug fixes:596* Fix `bundle exec rake install` failing when local gem has extensions.597 Pull request [#7977](https://github.com/rubygems/rubygems/pull/7977) by598 deivid-rodriguez599* Make `gem exec` use the standard GEM_HOME. Pull request600 [#7982](https://github.com/rubygems/rubygems/pull/7982) by601 deivid-rodriguez602* Fix `gem fetch` always exiting with zero status code. Pull request603 [#8007](https://github.com/rubygems/rubygems/pull/8007) by604 deivid-rodriguez605* Remove temporary `.lock` files unintentionally left around by gem606 installer. Pull request607 [#7939](https://github.com/rubygems/rubygems/pull/7939) by nobu608* Removed unused stringio. Pull request609 [#8001](https://github.com/rubygems/rubygems/pull/8001) by hsbt610* Avoid another race condition of open mode. Pull request611 [#7931](https://github.com/rubygems/rubygems/pull/7931) by nobu612* Fix `@license` typo preventing licenses from being correctly613 unmarshalled. Pull request614 [#7975](https://github.com/rubygems/rubygems/pull/7975) by djberube616## Performance:618* Fix `gem install does-not-exist` being super slow. Pull request619 [#8006](https://github.com/rubygems/rubygems/pull/8006) by620 deivid-rodriguez622# 3.5.18 / 2024-08-26624## Enhancements:626* Installs bundler 2.5.18 as a default gem.628## Bug fixes:630* Fix `gem uninstall <name>:<version>` failing on shadowed default gems.631 Pull request [#7949](https://github.com/rubygems/rubygems/pull/7949) by632 deivid-rodriguez634# 3.5.17 / 2024-08-01636## Enhancements:638* Explicitly encode `Gem::Dependency` to yaml. Pull request639 [#7867](https://github.com/rubygems/rubygems/pull/7867) by segiddins640* Installs bundler 2.5.17 as a default gem.642## Bug fixes:644* Fix `gem list` regression when a regular gem shadows a default one. Pull645 request [#7892](https://github.com/rubygems/rubygems/pull/7892) by646 deivid-rodriguez647* Always leave default gem executables around. Pull request648 [#7879](https://github.com/rubygems/rubygems/pull/7879) by649 deivid-rodriguez650* Fix line comment issue for hash when loading gemrc. Pull request651 [#7857](https://github.com/rubygems/rubygems/pull/7857) by leetking653# 3.5.16 / 2024-07-18655## Enhancements:657* Installs bundler 2.5.16 as a default gem.659## Bug fixes:661* Fix gemspec `require_paths` validation. Pull request662 [#7866](https://github.com/rubygems/rubygems/pull/7866) by663 deivid-rodriguez664* Fix loading of nested `gemrc` config keys when specified as symbols.665 Pull request [#7851](https://github.com/rubygems/rubygems/pull/7851) by666 moofkit668## Performance:670* Use `caller_locations` instead of splitting `caller`. Pull request671 [#7708](https://github.com/rubygems/rubygems/pull/7708) by nobu673# 3.5.15 / 2024-07-09675## Enhancements:677* Installs bundler 2.5.15 as a default gem.679## Bug fixes:681* Restrict generic `arm` to only match 32-bit arm. Pull request682 [#7830](https://github.com/rubygems/rubygems/pull/7830) by ntkme683* Protect creating binstubs with a file lock. Pull request684 [#7806](https://github.com/rubygems/rubygems/pull/7806) by685 deivid-rodriguez687## Documentation:689* Make it clearer that `add_dependency` is the main way to add690 non-development dependencies. Pull request691 [#7800](https://github.com/rubygems/rubygems/pull/7800) by jeromedalbert693# 3.5.14 / 2024-06-21695## Enhancements:697* Installs bundler 2.5.14 as a default gem.699## Bug fixes:701* Make "bundler? update --bundler" behave identically. Pull request702 [#7778](https://github.com/rubygems/rubygems/pull/7778) by x-yuri704# 3.5.13 / 2024-06-14706## Enhancements:708* Installs bundler 2.5.13 as a default gem.710## Bug fixes:712* Never remove executables that may belong to a default gem. Pull request713 [#7747](https://github.com/rubygems/rubygems/pull/7747) by714 deivid-rodriguez716# 3.5.12 / 2024-06-13718## Enhancements:720* Installs bundler 2.5.12 as a default gem.722## Bug fixes:724* Fix `gem uninstall` unresolved specifications warning. Pull request725 [#7667](https://github.com/rubygems/rubygems/pull/7667) by726 deivid-rodriguez727* Fix `gem pristine` sometimes failing to pristine user installed gems.728 Pull request [#7664](https://github.com/rubygems/rubygems/pull/7664) by729 deivid-rodriguez731# 3.5.11 / 2024-05-28733## Enhancements:735* Update SPDX license list as of 2024-05-22. Pull request736 [#7689](https://github.com/rubygems/rubygems/pull/7689) by737 github-actions[bot]738* Fix the update_rubygems inconsistency (--disable-gems). Pull request739 [#7658](https://github.com/rubygems/rubygems/pull/7658) by x-yuri740* Accept WASI as an OS name in Gem::Platform. Pull request741 [#7629](https://github.com/rubygems/rubygems/pull/7629) by kateinoigakukun742* Warn if RubyGems version explicitly set in gemspec does not match743 running version. Pull request744 [#7460](https://github.com/rubygems/rubygems/pull/7460) by745 deivid-rodriguez746* Installs bundler 2.5.11 as a default gem.748## Bug fixes:750* Fix binstubs sometimes not getting regenerated when `--destdir` is751 given. Pull request752 [#7660](https://github.com/rubygems/rubygems/pull/7660) by753 deivid-rodriguez754* Fix `gem uninstall --user-install` for symlinked HOME. Pull request755 [#7645](https://github.com/rubygems/rubygems/pull/7645) by756 deivid-rodriguez757* Fix issue when plugin stubs would sometimes not be properly removed by758 `gem uninstall`. Pull request759 [#7631](https://github.com/rubygems/rubygems/pull/7631) by760 deivid-rodriguez761* Fix plugins uninstallation for user installed gems. Pull request762 [#6456](https://github.com/rubygems/rubygems/pull/6456) by voxik764## Performance:766* Use a constant empty tar header to avoid extra allocations. Pull request767 [#7484](https://github.com/rubygems/rubygems/pull/7484) by segiddins769## Documentation:771* Recommend `bin/rake` over `rake` in contributing docs. Pull request772 [#7648](https://github.com/rubygems/rubygems/pull/7648) by773 deivid-rodriguez775# 3.5.10 / 2024-05-03777## Security:779* Add a limit to the size of the metadata and checksums files in a gem780 package. Pull request781 [#7568](https://github.com/rubygems/rubygems/pull/7568) by segiddins783## Enhancements:785* Don't fully require `rubygems` from `rubygems/package` to prevent some786 circular require warnings when using Bundler. Pull request787 [#7612](https://github.com/rubygems/rubygems/pull/7612) by788 deivid-rodriguez789* Installs bundler 2.5.10 as a default gem.791## Bug fixes:793* Rename credential email to identifier in WebAuthn poller. Pull request794 [#7623](https://github.com/rubygems/rubygems/pull/7623) by jenshenny796# 3.5.9 / 2024-04-12798## Enhancements:800* Installs bundler 2.5.9 as a default gem.802# 3.5.8 / 2024-04-11804## Security:806* Respect global umask when writing regular files. Pull request807 [#7518](https://github.com/rubygems/rubygems/pull/7518) by808 deivid-rodriguez810## Enhancements:812* Allow string keys with gemrc. Pull request813 [#7543](https://github.com/rubygems/rubygems/pull/7543) by hsbt814* [Experimental] Add "gem rebuild" command. Pull request815 [#4913](https://github.com/rubygems/rubygems/pull/4913) by duckinator816* Installs bundler 2.5.8 as a default gem.818## Bug fixes:820* Fix NoMethodError crash when building errors about corrupt package821 files. Pull request822 [#7539](https://github.com/rubygems/rubygems/pull/7539) by jez823* Fix resolver to properly intersect Arrays of `Gem::Resolver::Activation`824 objects. Pull request825 [#7537](https://github.com/rubygems/rubygems/pull/7537) by826 deivid-rodriguez828# 3.5.7 / 2024-03-22830## Enhancements:832* Warn on empty or open required_ruby_version specification attribute.833 Pull request [#5010](https://github.com/rubygems/rubygems/pull/5010) by834 simi835* Control whether YAML aliases are enabled in Gem::SafeYAML.safe_load via836 attribute. Pull request837 [#7464](https://github.com/rubygems/rubygems/pull/7464) by segiddins838* Update SPDX license list as of 2024-02-08. Pull request839 [#7468](https://github.com/rubygems/rubygems/pull/7468) by840 github-actions[bot]841* Installs bundler 2.5.7 as a default gem.843## Bug fixes:845* Allow prerelease activation (even if requirement is not explicit about846 it) when it's the only possibility. Pull request847 [#7428](https://github.com/rubygems/rubygems/pull/7428) by kimesf849## Documentation:851* Fix a typo. Pull request852 [#7505](https://github.com/rubygems/rubygems/pull/7505) by hsbt853* Use https instead of http in documentation links. Pull request854 [#7481](https://github.com/rubygems/rubygems/pull/7481) by hsbt856# 3.5.6 / 2024-02-06858## Enhancements:860* Deep copy requirements in `Gem::Specification` and `Gem::Requirement`.861 Pull request [#7439](https://github.com/rubygems/rubygems/pull/7439) by862 flavorjones863* Change gem login message to clear up that username can be also used.864 Pull request [#7422](https://github.com/rubygems/rubygems/pull/7422) by865 VitaliySerov866* Add metadata for rubygems.org. Pull request867 [#7435](https://github.com/rubygems/rubygems/pull/7435) by m-nakamura145868* Improve gem login scope selection. Pull request869 [#7342](https://github.com/rubygems/rubygems/pull/7342) by williantenfen870* Vendor uri in RubyGems. Pull request871 [#7386](https://github.com/rubygems/rubygems/pull/7386) by872 deivid-rodriguez873* Installs bundler 2.5.6 as a default gem.875## Bug fixes:877* Skip to load commented out words. Pull request878 [#7413](https://github.com/rubygems/rubygems/pull/7413) by hsbt879* Fix rake runtime dependency warning for rake based extension. Pull880 request [#7395](https://github.com/rubygems/rubygems/pull/7395) by ntkme882# 3.5.5 / 2024-01-18884## Enhancements:886* Installs bundler 2.5.5 as a default gem.888## Bug fixes:890* Fix `require` activation conflicts when requiring default gems under891 some situations. Pull request892 [#7379](https://github.com/rubygems/rubygems/pull/7379) by893 deivid-rodriguez894* Use cache_home instead of data_home in default_spec_cache_dir. Pull895 request [#7331](https://github.com/rubygems/rubygems/pull/7331) by mrkn897## Documentation:899* Use squiggly heredocs in `Gem::Specification#description` documentation,900 so it doesn't add leading whitespace. Pull request901 [#7373](https://github.com/rubygems/rubygems/pull/7373) by bravehager903# 3.5.4 / 2024-01-04905## Enhancements:907* Always avoid "Updating rubygems-update" message. Pull request908 [#7335](https://github.com/rubygems/rubygems/pull/7335) by909 deivid-rodriguez910* Installs bundler 2.5.4 as a default gem.912## Bug fixes:914* Make `gem update --system` respect ruby version constraints. Pull915 request [#7334](https://github.com/rubygems/rubygems/pull/7334) by916 deivid-rodriguez918# 3.5.3 / 2023-12-22920## Enhancements:922* Installs bundler 2.5.3 as a default gem.924# 3.5.2 / 2023-12-21926## Enhancements:928* Support dynamic library loading with extension .so or .o. Pull request929 [#7241](https://github.com/rubygems/rubygems/pull/7241) by hogelog930* Installs bundler 2.5.2 as a default gem.932## Performance:934* Replace `object_id` comparison with identity Hash. Pull request935 [#7303](https://github.com/rubygems/rubygems/pull/7303) by amomchilov936* Use IO.copy_stream when reading, writing. Pull request937 [#6958](https://github.com/rubygems/rubygems/pull/6958) by martinemde939# 3.5.1 / 2023-12-15941## Enhancements:943* Installs bundler 2.5.1 as a default gem.945# 3.5.0 / 2023-12-15947## Security:949* Replace `Marshal.load` with a fully-checked safe gemspec loader. Pull950 request [#6896](https://github.com/rubygems/rubygems/pull/6896) by951 segiddins953## Breaking changes:955* Drop ruby 2.6 and 2.7 support. Pull request956 [#7116](https://github.com/rubygems/rubygems/pull/7116) by957 deivid-rodriguez958* Release package no longer includes test files. Pull request959 [#6781](https://github.com/rubygems/rubygems/pull/6781) by hsbt960* Hide `Gem::MockGemUi` from users. Pull request961 [#6623](https://github.com/rubygems/rubygems/pull/6623) by hsbt962* Deprecated `Gem.datadir` has been removed. Pull request963 [#6469](https://github.com/rubygems/rubygems/pull/6469) by hsbt965## Deprecations:967* Deprecate `Gem::Platform.match?`. Pull request968 [#6783](https://github.com/rubygems/rubygems/pull/6783) by hsbt969* Deprecate `Gem::List`. Pull request970 [#6311](https://github.com/rubygems/rubygems/pull/6311) by segiddins972## Features:974* The `generate_index` command can now generate compact index files and975 lives as an external `rubygems-generate_index` gem. Pull request976 [#7085](https://github.com/rubygems/rubygems/pull/7085) by segiddins977* Make `gem install` fallback to user installation directory if default978 gem home is not writable. Pull request979 [#5327](https://github.com/rubygems/rubygems/pull/5327) by duckinator980* Leverage ruby feature to warn when requiring default gems from stdlib981 that will be turned into bundled gems in the future. Pull request982 [#6840](https://github.com/rubygems/rubygems/pull/6840) by hsbt984## Performance:986* Use match? when regexp match data is unused. Pull request987 [#7263](https://github.com/rubygems/rubygems/pull/7263) by segiddins988* Fewer allocations in gem installation. Pull request989 [#6975](https://github.com/rubygems/rubygems/pull/6975) by segiddins990* Optimize allocations in `Gem::Version`. Pull request991 [#6970](https://github.com/rubygems/rubygems/pull/6970) by segiddins993## Enhancements:995* Warn for duplicate meta data links when building gems. Pull request996 [#7213](https://github.com/rubygems/rubygems/pull/7213) by etherbob997* Vendor `net-http`, `net-protocol`, `resolv`, and `timeout` to reduce998 conflicts between Gemfile gems and internal dependencies. Pull request999 [#6793](https://github.com/rubygems/rubygems/pull/6793) by1000 deivid-rodriguez1001* Remove non-transparent requirement added to prerelease gems. Pull1002 request [#7226](https://github.com/rubygems/rubygems/pull/7226) by1003 deivid-rodriguez1004* Stream output from ext builds when --verbose. Pull request1005 [#7240](https://github.com/rubygems/rubygems/pull/7240) by osyoyu1006* Add missing services to CI detection and make it consistent between1007 RubyGems and Bundler. Pull request1008 [#7205](https://github.com/rubygems/rubygems/pull/7205) by nevinera1009* Update generate licenses template to not freeze regexps. Pull request1010 [#7154](https://github.com/rubygems/rubygems/pull/7154) by1011 github-actions[bot]1012* Don't check `LIBRUBY_RELATIVE` in truffleruby to signal a bash prelude1013 in rubygems binstubs. Pull request1014 [#7156](https://github.com/rubygems/rubygems/pull/7156) by1015 deivid-rodriguez1016* Update SPDX list and warn on deprecated identifiers. Pull request1017 [#6926](https://github.com/rubygems/rubygems/pull/6926) by simi1018* Simplify extended `require` to potentially fix some deadlocks. Pull1019 request [#6827](https://github.com/rubygems/rubygems/pull/6827) by nobu1020* Small refactors for `Gem::Resolver`. Pull request1021 [#6766](https://github.com/rubygems/rubygems/pull/6766) by hsbt1022* Use double-quotes instead of single-quotes consistently in warnings.1023 Pull request [#6550](https://github.com/rubygems/rubygems/pull/6550) by1024 hsbt1025* Add debug message for `nil` version gemspec. Pull request1026 [#6436](https://github.com/rubygems/rubygems/pull/6436) by hsbt1027* Installs bundler 2.5.0 as a default gem.1029## Bug fixes:1031* Fix installing from source with same default bundler version already1032 installed. Pull request1033 [#7244](https://github.com/rubygems/rubygems/pull/7244) by1034 deivid-rodriguez1036## Documentation:1038* Improve comment explaining the necessity of `write_default_spec` method.1039 Pull request [#6563](https://github.com/rubygems/rubygems/pull/6563) by1040 voxik1042# 3.4.22 / 2023-11-091044## Enhancements:1046* Update SPDX license list as of 2023-10-05. Pull request1047 [#7040](https://github.com/rubygems/rubygems/pull/7040) by1048 github-actions[bot]1049* Remove unnecessary rescue. Pull request1050 [#7109](https://github.com/rubygems/rubygems/pull/7109) by1051 deivid-rodriguez1052* Installs bundler 2.4.22 as a default gem.1054## Bug fixes:1056* Handle empty array at built-in YAML serializer. Pull request1057 [#7099](https://github.com/rubygems/rubygems/pull/7099) by hsbt1058* Ignore non-tar format `.gem` files during search. Pull request1059 [#7095](https://github.com/rubygems/rubygems/pull/7095) by dearblue1060* Allow explicitly uninstalling multiple versions of same gem. Pull1061 request [#7063](https://github.com/rubygems/rubygems/pull/7063) by1062 kstevens7151064## Performance:1066* Avoid regexp match on every call to `Gem::Platform.local`. Pull request1067 [#7104](https://github.com/rubygems/rubygems/pull/7104) by segiddins1069## Documentation:1071* Get `Gem::Specification#extensions_dir` documented. Pull request1072 [#6218](https://github.com/rubygems/rubygems/pull/6218) by1073 deivid-rodriguez1075# 3.4.21 / 2023-10-171077## Enhancements:1079* Abort `setup.rb` if Ruby is too old. Pull request1080 [#7011](https://github.com/rubygems/rubygems/pull/7011) by1081 deivid-rodriguez1082* Remove usage of Dir.chdir that only execute a subprocess. Pull request1083 [#6930](https://github.com/rubygems/rubygems/pull/6930) by segiddins1084* Freeze more strings in generated gemspecs. Pull request1085 [#6974](https://github.com/rubygems/rubygems/pull/6974) by segiddins1086* Use pure-ruby YAML parser for loading configuration at RubyGems. Pull1087 request [#6615](https://github.com/rubygems/rubygems/pull/6615) by hsbt1088* Installs bundler 2.4.21 as a default gem.1090## Documentation:1092* Update suggested variable for bindir. Pull request1093 [#7028](https://github.com/rubygems/rubygems/pull/7028) by hsbt1094* Fix invalid links in documentation. Pull request1095 [#7008](https://github.com/rubygems/rubygems/pull/7008) by simi1097# 3.4.20 / 2023-09-271099## Enhancements:1101* Raise `Gem::Package::FormatError` when gem encounters corrupt EOF.1102 Pull request [#6882](https://github.com/rubygems/rubygems/pull/6882)1103 by martinemde1104* Allow skipping empty license `gem build` warning by setting license to1105 `nil`. Pull request1106 [#6879](https://github.com/rubygems/rubygems/pull/6879) by jhong971107* Update SPDX license list as of 2023-06-18. Pull request1108 [#6891](https://github.com/rubygems/rubygems/pull/6891) by1109 github-actions[bot]1110* Update SPDX license list as of 2023-04-28. Pull request1111 [#6642](https://github.com/rubygems/rubygems/pull/6642) by segiddins1112* Update SPDX license list as of 2023-01-26. Pull request1113 [#6310](https://github.com/rubygems/rubygems/pull/6310) by segiddins1114* Installs bundler 2.4.20 as a default gem.1116## Bug fixes:1118* Fixed false positive SymlinkError in symbolic link directory. Pull1119 request [#6947](https://github.com/rubygems/rubygems/pull/6947) by1120 negi01091121* Ensure that loading multiple gemspecs with legacy YAML class references1122 does not warn. Pull request1123 [#6889](https://github.com/rubygems/rubygems/pull/6889) by segiddins1124* Fix NoMethodError when choosing a too big number from `gem uni` list.1125 Pull request [#6901](https://github.com/rubygems/rubygems/pull/6901) by1126 amatsuda1128## Performance:1130* Reduce allocations for stub specifications. Pull request1131 [#6972](https://github.com/rubygems/rubygems/pull/6972) by segiddins1133# 3.4.19 / 2023-08-171135## Enhancements:1137* Installs bundler 2.4.19 as a default gem.1139## Performance:1141* Speedup building docs when updating rubygems. Pull request1142 [#6864](https://github.com/rubygems/rubygems/pull/6864) by1143 deivid-rodriguez1145# 3.4.18 / 2023-08-021147## Enhancements:1149* Add poller to fetch WebAuthn OTP. Pull request1150 [#6774](https://github.com/rubygems/rubygems/pull/6774) by jenshenny1151* Remove side effects when unmarshaling old `Gem::Specification`. Pull1152 request [#6825](https://github.com/rubygems/rubygems/pull/6825) by nobu1153* Ship rubygems executables in `exe` folder. Pull request1154 [#6704](https://github.com/rubygems/rubygems/pull/6704) by hsbt1155* Installs bundler 2.4.18 as a default gem.1157# 3.4.17 / 2023-07-141159## Enhancements:1161* Installs bundler 2.4.17 as a default gem.1163## Performance:1165* Avoid unnecessary work for private local gem installation. Pull request1166 [#6810](https://github.com/rubygems/rubygems/pull/6810) by1167 deivid-rodriguez1169# 3.4.16 / 2023-07-101171## Enhancements:1173* Installs bundler 2.4.16 as a default gem.1175# 3.4.15 / 2023-06-291177## Enhancements:1179* Installs bundler 2.4.15 as a default gem.1181## Bug fixes:1183* Autoload shellwords when it's needed. Pull request1184 [#6734](https://github.com/rubygems/rubygems/pull/6734) by ioquatix1186## Documentation:1188* Update command to test local gem command changes. Pull request1189 [#6761](https://github.com/rubygems/rubygems/pull/6761) by jenshenny1191# 3.4.14 / 2023-06-121193## Enhancements:1195* Load plugin immediately. Pull request1196 [#6673](https://github.com/rubygems/rubygems/pull/6673) by kou1197* Installs bundler 2.4.14 as a default gem.1199## Documentation:1201* Clarify what the `rubygems-update` gem is for, and link to source code1202 and guides. Pull request1203 [#6710](https://github.com/rubygems/rubygems/pull/6710) by davetron50001205# 3.4.13 / 2023-05-091207## Enhancements:1209* Installs bundler 2.4.13 as a default gem.1211# 3.4.12 / 2023-04-111213## Enhancements:1215* [Experimental] Add WebAuthn Support to the CLI. Pull request1216 [#6560](https://github.com/rubygems/rubygems/pull/6560) by jenshenny1217* Installs bundler 2.4.12 as a default gem.1219# 3.4.11 / 2023-04-101221## Enhancements:1223* Installs bundler 2.4.11 as a default gem.1226------------------------------------------------------------------------------1228RubyGems installed the following executables:1229 /home/travis/.rvm/rubies/ruby-3.2.2/bin/gem1230 /home/travis/.rvm/rubies/ruby-3.2.2/bin/bundle1231 /home/travis/.rvm/rubies/ruby-3.2.2/bin/bundler1233RubyGems system software updatedbefore_install.212340.02s$ sudo sed -i -e '/local.*peer/s/postgres/all/' -e 's/peer\|md5/trust/g' /etc/postgresql/11/main/pg_hba.confbefore_install.3before_install.4install.bundler1238[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 flag1239Bundler 2.6.3 is running, but your lockfile was generated with 2.4.14. Installing Bundler 2.4.14 and restarting using that version.1240Fetching gem metadata from https://rubygems.org/.1241Fetching bundler 2.4.141242Installing bundler 2.4.141243[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 flag1244Using rake 13.0.61245Using concurrent-ruby 1.2.21246Using i18n 1.14.11247Using minitest 5.18.11248Using tzinfo 2.0.61249Using activesupport 7.0.61250Using builder 3.2.41251Using erubi 1.12.01252Using racc 1.7.11253Using nokogiri 1.15.2 (x86_64-linux)1254Using rails-dom-testing 2.1.11255Using crass 1.0.61256Using loofah 2.21.31257Using rails-html-sanitizer 1.6.01258Using actionview 7.0.61259Using rack 2.2.71260Using rack-test 2.1.01261Using actionpack 7.0.61262Using nio4r 2.5.91263Using websocket-extensions 0.1.51264Using websocket-driver 0.7.51265Using actioncable 7.0.61266Using globalid 1.1.01267Using activejob 7.0.61268Using activemodel 7.0.61269Using activerecord 7.0.61270Using marcel 1.0.21271Using mini_mime 1.1.21272Using activestorage 7.0.61273Using date 3.3.31274Using timeout 0.4.01275Using net-protocol 0.2.11276Using net-imap 0.3.61277Using net-pop 0.1.21278Using net-smtp 0.3.31279Using mail 2.8.11280Using actionmailbox 7.0.61281Using actionmailer 7.0.61282Using actiontext 7.0.61283Using ansi 1.5.01284Using ast 2.4.21285Using aws-eventstream 1.2.01286Using aws-partitions 1.783.01287Using aws-sigv4 1.6.01288Using jmespath 1.6.21289Using aws-sdk-core 3.176.11290Using aws-sdk-kms 1.68.01291Using aws-sdk-s3 1.127.01292Using bundler 2.4.141293Using colored 1.21294Using diff-lcs 1.5.01295Using docile 1.4.01296Using json 2.6.31297Using language_server-protocol 3.17.0.31298Using method_source 1.0.01299Using parallel 1.23.01300Using parser 3.2.2.31301Using pg 1.5.31302Using thor 1.2.21303Using zeitwerk 2.6.81304Using railties 7.0.61305Using rails 7.0.61306Using rainbow 3.1.11307Using rake-notes 0.2.21308Using regexp_parser 2.8.11309Using rexml 3.2.51310Using routes 0.2.01311Using rspec-support 3.12.11312Using rspec-core 3.12.21313Using rspec-expectations 3.12.31314Using rspec-mocks 3.12.51315Using rspec 3.12.01316Using rubocop-ast 1.29.01317Using ruby-progressbar 1.13.01318Using unicode-display_width 2.4.21319Using rubocop 1.54.11320Using rubocop-capybara 2.18.01321Using rubocop-factory_bot 2.23.11322Using rubocop-performance 1.18.01323Using rubocop-rspec 2.22.01324Using simplecov-html 0.12.31325Using simplecov_json_formatter 0.1.41326Using simplecov 0.22.01327Using terminal-table 3.0.21328Using simplecov-console 0.9.11329Bundle complete! 12 Gemfile dependencies, 85 gems now installed.1330Bundled gems are installed into `./vendor/bundle`before_script.313361.33s$ curl -fs https://raw.githubusercontent.com/travis-ci/travis-migrations/master/db/main/structure.sql | psql -v ON_ERROR_STOP=1 travis_test1337SET1338SET1339SET1340SET1341SET1342 set_config1343------------1345(1 row)1347SET1348SET1349SET1350SET1351CREATE EXTENSION1352COMMENT1353CREATE EXTENSION1354COMMENT1355CREATE TYPE1356CREATE FUNCTION1357CREATE FUNCTION1358CREATE FUNCTION1359CREATE FUNCTION1360CREATE FUNCTION1361CREATE FUNCTION1362CREATE FUNCTION1363CREATE FUNCTION1364CREATE FUNCTION1365CREATE FUNCTION1366CREATE FUNCTION1367CREATE FUNCTION1368CREATE FUNCTION1369CREATE FUNCTION1370CREATE FUNCTION1371CREATE FUNCTION1372CREATE FUNCTION1373CREATE FUNCTION1374CREATE FUNCTION1375CREATE FUNCTION1376CREATE FUNCTION1377CREATE FUNCTION1378CREATE FUNCTION1379CREATE FUNCTION1380CREATE FUNCTION1381CREATE FUNCTION1382CREATE FUNCTION1383CREATE FUNCTION1384CREATE FUNCTION1385CREATE FUNCTION1386SET1387CREATE TABLE1388CREATE SEQUENCE1389ALTER SEQUENCE1390CREATE TABLE1391CREATE TABLE1392CREATE SEQUENCE1393ALTER SEQUENCE1394CREATE TABLE1395CREATE SEQUENCE1396ALTER SEQUENCE1397CREATE TABLE1398CREATE SEQUENCE1399ALTER SEQUENCE1400CREATE TABLE1401CREATE SEQUENCE1402ALTER SEQUENCE1403CREATE TABLE1404CREATE SEQUENCE1405ALTER SEQUENCE1406CREATE TABLE1407CREATE SEQUENCE1408ALTER SEQUENCE1409CREATE TABLE1410CREATE SEQUENCE1411ALTER SEQUENCE1412CREATE SEQUENCE1413CREATE TABLE1414CREATE SEQUENCE1415ALTER SEQUENCE1416CREATE TABLE1417CREATE SEQUENCE1418ALTER SEQUENCE1419CREATE TABLE1420CREATE SEQUENCE1421ALTER SEQUENCE1422CREATE TABLE1423CREATE SEQUENCE1424ALTER SEQUENCE1425CREATE TABLE1426CREATE SEQUENCE1427ALTER SEQUENCE1428CREATE TABLE1429CREATE SEQUENCE1430ALTER SEQUENCE1431CREATE TABLE1432CREATE TABLE1433CREATE TABLE1434CREATE TABLE1435CREATE TABLE1436CREATE TABLE1437CREATE TABLE1438CREATE TABLE1439CREATE TABLE1440CREATE TABLE1441CREATE TABLE1442CREATE TABLE1443CREATE TABLE1444CREATE TABLE1445CREATE TABLE1446CREATE TABLE1447CREATE SEQUENCE1448ALTER SEQUENCE1449CREATE TABLE1450CREATE SEQUENCE1451ALTER SEQUENCE1452CREATE TABLE1453CREATE TABLE1454CREATE SEQUENCE1455ALTER SEQUENCE1456CREATE TABLE1457CREATE SEQUENCE1458ALTER SEQUENCE1459CREATE TABLE1460CREATE SEQUENCE1461ALTER SEQUENCE1462CREATE TABLE1463CREATE SEQUENCE1464ALTER SEQUENCE1465CREATE TABLE1466CREATE SEQUENCE1467ALTER SEQUENCE1468CREATE TABLE1469CREATE SEQUENCE1470ALTER SEQUENCE1471CREATE TABLE1472CREATE SEQUENCE1473ALTER SEQUENCE1474CREATE TABLE1475CREATE SEQUENCE1476ALTER SEQUENCE1477CREATE TABLE1478CREATE SEQUENCE1479ALTER SEQUENCE1480CREATE TABLE1481CREATE SEQUENCE1482ALTER SEQUENCE1483CREATE TABLE1484CREATE SEQUENCE1485ALTER SEQUENCE1486CREATE TABLE1487CREATE SEQUENCE1488ALTER SEQUENCE1489CREATE TABLE1490CREATE SEQUENCE1491ALTER SEQUENCE1492CREATE TABLE1493CREATE SEQUENCE1494ALTER SEQUENCE1495CREATE TABLE1496CREATE SEQUENCE1497ALTER SEQUENCE1498CREATE TABLE1499CREATE TABLE1500CREATE SEQUENCE1501ALTER SEQUENCE1502CREATE TABLE1503CREATE SEQUENCE1504ALTER SEQUENCE1505CREATE TABLE1506CREATE SEQUENCE1507ALTER SEQUENCE1508CREATE TABLE1509CREATE SEQUENCE1510ALTER SEQUENCE1511CREATE TABLE1512CREATE SEQUENCE1513ALTER SEQUENCE1514CREATE TABLE1515CREATE SEQUENCE1516ALTER SEQUENCE1517CREATE TABLE1518CREATE SEQUENCE1519ALTER SEQUENCE1520CREATE TABLE1521CREATE SEQUENCE1522ALTER SEQUENCE1523CREATE TABLE1524CREATE TABLE1525CREATE SEQUENCE1526ALTER SEQUENCE1527CREATE TABLE1528CREATE TABLE1529CREATE SEQUENCE1530ALTER SEQUENCE1531CREATE TABLE1532CREATE SEQUENCE1533ALTER SEQUENCE1534CREATE TABLE1535CREATE SEQUENCE1536ALTER SEQUENCE1537CREATE TABLE1538CREATE SEQUENCE1539ALTER SEQUENCE1540CREATE TABLE1541CREATE SEQUENCE1542ALTER SEQUENCE1543CREATE TABLE1544CREATE SEQUENCE1545ALTER SEQUENCE1546CREATE TABLE1547CREATE SEQUENCE1548ALTER SEQUENCE1549CREATE TABLE1550CREATE SEQUENCE1551ALTER SEQUENCE1552CREATE TABLE1553CREATE SEQUENCE1554ALTER SEQUENCE1555CREATE TABLE1556CREATE SEQUENCE1557ALTER SEQUENCE1558CREATE TABLE1559CREATE SEQUENCE1560ALTER SEQUENCE1561CREATE TABLE1562CREATE SEQUENCE1563ALTER SEQUENCE1564CREATE TABLE1565CREATE SEQUENCE1566ALTER SEQUENCE1567CREATE TABLE1568ALTER TABLE1569ALTER TABLE1570ALTER TABLE1571ALTER TABLE1572ALTER TABLE1573ALTER TABLE1574ALTER TABLE1575ALTER TABLE1576ALTER TABLE1577ALTER TABLE1578ALTER TABLE1579ALTER TABLE1580ALTER TABLE1581ALTER TABLE1582ALTER TABLE1583ALTER TABLE1584ALTER TABLE1585ALTER TABLE1586ALTER TABLE1587ALTER TABLE1588ALTER TABLE1589ALTER TABLE1590ALTER TABLE1591ALTER TABLE1592ALTER TABLE1593ALTER TABLE1594ALTER TABLE1595ALTER TABLE1596ALTER TABLE1597ALTER TABLE1598ALTER TABLE1599ALTER TABLE1600ALTER TABLE1601ALTER TABLE1602ALTER TABLE1603ALTER TABLE1604ALTER TABLE1605ALTER TABLE1606ALTER TABLE1607ALTER TABLE1608ALTER TABLE1609ALTER TABLE1610ALTER TABLE1611ALTER TABLE1612ALTER TABLE1613ALTER TABLE1614ALTER TABLE1615ALTER TABLE1616ALTER TABLE1617ALTER TABLE1618ALTER TABLE1619ALTER TABLE1620ALTER TABLE1621ALTER TABLE1622ALTER TABLE1623ALTER TABLE1624ALTER TABLE1625ALTER TABLE1626ALTER TABLE1627ALTER TABLE1628ALTER TABLE1629ALTER TABLE1630ALTER TABLE1631ALTER TABLE1632ALTER TABLE1633ALTER TABLE1634ALTER TABLE1635ALTER TABLE1636ALTER TABLE1637ALTER TABLE1638ALTER TABLE1639ALTER TABLE1640ALTER TABLE1641ALTER TABLE1642ALTER TABLE1643ALTER TABLE1644ALTER TABLE1645ALTER TABLE1646ALTER TABLE1647ALTER TABLE1648ALTER TABLE1649ALTER TABLE1650ALTER TABLE1651ALTER TABLE1652ALTER TABLE1653ALTER TABLE1654ALTER TABLE1655ALTER TABLE1656ALTER TABLE1657ALTER TABLE1658ALTER TABLE1659ALTER TABLE1660ALTER TABLE1661ALTER TABLE1662ALTER TABLE1663ALTER TABLE1664ALTER TABLE1665ALTER TABLE1666ALTER TABLE1667ALTER TABLE1668ALTER TABLE1669ALTER TABLE1670ALTER TABLE1671ALTER TABLE1672ALTER TABLE1673ALTER TABLE1674CREATE INDEX1675CREATE INDEX1676CREATE INDEX1677CREATE INDEX1678CREATE INDEX1679CREATE INDEX1680CREATE INDEX1681CREATE INDEX1682CREATE INDEX1683CREATE INDEX1684CREATE INDEX1685CREATE INDEX1686CREATE INDEX1687CREATE INDEX1688CREATE INDEX1689CREATE INDEX1690CREATE INDEX1691CREATE INDEX1692CREATE INDEX1693CREATE INDEX1694CREATE INDEX1695CREATE INDEX1696CREATE INDEX1697CREATE INDEX1698CREATE INDEX1699CREATE INDEX1700CREATE INDEX1701CREATE INDEX1702CREATE INDEX1703CREATE INDEX1704CREATE INDEX1705CREATE INDEX1706CREATE INDEX1707CREATE INDEX1708CREATE INDEX1709CREATE INDEX1710CREATE INDEX1711CREATE INDEX1712CREATE INDEX1713CREATE INDEX1714CREATE INDEX1715CREATE INDEX1716CREATE INDEX1717CREATE INDEX1718CREATE INDEX1719CREATE INDEX1720CREATE INDEX1721CREATE INDEX1722CREATE INDEX1723CREATE INDEX1724CREATE INDEX1725CREATE INDEX1726CREATE INDEX1727CREATE INDEX1728CREATE INDEX1729CREATE INDEX1730CREATE INDEX1731CREATE INDEX1732CREATE INDEX1733CREATE INDEX1734CREATE INDEX1735CREATE INDEX1736CREATE INDEX1737CREATE INDEX1738CREATE INDEX1739CREATE INDEX1740CREATE INDEX1741CREATE INDEX1742CREATE INDEX1743CREATE INDEX1744CREATE INDEX1745CREATE INDEX1746CREATE INDEX1747CREATE INDEX1748CREATE INDEX1749CREATE INDEX1750CREATE INDEX1751CREATE INDEX1752CREATE INDEX1753CREATE INDEX1754CREATE INDEX1755CREATE INDEX1756CREATE INDEX1757CREATE INDEX1758CREATE INDEX1759CREATE INDEX1760CREATE INDEX1761CREATE INDEX1762CREATE INDEX1763CREATE INDEX1764CREATE INDEX1765CREATE INDEX1766CREATE INDEX1767CREATE INDEX1768CREATE INDEX1769CREATE INDEX1770CREATE INDEX1771CREATE INDEX1772CREATE INDEX1773CREATE INDEX1774CREATE INDEX1775CREATE INDEX1776CREATE INDEX1777CREATE INDEX1778CREATE INDEX1779CREATE INDEX1780CREATE INDEX1781CREATE INDEX1782CREATE INDEX1783CREATE INDEX1784CREATE INDEX1785CREATE INDEX1786CREATE INDEX1787CREATE INDEX1788CREATE INDEX1789CREATE INDEX1790CREATE INDEX1791CREATE INDEX1792CREATE INDEX1793CREATE INDEX1794CREATE INDEX1795CREATE INDEX1796CREATE INDEX1797CREATE INDEX1798CREATE INDEX1799CREATE INDEX1800CREATE INDEX1801CREATE INDEX1802CREATE INDEX1803CREATE INDEX1804CREATE INDEX1805CREATE INDEX1806CREATE INDEX1807CREATE INDEX1808CREATE INDEX1809CREATE INDEX1810CREATE INDEX1811CREATE INDEX1812CREATE INDEX1813CREATE INDEX1814CREATE INDEX1815CREATE INDEX1816CREATE INDEX1817CREATE INDEX1818CREATE INDEX1819CREATE INDEX1820CREATE INDEX1821CREATE INDEX1822CREATE INDEX1823CREATE INDEX1824CREATE INDEX1825CREATE INDEX1826CREATE INDEX1827CREATE INDEX1828CREATE INDEX1829CREATE INDEX1830CREATE INDEX1831CREATE INDEX1832CREATE INDEX1833CREATE INDEX1834CREATE INDEX1835CREATE INDEX1836CREATE INDEX1837CREATE INDEX1838CREATE INDEX1839CREATE INDEX1840CREATE INDEX1841CREATE INDEX1842CREATE INDEX1843CREATE INDEX1844CREATE INDEX1845CREATE INDEX1846CREATE INDEX1847CREATE INDEX1848CREATE INDEX1849CREATE INDEX1850CREATE INDEX1851CREATE INDEX1852CREATE INDEX1853CREATE INDEX1854CREATE INDEX1855CREATE INDEX1856CREATE INDEX1857CREATE INDEX1858CREATE INDEX1859CREATE INDEX1860CREATE INDEX1861CREATE INDEX1862CREATE INDEX1863CREATE INDEX1864CREATE INDEX1865CREATE INDEX1866CREATE INDEX1867CREATE INDEX1868CREATE INDEX1869CREATE INDEX1870CREATE INDEX1871CREATE INDEX1872CREATE INDEX1873CREATE INDEX1874CREATE INDEX1875CREATE INDEX1876CREATE INDEX1877CREATE INDEX1878CREATE INDEX1879CREATE INDEX1880CREATE INDEX1881CREATE INDEX1882CREATE INDEX1883CREATE INDEX1884CREATE TRIGGER1885CREATE TRIGGER1886CREATE TRIGGER1887CREATE TRIGGER1888CREATE TRIGGER1889CREATE TRIGGER1890CREATE TRIGGER1891CREATE TRIGGER1892CREATE TRIGGER1893CREATE TRIGGER1894CREATE TRIGGER1895CREATE TRIGGER1896CREATE TRIGGER1897CREATE TRIGGER1898CREATE TRIGGER1899CREATE TRIGGER1900CREATE TRIGGER1901ALTER TABLE1902ALTER TABLE1903ALTER TABLE1904ALTER TABLE1905ALTER TABLE1906ALTER TABLE1907ALTER TABLE1908ALTER TABLE1909ALTER TABLE1910ALTER TABLE1911ALTER TABLE1912ALTER TABLE1913ALTER TABLE1914ALTER TABLE1915ALTER TABLE1916ALTER TABLE1917ALTER TABLE1918ALTER TABLE1919ALTER TABLE1920ALTER TABLE1921ALTER TABLE1922ALTER TABLE1923ALTER TABLE1924ALTER TABLE1925ALTER TABLE1926ALTER TABLE1927ALTER TABLE1928ALTER TABLE1929ALTER TABLE1930ALTER TABLE1931ALTER TABLE1932ALTER TABLE1933ALTER TABLE1934SET1935INSERT 0 3941938Repo counts1939 before aggregation1940 after aggregating per repo1941 after aggregating all counts1942 does not raise if repos are missing1943 does not raise if builds are deleted before stages1945set_updated_at trigger1946Dropped database 'travis_test'1947Created database 'travis_test'1948== 201207261749 CreatePlans: migrating ========================================1949-- create_table(:plans, {:id=>:integer})1950 -> 0.0052s1951== 201207261749 CreatePlans: migrated (0.0054s) ===============================1953== 20101126174706 CreateRepositories: migrating ===============================1954-- create_table(:repositories, {:id=>:integer})1955 -> 0.0049s1956== 20101126174706 CreateRepositories: migrated (0.0049s) ======================1958== 20101126174715 CreateBuilds: migrating =====================================1959-- create_table(:builds, {:id=>:integer})1960 -> 0.0054s1961== 20101126174715 CreateBuilds: migrated (0.0054s) ============================1963== 20110109130532 DeviseCreateUsers: migrating ================================1964-- create_table(:users, {:id=>:integer})1965 -> 0.0047s1966-- add_index(:users, :login, {:unique=>true})1967 -> 0.0021s1968== 20110109130532 DeviseCreateUsers: migrated (0.0069s) =======================1970== 20110116155100 RepositoriesAddUsername: migrating ==========================1971-- change_table(:repositories)1972 -> 0.0007s1973== 20110116155100 RepositoriesAddUsername: migrated (0.0007s) =================1975== 20110130102621 CreateTokens: migrating =====================================1976-- create_table(:tokens, {:id=>:integer})1977 -> 0.0049s1978== 20110130102621 CreateTokens: migrated (0.0049s) ============================1980== 20110301071656 AddBuildParentIdAndConfiguration: migrating =================1981-- change_table(:builds)1982 -> 0.0011s1983-- change_column(:builds, :number, :string)1984 -> 0.0044s1985-- add_index(:builds, :repository_id)1986 -> 0.0018s1987-- add_index(:builds, :parent_id)1988 -> 0.0017s1989== 20110301071656 AddBuildParentIdAndConfiguration: migrated (0.0090s) ========1991== 20110316174721 RepositoriesDenormalizeLastBuildAttributes: migrating =======1992-- change_table(:repositories)1993 -> 0.0023s1994== 20110316174721 RepositoriesDenormalizeLastBuildAttributes: migrated (0.0024s)1996== 20110321075539 RepositoriesAddOwnerNameAndOwnerEmail: migrating ============1997-- change_table(:repositories)1998 -> 0.0015s1999-- remove_column(:repositories, :username)2000 -> 0.0004s2001== 20110321075539 RepositoriesAddOwnerNameAndOwnerEmail: migrated (0.0020s) ===2003== 20110411171936 CreateHistoriesTable: migrating =============================2004-- create_table(:histories, {:id=>:integer})2005 -> 0.0055s2006-- add_index(:histories, [:item, :table, :month, :year])2007 -> 0.0020s2008== 20110411171936 CreateHistoriesTable: migrated (0.0076s) ====================2010== 20110411171937 RenameHistoriesToRailsAdminHistories: migrating =============2011-- remove_index(:histories, nil, {:name=>:index_histories_on_item_and_table_and_month_and_year})2012 -> 0.0005s2013-- rename_table(:histories, :rails_admin_histories)2014 -> 0.0033s2015-- add_index("rails_admin_histories", ["item", "table", "month", "year"], {:name=>"index_histories_on_item_and_table_and_month_and_year"})2016 -> 0.0022s2017== 20110411171937 RenameHistoriesToRailsAdminHistories: migrated (0.0073s) ====2019== 20110411172518 AddAdminFlagToUser: migrating ===============================2020-- change_table(:users)2021 -> 0.0011s2022== 20110411172518 AddAdminFlagToUser: migrated (0.0012s) ======================2024== 20110413101057 BuildsAddRef: migrating =====================================2025-- change_table(:builds)2026 -> 0.0010s2027== 20110413101057 BuildsAddRef: migrated (0.0011s) ============================2029== 20110414131100 BuildsAddGithubPayload: migrating ===========================2030-- change_table(:builds)2031 -> 0.0006s2032== 20110414131100 BuildsAddGithubPayload: migrated (0.0006s) ==================2034== 20110503150504 AddGithubIdToUsersTable: migrating ==========================2035-- add_column(:users, :github_id, :integer)2036 -> 0.0006s2037-- add_index(:users, :github_id)2038 -> 0.0020s2039== 20110503150504 AddGithubIdToUsersTable: migrated (0.0026s) =================2041== 20110523012243 RepositoriesChangeOwnerEmailType: migrating =================2042-- change_column(:repositories, :owner_email, :text)2043 -> 0.0007s2044== 20110523012243 RepositoriesChangeOwnerEmailType: migrated (0.0007s) ========2046== 20110611203537 AddGithubOauthTokenToUser: migrating ========================2047-- add_column(:users, :github_oauth_token, :string)2048 -> 0.0006s2049-- add_index(:users, :github_oauth_token)2050 -> 0.0019s2051== 20110611203537 AddGithubOauthTokenToUser: migrated (0.0026s) ===============2053== 20110613210252 AddCompareUrlToBuild: migrating =============================2054-- add_column(:builds, :compare_url, :string)2055 -> 0.0006s2056== 20110613210252 AddCompareUrlToBuild: migrated (0.0006s) ====================2058== 20110615152003 BuildsRemoveJobId: migrating ================================2059-- change_table(:builds)2060 -> 0.0006s2061== 20110615152003 BuildsRemoveJobId: migrated (0.0007s) =======================2063== 20110616211744 BuildRemoveLastBuiltAt: migrating ===========================2064-- change_table(:repositories)2065 -> 0.0006s2066== 20110616211744 BuildRemoveLastBuiltAt: migrated (0.0006s) ==================2068== 20110617114728 AddMissingIndexes: migrating ================================2069-- add_index(:repositories, :last_build_started_at)2070 -> 0.0022s2071-- add_index(:repositories, [:owner_name, :name])2072 -> 0.0019s2073-- add_index(:builds, [:repository_id, :parent_id, :started_at])2074 -> 0.0021s2075== 20110617114728 AddMissingIndexes: migrated (0.0063s) =======================2077== 20110619100906 AddActiveToRepositories: migrating ==========================2078-- add_column(:repositories, :is_active, :boolean)2079 -> 0.0006s2080== 20110619100906 AddActiveToRepositories: migrated (0.0007s) =================2082== 20110729094426 StoreTokenInBuild: migrating ================================2083-- add_column(:builds, :token, :string)2084 -> 0.0006s2085== 20110729094426 StoreTokenInBuild: migrated (0.0006s) =======================2087== 20110801161819 CreateRequestsCommitsAndTasks: migrating ====================2088-- change_table(:builds)2089 -> 0.0014s2090-- create_table(:commits, {:force=>true, :id=>:integer})2091 -> 0.0049s2092-- create_table(:requests, {:force=>true, :id=>:integer})2093 -> 0.0048s2094-- create_table(:tasks, {:force=>true, :id=>:integer})2095 -> 0.0051s2096-- add_index(:commits, :commit)2097 -> 0.0021s2098-- add_index(:builds, :commit)2099 -> 0.0020s2100-- add_index(:requests, :commit)2101 -> 0.0018s2102-- add_index(:tasks, :commit)2103 -> 0.0017s2104-- execute("UPDATE requests SET commit_id = (SELECT commits.id FROM commits WHERE commits.commit = requests.commit LIMIT 1)")2105 -> 0.0006s2106-- execute("UPDATE tasks SET commit_id = (SELECT commits.id FROM commits WHERE commits.commit = tasks.commit LIMIT 1)")2107 -> 0.0004s2108-- execute("DELETE FROM builds WHERE parent_id IS NOT NULL")2109 -> 0.0004s2110-- execute("UPDATE builds SET request_id = (SELECT requests.id FROM requests WHERE requests.commit = builds.commit LIMIT 1)")2111 -> 0.0004s2112-- execute("UPDATE builds SET commit_id = (SELECT commits.id FROM commits WHERE commits.commit = builds.commit LIMIT 1)")2113 -> 0.0003s2114-- execute("CREATE SEQUENCE shared_builds_tasks_seq CACHE 30")2115 -> 0.0005s2116-- execute("ALTER TABLE builds ALTER COLUMN id TYPE BIGINT")2117 -> 0.0103s2118-- execute("ALTER TABLE builds ALTER COLUMN id SET DEFAULT nextval('shared_builds_tasks_seq')")2119 -> 0.0006s2120-- execute("ALTER TABLE tasks ALTER COLUMN id TYPE BIGINT")2121 -> 0.0058s2122-- execute("ALTER TABLE tasks ALTER COLUMN id SET DEFAULT nextval('shared_builds_tasks_seq')")2123 -> 0.0004s2124-- select_value("SELECT max(id) FROM commits")2125 -> 0.0006s2126-- execute("SELECT setval('commits_id_seq', 1)")2127 -> 0.0003s2128-- select_value("SELECT max(id) FROM requests")2129 -> 0.0004s2130-- execute("SELECT setval('requests_id_seq', 1)")2131 -> 0.0003s2132-- select_value("SELECT max(id) FROM tasks")2133 -> 0.0005s2134-- execute("SELECT setval('tasks_id_seq', 1)")2135 -> 0.0003s2136-- remove_column(:builds, :parent_id)2137 -> 0.0004s2138-- remove_column(:builds, :commit)2139 -> 0.0004s2140-- remove_column(:requests, :commit)2141 -> 0.0004s2142-- remove_column(:tasks, :commit)2143 -> 0.0004s2144== 20110801161819 CreateRequestsCommitsAndTasks: migrated (0.0481s) ===========2146== 20110805030147 RepositoryRenameIsActiveToActive: migrating =================2147-- rename_column(:repositories, :is_active, :active)2148 -> 0.0089s2149== 20110805030147 RepositoryRenameIsActiveToActive: migrated (0.0090s) ========2151== 20110819232908 TasksAddTags: migrating =====================================2152-- add_column(:tasks, :tags, :text)2153 -> 0.0012s2154== 20110819232908 TasksAddTags: migrated (0.0013s) ============================2156== 20110911204538 CacheOneNumberForSharedBuildsTasksSequence: migrating =======2157-- execute("ALTER SEQUENCE shared_builds_tasks_seq CACHE 1 NO MAXVALUE NO CYCLE")2158 -> 0.0016s2159== 20110911204538 CacheOneNumberForSharedBuildsTasksSequence: migrated (0.0017s)2161== 20111107134436 RenameTasksToJobs: migrating ================================2162-- rename_table(:tasks, :jobs)2163 -> 0.0041s2164-- execute("UPDATE jobs SET type = 'Job::Test' WHERE type = 'Task::Test'")2165 -> 0.0005s2166-- execute("UPDATE jobs SET type = 'Job::Configure' WHERE type = 'Task::Configure'")2167 -> 0.0004s2168== 20111107134436 RenameTasksToJobs: migrated (0.0053s) =======================2170== 20111107134437 CreateArtifacts: migrating ==================================2171-- create_table(:artifacts, {:id=>:integer})2172 -> 0.0061s2173-- execute("UPDATE artifacts SET job_id = id")2174 -> 0.0005s2175-- execute("select setval('artifacts_id_seq', (select max(id) + 1 from artifacts));")2176 -> 0.0005s2177-- add_index(:artifacts, [:type, :job_id])2178 -> 0.0022s2179== 20111107134437 CreateArtifacts: migrated (0.0094s) =========================2181== 20111107134438 CreateWorkers: migrating ====================================2182-- create_table(:workers, {:id=>:integer})2183 -> 0.0058s2184-- add_index(:workers, [:name, :host])2185 -> 0.0020s2186== 20111107134438 CreateWorkers: migrated (0.0079s) ===========================2188== 20111107134439 JobsAddRetries: migrating ===================================2189-- change_table(:jobs)2190 -> 0.0015s2191== 20111107134439 JobsAddRetries: migrated (0.0016s) ==========================2193== 20111107134440 RemoveRailsAdmin: migrating =================================2194-- drop_table(:rails_admin_histories)2195 -> 0.0015s2196== 20111107134440 RemoveRailsAdmin: migrated (0.0015s) ========================2198== 20111128235043 AddIndexesToJobs: migrating =================================2199-- add_index(:jobs, [:queue, :state])2200 -> 0.0025s2201== 20111128235043 AddIndexesToJobs: migrated (0.0026s) ========================2203== 20111129014329 AddRepositoryIdIndexToJobs: migrating =======================2204-- add_index(:jobs, :repository_id)2205 -> 0.0023s2206== 20111129014329 AddRepositoryIdIndexToJobs: migrated (0.0024s) ==============2208== 20111129022625 AddOwnerAndTypeIndexToJobs: migrating =======================2209-- add_index(:jobs, [:type, :owner_id, :owner_type])2210 -> 0.0025s2211== 20111129022625 AddOwnerAndTypeIndexToJobs: migrated (0.0025s) ==============2213== 20111201113500 WorkersAddPayloadAndLastError: migrating ====================2214-- change_table(:workers)2215 -> 0.0013s2216== 20111201113500 WorkersAddPayloadAndLastError: migrated (0.0013s) ===========2218== 20111203002341 RepositoriesAddDescriptionAndLastLanguage: migrating ========2219-- change_table(:repositories)2220 -> 0.0013s2221-- change_table(:builds)2222 -> 0.0006s2223== 20111203002341 RepositoriesAddDescriptionAndLastLanguage: migrated (0.0020s)2225== 20111203221720 BuildsAddArchivedAt: migrating ==============================2226-- change_table(:builds)2227 -> 0.0008s2228== 20111203221720 BuildsAddArchivedAt: migrated (0.0008s) =====================2230== 20111207093700 MimicProductionDb: migrating ================================2231-- column_exists?(:users, :oauth2_uid, :integer)2232 -> 0.0025s2233-- column_exists?(:users, :oauth2_token, :string)2234 -> 0.0017s2235-- column_exists?(:repositories, :user_id, :integer)2236 -> 0.0021s2237== 20111207093700 MimicProductionDb: migrated (0.0064s) =======================2239== 20111212103859 BuildsAddDuration: migrating ================================2240-- change_table(:builds)2241 -> 0.0009s2242== 20111212103859 BuildsAddDuration: migrated (0.0009s) =======================2244== 20111212112411 RepositoriesAddLastBuildDuration: migrating =================2245-- change_table(:repositories)2246 -> 0.0011s2247== 20111212112411 RepositoriesAddLastBuildDuration: migrated (0.0011s) ========2249== 20111214173922 CreateSslKeys: migrating ====================================2250-- create_table(:ssl_keys, {:id=>:integer})2251 -> 0.0061s2252-- add_index("ssl_keys", ["repository_id"], {:name=>"index_ssl_key_on_repository_id"})2253 -> 0.0019s2254== 20111214173922 CreateSslKeys: migrated (0.0083s) ===========================2256== 20120114125404 AddAllowFailureToJobs: migrating ============================2257-- add_column(:jobs, :allow_failure, :boolean, {:default=>false})2258 -> 0.0015s2259== 20120114125404 AddAllowFailureToJobs: migrated (0.0016s) ===================2261== 20120216133223 AddPullRequestFieldsToRequest: migrating ====================2262-- add_column(:requests, :event_type, :string)2263 -> 0.0009s2264-- add_column(:requests, :comments_url, :string)2265 -> 0.0006s2266-- add_column(:requests, :base_commit, :string)2267 -> 0.0006s2268-- add_column(:requests, :head_commit, :string)2269 -> 0.0005s2270== 20120216133223 AddPullRequestFieldsToRequest: migrated (0.0027s) ===========2272== 20120222082522 AddGravatarIdToUsers: migrating =============================2273-- add_column(:users, :gravatar_id, :string)2274 -> 0.0009s2275== 20120222082522 AddGravatarIdToUsers: migrated (0.0009s) ====================2277== 20120301131209 OrganizationsCreate: migrating ==============================2278-- create_table(:organizations, {:id=>:integer})2279 -> 0.0060s2280== 20120301131209 OrganizationsCreate: migrated (0.0061s) =====================2282== 20120304000502 JobsRenameOwnerToSource: migrating ==========================2283-- change_table(:jobs)2284 -> 0.0076s2285== 20120304000502 JobsRenameOwnerToSource: migrated (0.0077s) =================2287== 20120304000503 RepositoriesAddOwner: migrating =============================2288-- change_table(:repositories)2289 -> 0.0010s2290== 20120304000503 RepositoriesAddOwner: migrated (0.0011s) ====================2292== 20120304000504 BuildsAddOwner: migrating ===================================2293-- change_table(:builds)2294 -> 0.0011s2295== 20120304000504 BuildsAddOwner: migrated (0.0011s) ==========================2297== 20120304000505 JobsAddOwner: migrating =====================================2298-- change_table(:jobs)2299 -> 0.0009s2300== 20120304000505 JobsAddOwner: migrated (0.0010s) ============================2302== 20120304000506 RequestsAddOwner: migrating =================================2303-- change_table(:requests)2304 -> 0.0009s2305== 20120304000506 RequestsAddOwner: migrated (0.0010s) ========================2307== 20120311234933 AddLocaleToUser: migrating ==================================2308-- add_column(:users, :locale, :string)2309 -> 0.0006s2310== 20120311234933 AddLocaleToUser: migrated (0.0007s) =========================2312== 20120316123726 CreateMemberships: migrating ================================2313-- create_table(:memberships, {:id=>:integer})2314 -> 0.0028s2315== 20120316123726 CreateMemberships: migrated (0.0028s) =======================2317== 20120319170001 RepositoriesAddPrivate: migrating ===========================2318-- change_table(:repositories)2319 -> 0.0009s2320== 20120319170001 RepositoriesAddPrivate: migrated (0.0010s) ==================2322== 20120324104051 CreateUrls: migrating =======================================2323-- create_table(:urls, {:id=>:integer})2324 -> 0.0044s2325== 20120324104051 CreateUrls: migrated (0.0044s) ==============================2327== 20120505165100 CopyStatusToResult: migrating ===============================2328-- add_column(:builds, :result, :integer)2329 -> 0.0006s2330-- add_column(:jobs, :result, :integer)2331 -> 0.0004s2332-- add_column(:repositories, :last_build_result, :integer)2333 -> 0.0004s2334Executing: UPDATE builds SET result = status;2335Executing: UPDATE jobs SET result = status;2336Executing: UPDATE repositories SET last_build_result = last_build_status;2337== 20120505165100 CopyStatusToResult: migrated (0.0026s) ======================2339== 20120511171900 RequestsAddIndexOnHeadCommit: migrating =====================2340-- add_index(:requests, :head_commit)2341 -> 0.0024s2342== 20120511171900 RequestsAddIndexOnHeadCommit: migrated (0.0024s) ============2344== 20120521174400 CreatePermissions: migrating ================================2345-- create_table(:permissions, {:id=>:integer})2346 -> 0.0047s2347-- add_index(:permissions, :user_id)2348 -> 0.0092s2349-- add_index(:permissions, :repository_id)2350 -> 0.0021s2351== 20120521174400 CreatePermissions: migrated (0.0164s) =======================2353== 20120527235800 BuildsAddPreviousResult: migrating ==========================2354-- change_table(:builds)2355 -> 0.0008s2356== 20120527235800 BuildsAddPreviousResult: migrated (0.0009s) =================2358== 20120702111126 CreateSubscriptions: migrating ==============================2359-- create_table(:subscriptions, {:id=>:integer})2360 -> 0.0057s2361== 20120702111126 CreateSubscriptions: migrated (0.0058s) =====================2363== 20120703114226 AddBillingEmailCreditCardDataToSubscriptions: migrating =====2364-- change_table(:subscriptions)2365 -> 0.0021s2366== 20120703114226 AddBillingEmailCreditCardDataToSubscriptions: migrated (0.0022s)2368== 20120713140816 AddSyncInfoToUser: migrating ================================2369-- add_column(:users, :in_sync, :boolean)2370 -> 0.0007s2371-- add_column(:users, :synced_at, :timestamp)2372 -> 0.0005s2373== 20120713140816 AddSyncInfoToUser: migrated (0.0012s) =======================2375== 20120713153215 RenameInSyncToIsSyncing: migrating ==========================2376-- rename_column(:users, :in_sync, :is_syncing)2377 -> 0.0030s2378== 20120713153215 RenameInSyncToIsSyncing: migrated (0.0031s) =================2380== 20120725005300 AddQueueToWorkers: migrating ================================2381-- add_column(:workers, :queue, :string)2382 -> 0.0007s2383== 20120725005300 AddQueueToWorkers: migrated (0.0007s) =======================2385== 20120727151900 AddJobsIndexOnStateOwnerTypeOwnerId: migrating ==============2386-- add_index(:jobs, ["state", "owner_id", "owner_type"], {:name=>"index_jobs_on_state_owner_type_owner_id"})2387 -> 0.0025s2388== 20120727151900 AddJobsIndexOnStateOwnerTypeOwnerId: migrated (0.0025s) =====2390== 20120731005301 AddQueuedAtToJobs: migrating ================================2391-- add_column(:jobs, :queued_at, :timestamp, {:precision=>nil})2392 -> 0.0009s2393== 20120731005301 AddQueuedAtToJobs: migrated (0.0010s) =======================2395== 20120731074000 AddAmountToPlans: migrating =================================2396-- change_table(:plans)2397 -> 0.0010s2398== 20120731074000 AddAmountToPlans: migrated (0.0011s) ========================2400== 20120802001001 AddPushAndPullToPermissions: migrating ======================2401-- add_column(:permissions, :push, :boolean, {:default=>false})2402 -> 0.0013s2403-- add_column(:permissions, :pull, :boolean, {:default=>false})2404 -> 0.0010s2405-- change_column_default(:permissions, :admin, false)2406 -> 0.0042s2407== 20120802001001 AddPushAndPullToPermissions: migrated (0.0068s) =============2409== 20120803164000 CreateInvoices: migrating ===================================2410-- create_table(:invoices, {:id=>:integer})2411 -> 0.0070s2412== 20120803164000 CreateInvoices: migrated (0.0072s) ==========================2414== 20120803182300 AddInvoiceIdToInvoices: migrating ===========================2415-- change_table(:invoices)2416 -> 0.0019s2417== 20120803182300 AddInvoiceIdToInvoices: migrated (0.0020s) ==================2419== 20120804122700 AddStripeInvoiceIdToInvoices: migrating =====================2420-- change_table(:invoices)2421 -> 0.0021s2422-- add_index(:invoices, :stripe_id)2423 -> 0.0026s2424== 20120804122700 AddStripeInvoiceIdToInvoices: migrated (0.0049s) ============2426== 20120806120400 AddPlanToSubscriptions: migrating ===========================2427-- change_table(:subscriptions)2428 -> 0.0018s2429== 20120806120400 AddPlanToSubscriptions: migrated (0.0019s) ==================2431== 20120820164000 RenamePlanOnSubscriptions: migrating ========================2432-- change_table(:subscriptions)2433 -> 0.0030s2434== 20120820164000 RenamePlanOnSubscriptions: migrated (0.0032s) ===============2436== 20120905093300 CreateStripeEvents: migrating ===============================2437-- create_table(:stripe_events, {:id=>:integer})2438 -> 0.0064s2439-- add_index(:stripe_events, :event_type)2440 -> 0.0018s2441-- add_index(:stripe_events, :date)2442 -> 0.0018s2443== 20120905093300 CreateStripeEvents: migrated (0.0102s) ======================2445== 20120905171300 AddEventIdToStripeEvents: migrating =========================2446-- change_table(:stripe_events)2447 -> 0.0006s2448-- add_index(:stripe_events, :event_id)2449 -> 0.0019s2450== 20120905171300 AddEventIdToStripeEvents: migrated (0.0026s) ================2452== 20120911160000 AddBuildsIndexOnRepositoryIdAndState: migrating =============2453-- remove_index("builds", nil, {:column=>"repository_id", :name=>"index_builds_on_repository_id"})2454 -> 0.0016s2455-- add_index("builds", ["repository_id", "state"])2456 -> 0.0020s2457== 20120911160000 AddBuildsIndexOnRepositoryIdAndState: migrated (0.0045s) ====2459== 20120911230000 ArtifactsAddAggregatedAt: migrating =========================2460-- add_column(:artifacts, :aggregated_at, :timestamp, {:precision=>nil})2461 -> 0.0006s2462== 20120911230000 ArtifactsAddAggregatedAt: migrated (0.0006s) ================2464== 20120911230001 AddArtifactParts: migrating =================================2465-- create_table(:artifact_parts, {:id=>:integer})2466 -> 0.0046s2467-- add_index(:artifact_parts, [:artifact_id, :number])2468 -> 0.0018s2469== 20120911230001 AddArtifactParts: migrated (0.0064s) ========================2471== 20120913143800 AddSubscriptionsCoupon: migrating ===========================2472-- change_table(:subscriptions)2473 -> 0.0007s2474== 20120913143800 AddSubscriptionsCoupon: migrated (0.0007s) ==================2476== 20120915012000 BuildsAddIndexOnFinishedAt: migrating =======================2477-- add_index("builds", "finished_at")2478 -> 0.0022s2479== 20120915012000 BuildsAddIndexOnFinishedAt: migrated (0.0023s) ==============2481== 20120915012001 CommitsAddIndexOnBranch: migrating ==========================2482-- add_index("commits", "branch")2483 -> 0.0023s2484== 20120915012001 CommitsAddIndexOnBranch: migrated (0.0023s) =================2486== 20120915150000 JobsAddIndexOnCreatedAt: migrating ==========================2487-- add_index("jobs", "created_at")2488 -> 0.0022s2489== 20120915150000 JobsAddIndexOnCreatedAt: migrated (0.0022s) =================2491== 20121015002500 CreateEvents: migrating =====================================2492-- create_table(:events, {:id=>:integer})2493 -> 0.0048s2494== 20121015002500 CreateEvents: migrated (0.0049s) ============================2496== 20121015002501 RequestsAddResultAndMessage: migrating ======================2497-- add_column(:requests, :result, :string)2498 -> 0.0006s2499-- add_column(:requests, :message, :string)2500 -> 0.0004s2501== 20121015002501 RequestsAddResultAndMessage: migrated (0.0011s) =============2503== 20121017040100 CreateBroadcasts: migrating =================================2504-- create_table(:broadcasts, {:id=>:integer})2505 -> 0.0047s2506== 20121017040100 CreateBroadcasts: migrated (0.0047s) ========================2508== 20121017040200 EventsChangeDataToText: migrating ===========================2509-- change_column(:events, :data, :text)2510 -> 0.0006s2511== 20121017040200 EventsChangeDataToText: migrated (0.0006s) ==================2513== 20121018201301 AddEventTypeToBuilds: migrating =============================2514-- add_column(:builds, :event_type, :string)2515 -> 0.0006s2516== 20121018201301 AddEventTypeToBuilds: migrated (0.0006s) ====================2518== 20121018203728 UpdateEventTypeOnBuilds: migrating ==========================2519-- execute(" UPDATE builds\n SET event_type = requests.event_type\n FROM requests\n WHERE builds.request_id = requests.id\n")2520 -> 0.0009s2521== 20121018203728 UpdateEventTypeOnBuilds: migrated (0.0009s) =================2523== 20121018210156 AddIndexOnRepositoryIdAndEventTypeToBuilds: migrating =======2524-- add_index(:builds, [:repository_id, :event_type])2525 -> 0.0022s2526== 20121018210156 AddIndexOnRepositoryIdAndEventTypeToBuilds: migrated (0.0022s)2528== 20121125122700 RepositoriesAddLastBuildState: migrating ====================2529-- add_column(:repositories, :last_build_state, :string)2530 -> 0.0006s2531== 20121125122700 RepositoriesAddLastBuildState: migrated (0.0006s) ===========2533== 20121125122701 BuildsAddPreviousState: migrating ===========================2534-- add_column(:builds, :previous_state, :string)2535 -> 0.0006s2536== 20121125122701 BuildsAddPreviousState: migrated (0.0007s) ==================2538== 20121222125200 ArtifactPartsAddFinal: migrating ============================2539-- add_column(:artifact_parts, :final, :boolean)2540 -> 0.0018s2541-- add_column(:artifact_parts, :created_at, :timestamp)2542 -> 0.0008s2543== 20121222125200 ArtifactPartsAddFinal: migrated (0.0029s) ===================2545== 20121222125300 ArtifactPartsChangeContentToText: migrating =================2546-- change_column(:artifact_parts, :content, :text)2547 -> 0.0018s2548== 20121222125300 ArtifactPartsChangeContentToText: migrated (0.0020s) ========2550== 20121222140200 ArtifactPartsAddIndexOnArtifactId: migrating ================2551-- add_index(:artifact_parts, :artifact_id)2552 -> 0.0034s2553== 20121222140200 ArtifactPartsAddIndexOnArtifactId: migrated (0.0034s) =======2555== 20121223162300 ArtifactPartsRemoveIndexOnArtifactId: migrating =============2556-- remove_index(:artifact_parts, :artifact_id, {:name=>"index_artifact_parts_on_artifact_id"})2557 -> 0.0045s2558== 20121223162300 ArtifactPartsRemoveIndexOnArtifactId: migrated (0.0067s) ====2560== 20130107165057 AddGithubScopesToUser: migrating ============================2561-- add_column(:users, :github_scopes, :text)2562 -> 0.0017s2563== 20130107165057 AddGithubScopesToUser: migrated (0.0019s) ===================2565== 20130115125836 AddIndexOnLastSeenAtToWorkers: migrating ====================2566-- add_index(:workers, :last_seen_at)2567 -> 0.0035s2568== 20130115125836 AddIndexOnLastSeenAtToWorkers: migrated (0.0036s) ===========2570== 20130115145728 CacheFullNameInWorkers: migrating ===========================2571-- add_column(:workers, :full_name, :string)2572 -> 0.0009s2573-- add_index(:workers, :full_name)2574 -> 0.0022s2575== 20130115145728 CacheFullNameInWorkers: migrated (0.0033s) ==================2577== 20130125002600 ArtifactsAddArchivedAt: migrating ===========================2578-- add_column(:artifacts, :archived_at, :timestamp, {:precision=>nil})2579 -> 0.0009s2580-- add_index(:artifacts, :archived_at)2581 -> 0.0022s2582== 20130125002600 ArtifactsAddArchivedAt: migrated (0.0032s) ==================2584== 20130125171100 ArtifactsAddArchivingAndVerified: migrating =================2585-- add_column(:artifacts, :archiving, :boolean)2586 -> 0.0009s2587-- add_column(:artifacts, :archive_verified, :boolean)2588 -> 0.0006s2589-- add_index(:artifacts, :archiving)2590 -> 0.0021s2591-- add_index(:artifacts, :archive_verified)2592 -> 0.0020s2593== 20130125171100 ArtifactsAddArchivingAndVerified: migrated (0.0059s) ========2595== 20130129142703 CreateEmails: migrating =====================================2596-- create_table(:emails, {:id=>:integer})2597 -> 0.0097s2598-- add_index(:emails, :user_id)2599 -> 0.0028s2600-- add_index(:emails, :email)2601 -> 0.0025s2602== 20130129142703 CreateEmails: migrated (0.0167s) ============================2604== 20130208135800 RenameArtifacts: migrating ==================================2605-- rename_table(:artifacts, :artifacts_backup)2606 -> 0.0139s2607-- rename_table(:artifact_parts, :artifact_parts_backup)2608 -> 0.0047s2609== 20130208135800 RenameArtifacts: migrated (0.0188s) =========================2611== 20130208135801 DropArtifacts: migrating ====================================2612-- drop_table(:artifacts_backup)2613 -> 0.0011s2614-- drop_table(:artifact_parts_backup)2615 -> 0.0008s2616== 20130208135801 DropArtifacts: migrated (0.0020s) ===========================2618== 20130306154311 CreatePgcryptoExtension: migrating ==========================2619-- execute("create extension if not exists pgcrypto")2620 -> 0.0037s2621== 20130306154311 CreatePgcryptoExtension: migrated (0.0037s) =================2623== 20130311211101 AddPullRequestTitleToBuilds: migrating ======================2624-- add_column(:builds, :pull_request_title, :text)2625 -> 0.0048s2626== 20130311211101 AddPullRequestTitleToBuilds: migrated (0.0048s) =============2628== 20130327100801 AddPullRequestNumberToBuilds: migrating =====================2629-- add_column(:builds, :pull_request_number, :integer)2630 -> 0.0007s2631== 20130327100801 AddPullRequestNumberToBuilds: migrated (0.0008s) ============2633== 20130418101437 AddIndexToBuildsRequestId: migrating ========================2634-- execute("CREATE INDEX CONCURRENTLY index_builds_on_request_id ON builds(request_id)")2635 -> 0.0043s2636== 20130418101437 AddIndexToBuildsRequestId: migrated (0.0043s) ===============2638== 20130418103306 AddIndexToJobsOnOwnerIdOwnerTypeAndState: migrating =========2639-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_id_and_owner_type_and_state ON jobs(owner_id, owner_type, state)")2640 -> 0.0035s2641== 20130418103306 AddIndexToJobsOnOwnerIdOwnerTypeAndState: migrated (0.0035s)2643== 20130505023259 AddMoreIndexesToBuilds: migrating ===========================2644-- execute(" CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_event_type_and_state_and_branch\n ON builds(repository_id, event_type, state, branch);\n")2645 -> 0.0032s2646== 20130505023259 AddMoreIndexesToBuilds: migrated (0.0032s) ==================2648== 20130521115725 AddIndexOnBuildState: migrating =============================2649-- execute(" CREATE INDEX CONCURRENTLY index_builds_on_state\n ON builds(state);\n")2650 -> 0.0033s2651== 20130521115725 AddIndexOnBuildState: migrated (0.0034s) ====================2653== 20130521133050 UpdateFinishedJobs: migrating ===============================2654-- execute("UPDATE jobs SET state = 'passed' WHERE state = 'finished' AND result = 0 AND type = 'Job::Test'")2655 -> 0.0007s2656-- execute("UPDATE jobs SET state = 'failed' WHERE state = 'finished' AND result = 1 AND type = 'Job::Test'")2657 -> 0.0003s2658-- execute("UPDATE jobs SET state = 'errored' WHERE state = 'finished' AND result IS NULL AND type = 'Job::Test'")2659 -> 0.0003s2660-- execute("SELECT COUNT(*) FROM jobs WHERE state = 'finished' AND type = 'Job::Test'")2661 -> 0.0004s2662== 20130521133050 UpdateFinishedJobs: migrated (0.0019s) ======================2664== 20130521134224 UpdateFinishedBuilds: migrating =============================2665-- execute("UPDATE builds SET state = 'passed' WHERE state = 'finished' AND result = 0")2666 -> 0.0007s2667-- execute("UPDATE builds SET state = 'failed' WHERE state = 'finished' AND result = 1")2668 -> 0.0003s2669-- execute("UPDATE builds SET state = 'errored' WHERE state = 'finished' AND result IS NULL")2670 -> 0.0003s2671-- execute("SELECT COUNT(*) FROM builds WHERE state = 'finished'")2672 -> 0.0003s2673== 20130521134224 UpdateFinishedBuilds: migrated (0.0018s) ====================2675== 20130521134800 RemoveUnusedBuildColumns: migrating =========================2676-- remove_column(:builds, :result)2677 -> 0.0006s2678-- remove_column(:builds, :status)2679 -> 0.0004s2680-- remove_column(:builds, :previous_result)2681 -> 0.0003s2682-- remove_column(:builds, :agent)2683 -> 0.0004s2684-- remove_column(:builds, :language)2685 -> 0.0004s2686-- remove_column(:builds, :archived_at)2687 -> 0.0004s2688== 20130521134800 RemoveUnusedBuildColumns: migrated (0.0026s) ================2690== 20130521141357 RemoveUnusedJobColumns: migrating ===========================2691-- remove_column(:jobs, :status)2692 -> 0.0006s2693-- remove_column(:jobs, :job_id)2694 -> 0.0003s2695-- remove_column(:jobs, :retries)2696 -> 0.0004s2697== 20130521141357 RemoveUnusedJobColumns: migrated (0.0013s) ==================2699== 20130618084205 AddCoupons: migrating =======================================2700-- create_table(:coupons, {:id=>:integer})2701 -> 0.0056s2702== 20130618084205 AddCoupons: migrated (0.0056s) ==============================2704== 20130629122945 AddGithubIdToUsers: migrating ===============================2705-- add_column(:repositories, :github_id, :integer)2706 -> 0.0007s2707-- add_index(:repositories, :github_id)2708 -> 0.0021s2709== 20130629122945 AddGithubIdToUsers: migrated (0.0028s) ======================2711== 20130629133531 AddDefaultBranchToRepositories: migrating ===================2712-- add_column(:repositories, :default_branch, :string)2713 -> 0.0007s2714== 20130629133531 AddDefaultBranchToRepositories: migrated (0.0007s) ==========2716== 20130629174449 AddGithubLanguageToRepositories: migrating ==================2717-- add_column(:repositories, :github_language, :string)2718 -> 0.0006s2719== 20130629174449 AddGithubLanguageToRepositories: migrated (0.0007s) =========2721== 20130701175200 AddContactIdToSubscriptions: migrating ======================2722-- change_table(:subscriptions)2723 -> 0.0007s2724== 20130701175200 AddContactIdToSubscriptions: migrated (0.0007s) =============2726== 20130702123456 RemoveUnusedRepositoryColumns: migrating ====================2727-- remove_column(:repositories, :last_duration)2728 -> 0.0018s2729-- remove_column(:repositories, :last_build_status)2730 -> 0.0011s2731-- remove_column(:repositories, :last_build_result)2732 -> 0.0012s2733-- remove_column(:repositories, :last_build_language)2734 -> 0.0012s2735== 20130702123456 RemoveUnusedRepositoryColumns: migrated (0.0059s) ===========2737== 20130702144325 AddUniqueIndexOnUsersGithubIdAndRemoveUniqueIndexOnUsersLogin: migrating2738-- execute("DROP INDEX index_users_on_login")2739 -> 0.0015s2740-- execute("CREATE INDEX CONCURRENTLY index_users_on_login ON users(login)")2741 -> 0.0041s2742-- execute("DROP INDEX index_users_on_github_id")2743 -> 0.0013s2744-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_github_id ON users(github_id)")2745 -> 0.0036s2746== 20130702144325 AddUniqueIndexOnUsersGithubIdAndRemoveUniqueIndexOnUsersLogin: migrated (0.0107s)2748== 20130705123456 AddExtraColumnsToOrganizations: migrating ===================2749-- add_column(:organizations, :avatar_url, :string)2750 -> 0.0010s2751-- add_column(:organizations, :location, :string)2752 -> 0.0031s2753-- add_column(:organizations, :email, :string)2754 -> 0.0015s2755-- add_column(:organizations, :company, :string)2756 -> 0.0014s2757-- add_column(:organizations, :homepage, :string)2758 -> 0.0014s2759== 20130705123456 AddExtraColumnsToOrganizations: migrated (0.0091s) ==========2761== 20130707164854 AddIndexOnGithubIdToOrganizations: migrating ================2762-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organizations_on_github_id ON organizations(github_id)")2763 -> 0.0043s2764== 20130707164854 AddIndexOnGithubIdToOrganizations: migrated (0.0046s) =======2766== 20130709185200 CreateAnnotations: migrating ================================2767-- create_table(:annotations, {:id=>:integer})2768 -> 0.0091s2769== 20130709185200 CreateAnnotations: migrated (0.0093s) =======================2771== 20130709233500 CreateAnnotationProviders: migrating ========================2772-- create_table(:annotation_providers, {:id=>:integer})2773 -> 0.0064s2774== 20130709233500 CreateAnnotationProviders: migrated (0.0067s) ===============2776== 20130710000745 AddAnnotationProviderIdToAnnotations: migrating =============2777-- add_column(:annotations, :annotation_provider_id, :integer, {:null=>false})2778 -> 0.0009s2779== 20130710000745 AddAnnotationProviderIdToAnnotations: migrated (0.0009s) ====2781== 20130726101124 AddCanceledAtToJobsAndBuilds: migrating =====================2782-- add_column(:builds, :canceled_at, :timestamp, {:precision=>nil})2783 -> 0.0006s2784-- add_column(:jobs, :canceled_at, :timestamp, {:precision=>nil})2785 -> 0.0004s2786== 20130726101124 AddCanceledAtToJobsAndBuilds: migrated (0.0011s) ============2788== 20130901183019 AddIndexOnRepositoryGithubId: migrating =====================2789-- execute("DROP INDEX index_repositories_on_github_id")2790 -> 0.0011s2791-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_github_id ON repositories(github_id)")2792 -> 0.0038s2793== 20130901183019 AddIndexOnRepositoryGithubId: migrated (0.0050s) ============2795== 20130909203321 AddCachedMatrixIdsToBuilds: migrating =======================2796-- execute("ALTER TABLE builds ADD COLUMN cached_matrix_ids integer[]")2797 -> 0.0006s2798== 20130909203321 AddCachedMatrixIdsToBuilds: migrated (0.0006s) ==============2800== 20130910184823 CreateIndexOnBuildsIdDescAndRepositoryIdAndEventType: migrating2801-- execute("CREATE INDEX CONCURRENTLY index_builds_on_id_repository_id_and_event_type_desc ON builds (id DESC, repository_id, event_type);")2802 -> 0.0037s2803== 20130910184823 CreateIndexOnBuildsIdDescAndRepositoryIdAndEventType: migrated (0.0038s)2805== 20130916101056 AddUniqueIndexOnRepositoryGithubId: migrating ===============2806-- execute("DROP INDEX index_repositories_on_github_id")2807 -> 0.0010s2808-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_repositories_on_github_id ON repositories(github_id)")2809 -> 0.0031s2810== 20130916101056 AddUniqueIndexOnRepositoryGithubId: migrated (0.0042s) ======2812== 20130920135744 AddSettingsToRepositories: migrating ========================2813-- add_column(:repositories, :settings, :json)2814 -> 0.0008s2815== 20130920135744 AddSettingsToRepositories: migrated (0.0008s) ===============2817== 20131104101056 RemoveWorkersTableAndIndexes: migrating =====================2818-- drop_table(:workers)2819 -> 0.0011s2820== 20131104101056 RemoveWorkersTableAndIndexes: migrated (0.0012s) ============2822== 20131109101056 RemoveEventsTable: migrating ================================2823-- drop_table(:events)2824 -> 0.0009s2825== 20131109101056 RemoveEventsTable: migrated (0.0010s) =======================2827== 20140120225125 RemoveAnnotationImageInfo: migrating ========================2828-- remove_column(:annotations, :image_url)2829 -> 0.0006s2830-- remove_column(:annotations, :image_alt)2831 -> 0.0003s2832== 20140120225125 RemoveAnnotationImageInfo: migrated (0.0009s) ===============2834== 20140121003026 AddStatusToAnnotations: migrating ===========================2835-- add_column(:annotations, :status, :string)2836 -> 0.0007s2837== 20140121003026 AddStatusToAnnotations: migrated (0.0007s) ==================2839== 20140204220926 AddIndicesToRequests: migrating =============================2840-- execute("CREATE INDEX CONCURRENTLY index_requests_on_repository_id ON requests(repository_id)")2841 -> 0.0037s2842-- execute("CREATE INDEX CONCURRENTLY index_requests_on_commit_id ON requests(commit_id)")2843 -> 0.0030s2844== 20140204220926 AddIndicesToRequests: migrated (0.0068s) ====================2846== 20140210003014 AddIndicesToMemberships: migrating ==========================2847-- execute("CREATE INDEX CONCURRENTLY index_memberships_on_user_id ON memberships(user_id)")2848 -> 0.0034s2849== 20140210003014 AddIndicesToMemberships: migrated (0.0034s) =================2851== 20140210012509 RemoveUnusedIndices: migrating ==============================2852-- execute("DROP INDEX CONCURRENTLY index_commits_on_commit")2853 -> 0.0019s2854-- execute("DROP INDEX CONCURRENTLY index_builds_on_state")2855 -> 0.0019s2856-- execute("DROP INDEX CONCURRENTLY index_commits_on_branch")2857 -> 0.0020s2858-- execute("DROP INDEX CONCURRENTLY index_users_on_github_oauth_token")2859 -> 0.0018s2860-- execute("DROP INDEX CONCURRENTLY index_builds_on_finished_at")2861 -> 0.0019s2862-- execute("DROP INDEX CONCURRENTLY index_jobs_on_queue_and_state")2863 -> 0.0018s2864-- execute("DROP INDEX CONCURRENTLY index_jobs_on_created_at")2865 -> 0.0018s2866== 20140210012509 RemoveUnusedIndices: migrated (0.0135s) =====================2868== 20140612131826 AddRemovedInfoToLogs: migrating =============================2869== 20140612131826 AddRemovedInfoToLogs: migrated (0.0007s) ====================2871== 20140827121945 AddEducationFieldToUser: migrating ==========================2872-- add_column(:users, :education, :boolean)2873 -> 0.0007s2874== 20140827121945 AddEducationFieldToUser: migrated (0.0007s) =================2876== 20150121135400 JobsAddReceivedAt: migrating ================================2877-- add_column(:jobs, :received_at, :timestamp, {:precision=>nil})2878 -> 0.0007s2879== 20150121135400 JobsAddReceivedAt: migrated (0.0008s) =======================2881== 20150121135401 BuildsAddReceivedAt: migrating ==============================2882-- add_column(:builds, :received_at, :timestamp, {:precision=>nil})2883 -> 0.0008s2884== 20150121135401 BuildsAddReceivedAt: migrated (0.0009s) =====================2886== 20150204144312 AddIndexOnRepositoryIdToCommits: migrating ==================2887-- execute("DROP INDEX IF EXISTS index_commits_on_repository_id")2888 -> 0.0003s2889-- execute("CREATE INDEX CONCURRENTLY index_commits_on_repository_id ON commits(repository_id)")2890 -> 0.0035s2891== 20150204144312 AddIndexOnRepositoryIdToCommits: migrated (0.0038s) =========2893== 20150210170900 IndexRequestsOnCreatedAt: migrating =========================2894-- execute("DROP INDEX IF EXISTS index_requests_on_created_at")2895 -> 0.0002s2896-- execute("CREATE INDEX CONCURRENTLY index_requests_on_created_at ON requests(created_at)")2897 -> 0.0033s2898== 20150210170900 IndexRequestsOnCreatedAt: migrated (0.0036s) ================2900== 20150223125700 CreateBranches: migrating ===================================2901-- create_table(:branches, {:id=>:integer})2902 -> 0.0197s2903-- add_index(:branches, [:repository_id, :name], {:unique=>true})2904 -> 0.0028s2905== 20150223125700 CreateBranches: migrated (0.0227s) ==========================2907== 20150311020321 AddNextBuildNumberToRepository: migrating ===================2908-- add_column(:repositories, :next_build_number, :integer)2909 -> 0.0017s2910== 20150311020321 AddNextBuildNumberToRepository: migrated (0.0019s) ==========2912== 20150316020321 AddActiveIndexToRepository: migrating =======================2913-- execute("DROP INDEX IF EXISTS index_repositories_on_active")2914 -> 0.0009s2915-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_active ON repositories(active)")2916 -> 0.0040s2917== 20150316020321 AddActiveIndexToRepository: migrated (0.0054s) ==============2919== 20150316080321 AddOwnerTypeAndOwnerIdIndexesToBuilds: migrating ============2920-- execute("DROP INDEX IF EXISTS index_builds_on_owner_type")2921 -> 0.0009s2922-- execute("DROP INDEX IF EXISTS index_builds_on_owner_id")2923 -> 0.0007s2924-- execute("CREATE INDEX CONCURRENTLY index_builds_on_owner_type ON builds(owner_type)")2925 -> 0.0046s2926-- execute("CREATE INDEX CONCURRENTLY index_builds_on_owner_id ON builds(owner_id)")2927 -> 0.0038s2928== 20150316080321 AddOwnerTypeAndOwnerIdIndexesToBuilds: migrated (0.0105s) ===2930== 20150316100321 AddOwnerTypeAndOwnerIdIndexesToRepositories: migrating ======2931-- execute("DROP INDEX IF EXISTS index_repositories_on_owner_type")2932 -> 0.0004s2933-- execute("DROP INDEX IF EXISTS index_repositories_on_owner_id")2934 -> 0.0008s2935-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_type ON repositories(owner_type)")2936 -> 0.0036s2937-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_id ON repositories(owner_id)")2938 -> 0.0037s2939== 20150316100321 AddOwnerTypeAndOwnerIdIndexesToRepositories: migrated (0.0088s)2941== 20150317004600 AddSlugIndexToRepositories: migrating =======================2942-- execute("CREATE EXTENSION IF NOT EXISTS pg_trgm")2943 -> 0.0260s2944-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_slug ON repositories USING gin((owner_name || '/' || name) gin_trgm_ops)")2945 -> 0.0029s2946== 20150317004600 AddSlugIndexToRepositories: migrated (0.0291s) ==============2948== 20150317020321 AddTokenIndexToTokens: migrating ============================2949-- execute("DROP INDEX IF EXISTS index_tokens_on_token")2950 -> 0.0002s2951-- execute("CREATE INDEX CONCURRENTLY index_tokens_on_token ON tokens(token)")2952 -> 0.0037s2953== 20150317020321 AddTokenIndexToTokens: migrated (0.0040s) ===================2955== 20150317080321 AddLoginIndexToOrganizations: migrating =====================2956-- execute("DROP INDEX IF EXISTS index_organizations_on_login")2957 -> 0.0003s2958-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_login ON organizations(login)")2959 -> 0.0036s2960== 20150317080321 AddLoginIndexToOrganizations: migrated (0.0039s) ============2962== 20150414001337 AddLowerCaseIndices: migrating ==============================2963-- execute("DROP INDEX IF EXISTS index_organizations_on_lower_login")2964 -> 0.0003s2965-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_lower_login ON organizations USING btree(lower(login))")2966 -> 0.0034s2967-- execute("DROP INDEX IF EXISTS index_users_on_lower_login")2968 -> 0.0002s2969-- execute("CREATE INDEX CONCURRENTLY index_users_on_lower_login ON users USING btree(lower(login))")2970 -> 0.0035s2971-- execute("DROP INDEX IF EXISTS index_repositories_on_lower_name")2972 -> 0.0002s2973-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_name ON repositories USING btree(lower(name))")2974 -> 0.0035s2975-- execute("DROP INDEX IF EXISTS index_repositories_on_lower_owner_name")2976 -> 0.0002s2977-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_owner_name ON repositories USING btree(lower(owner_name))")2978 -> 0.0032s2979== 20150414001337 AddLowerCaseIndices: migrated (0.0148s) =====================2981== 20150528101600 RepositoriesAddIndexOwnerName: migrating ====================2982-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_name ON repositories(owner_name)")2983 -> 0.0033s2984== 20150528101600 RepositoriesAddIndexOwnerName: migrated (0.0033s) ===========2986== 20150528101601 RepositoriesAddIndexName: migrating =========================2987-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_name ON repositories(name)")2988 -> 0.0035s2989== 20150528101601 RepositoriesAddIndexName: migrated (0.0035s) ================2991== 20150528101602 RepositoriesDropIndexOwnerNameName: migrating ===============2992-- execute("DROP INDEX CONCURRENTLY index_repositories_on_owner_name_and_name")2993 -> 0.0021s2994== 20150528101602 RepositoriesDropIndexOwnerNameName: migrated (0.0021s) ======2996== 20150528101603 BuildsAddIndexEventType: migrating ==========================2997-- execute("CREATE INDEX CONCURRENTLY index_builds_on_event_type ON builds (event_type)")2998 -> 0.0035s2999== 20150528101603 BuildsAddIndexEventType: migrated (0.0035s) =================3001== 20150528101604 BuildsAddIndexRepositoryId: migrating =======================3002-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id ON builds (repository_id)")3003 -> 0.0034s3004== 20150528101604 BuildsAddIndexRepositoryId: migrated (0.0034s) ==============3006== 20150528101605 BuildsAddIndexState: migrating ==============================3007-- execute("CREATE INDEX CONCURRENTLY index_builds_on_state ON builds (state)")3008 -> 0.0037s3009== 20150528101605 BuildsAddIndexState: migrated (0.0037s) =====================3011== 20150528101607 BuildsAddIndexBranch: migrating =============================3012-- execute("CREATE INDEX CONCURRENTLY index_builds_on_branch ON builds (branch)")3013 -> 0.0032s3014== 20150528101607 BuildsAddIndexBranch: migrated (0.0033s) ====================3016== 20150528101608 BuildsDropIndexRepositoryIdAndState: migrating ==============3017-- execute("DROP INDEX CONCURRENTLY index_builds_on_repository_id_and_state")3018 -> 0.0021s3019== 20150528101608 BuildsDropIndexRepositoryIdAndState: migrated (0.0021s) =====3021== 20150528101609 BuildsDropIndexRepositoryIdAndEventType: migrating ==========3022-- execute("DROP INDEX CONCURRENTLY index_builds_on_repository_id_and_event_type")3023 -> 0.0019s3024== 20150528101609 BuildsDropIndexRepositoryIdAndEventType: migrated (0.0019s) =3026== 20150528101610 BuildsDropIndexIdRepositoryIdAndEventTypeDesc: migrating ====3027-- execute("DROP INDEX CONCURRENTLY index_builds_on_id_repository_id_and_event_type_desc")3028 -> 0.0019s3029== 20150528101610 BuildsDropIndexIdRepositoryIdAndEventTypeDesc: migrated (0.0020s)3031== 20150528101611 BuildsDropIndexRepositoryIdAndEventTypeAndStateAndBranch: migrating3032-- execute("DROP INDEX CONCURRENTLY index_builds_on_repository_id_and_event_type_and_state_and_bran")3033 -> 0.0021s3034== 20150528101611 BuildsDropIndexRepositoryIdAndEventTypeAndStateAndBranch: migrated (0.0021s)3036== 20150609175200 AddCancelationColumnsToSubscriptions: migrating =============3037-- change_table(:subscriptions)3038 -> 0.0011s3039== 20150609175200 AddCancelationColumnsToSubscriptions: migrated (0.0012s) ====3041== 20150610143500 JobsAddIndexOwnerId: migrating ==============================3042-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_id ON jobs (owner_id)")3043 -> 0.0040s3044== 20150610143500 JobsAddIndexOwnerId: migrated (0.0041s) =====================3046== 20150610143501 JobsAddIndexOwnerType: migrating ============================3047-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_type ON jobs (owner_type)")3048 -> 0.0034s3049== 20150610143501 JobsAddIndexOwnerType: migrated (0.0035s) ===================3051== 20150610143502 JobsAddIndexSourceId: migrating =============================3052-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_source_id ON jobs (source_id)")3053 -> 0.0036s3054== 20150610143502 JobsAddIndexSourceId: migrated (0.0036s) ====================3056== 20150610143503 JobsAddIndexSourceType: migrating ===========================3057-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_source_type ON jobs (source_type)")3058 -> 0.0032s3059== 20150610143503 JobsAddIndexSourceType: migrated (0.0032s) ==================3061== 20150610143504 JobsAddIndexType: migrating =================================3062-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_type ON jobs (type)")3063 -> 0.0084s3064== 20150610143504 JobsAddIndexType: migrated (0.0085s) ========================3066== 20150610143505 JobsDropIndexOwnerIdAndOwnerTypeAndState: migrating =========3067-- execute("DROP INDEX CONCURRENTLY index_jobs_on_owner_id_and_owner_type_and_state")3068 -> 0.0023s3069== 20150610143505 JobsDropIndexOwnerIdAndOwnerTypeAndState: migrated (0.0025s)3071== 20150610143506 JobsDropIndexStateOwnerTypeOwnerId: migrating ===============3072-- execute("DROP INDEX CONCURRENTLY index_jobs_on_state_owner_type_owner_id")3073 -> 0.0024s3074== 20150610143506 JobsDropIndexStateOwnerTypeOwnerId: migrated (0.0025s) ======3076== 20150610143507 JobsDropIndexTypeAndSourceIdAndSourceType: migrating ========3077-- index_exists?(:jobs, :index_jobs_on_type_and_owner_id_and_owner_type, {:name=>"index_jobs_on_index_jobs_on_type_and_owner_id_and_owner_type"})3078 -> 0.0054s3079== 20150610143507 JobsDropIndexTypeAndSourceIdAndSourceType: migrated (0.0055s)3081== 20150610143508 JobsAddIndexState: migrating ================================3082-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_state ON jobs (state)")3083 -> 0.0043s3084== 20150610143508 JobsAddIndexState: migrated (0.0043s) =======================3086== 20150610143509 JobsAddIndexQueue: migrating ================================3087-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_queue ON jobs (queue)")3088 -> 0.0035s3089== 20150610143509 JobsAddIndexQueue: migrated (0.0035s) =======================3091== 20150610143510 TokensAddIndexUserId: migrating =============================3092-- execute("CREATE INDEX CONCURRENTLY index_tokens_on_user_id ON tokens (user_id)")3093 -> 0.0032s3094== 20150610143510 TokensAddIndexUserId: migrated (0.0033s) ====================3096== 20150615103059 AddStatusToSubscriptions: migrating =========================3097-- add_column(:subscriptions, :status, :string)3098 -> 0.0009s3099== 20150615103059 AddStatusToSubscriptions: migrated (0.0010s) ================3101== 20150629231300 ReposAddInvalidatedAt: migrating ============================3102-- add_column(:repositories, :invalidated_at, :timestamp, {:precision=>nil})3103 -> 0.0009s3104== 20150629231300 ReposAddInvalidatedAt: migrated (0.0010s) ===================3106== 20150923131400 BroadcastsAddCategory: migrating ============================3107-- add_column(:broadcasts, :category, :string)3108 -> 0.0009s3109== 20150923131400 BroadcastsAddCategory: migrated (0.0010s) ===================3111== 20151112153500 CreateStars: migrating ======================================3112-- create_table(:stars, {:id=>:integer})3113 -> 0.0042s3114-- add_index(:stars, :user_id)3115 -> 0.0022s3116== 20151112153500 CreateStars: migrated (0.0066s) =============================3118== 20151113111400 StarsAddIndexUserIdAndRepositoryId: migrating ===============3119-- execute("CREATE UNIQUE INDEX index_stars_on_user_id_and_repository_id ON stars (user_id, repository_id)")3120 -> 0.0050s3121== 20151113111400 StarsAddIndexUserIdAndRepositoryId: migrated (0.0051s) ======3123== 20151127153500 UsersAddIndexGithubOauthToken: migrating ====================3124-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_github_oauth_token ON users (github_oauth_token)")3125 -> 0.0057s3126== 20151127153500 UsersAddIndexGithubOauthToken: migrated (0.0058s) ===========3128== 20151127154200 AnnotationsAddIndexJobId: migrating =========================3129-- execute("CREATE INDEX CONCURRENTLY index_annotations_on_job_id ON annotations (job_id)")3130 -> 0.0063s3131== 20151127154200 AnnotationsAddIndexJobId: migrated (0.0066s) ================3133== 20151127154600 BroadcastsAddIndexRecipientIdAndRecipientType: migrating ====3134-- execute("CREATE INDEX CONCURRENTLY index_broadcasts_on_recipient_id_and_recipient_type ON broadcasts (recipient_id, recipient_type)")3135 -> 0.0036s3136== 20151127154600 BroadcastsAddIndexRecipientIdAndRecipientType: migrated (0.0036s)3138== 20151202122200 UsersAddFirstLoggedInAt: migrating ==========================3139-- add_column(:users, :first_logged_in_at, :timestamp, {:precision=>nil})3140 -> 0.0006s3141== 20151202122200 UsersAddFirstLoggedInAt: migrated (0.0006s) =================3143== 20160107120927 AddCronTable: migrating =====================================3144-- create_table(:crons, {:id=>:integer})3145 -> 0.0053s3146== 20160107120927 AddCronTable: migrated (0.0053s) ============================3148== 20160303165750 AddDebugOptionsToJobs: migrating ============================3149-- add_column(:jobs, :debug_options, :text)3150 -> 0.0006s3151== 20160303165750 AddDebugOptionsToJobs: migrated (0.0006s) ===================3153== 20160412113020 BuildsDropIndexOwnerType: migrating =========================3154-- execute("DROP INDEX CONCURRENTLY index_builds_on_owner_type")3155 -> 0.0020s3156== 20160412113020 BuildsDropIndexOwnerType: migrated (0.0020s) ================3158== 20160412113070 RepositoriesDropIndexLastBuildStartedAt: migrating ==========3159-- execute("DROP INDEX CONCURRENTLY index_repositories_on_last_build_started_at")3160 -> 0.0019s3161== 20160412113070 RepositoriesDropIndexLastBuildStartedAt: migrated (0.0020s) =3163== 20160412121405 JobsDropIndexType: migrating ================================3164-- execute("DROP INDEX CONCURRENTLY index_jobs_on_type")3165 -> 0.0020s3166== 20160412121405 JobsDropIndexType: migrated (0.0020s) =======================3168== 20160412123900 JobsDropIndexSourceType: migrating ==========================3169-- execute("DROP INDEX CONCURRENTLY index_jobs_on_source_type")3170 -> 0.0020s3171== 20160412123900 JobsDropIndexSourceType: migrated (0.0020s) =================3173== 20160414214442 JobsAddIndexQueuedAt: migrating =============================3174-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_queued_at ON jobs (queued_at)")3175 -> 0.0037s3176== 20160414214442 JobsAddIndexQueuedAt: migrated (0.0037s) ====================3178== 20160422104300 BuildsAddIndexNumber: migrating =============================3179-- execute("CREATE INDEX CONCURRENTLY index_builds_on_number ON builds (number)")3180 -> 0.0032s3181== 20160422104300 BuildsAddIndexNumber: migrated (0.0033s) ====================3183== 20160422121400 BuildsAddIndexRepositoryIdAndNumberAndEventType: migrating ==3184-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_number_and_event_type ON builds (repository_id, number, event_type)")3185 -> 0.0034s3186== 20160422121400 BuildsAddIndexRepositoryIdAndNumberAndEventType: migrated (0.0034s)3188== 20160510142700 JobsAddIndexCreatedAt: migrating ============================3189-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_created_at ON jobs (created_at)")3190 -> 0.0030s3191== 20160510142700 JobsAddIndexCreatedAt: migrated (0.0031s) ===================3193== 20160510144200 BuildsAddPrivate: migrating =================================3194-- change_table(:builds)3195 -> 0.0007s3196== 20160510144200 BuildsAddPrivate: migrated (0.0007s) ========================3198== 20160510150300 JobsAddPrivate: migrating ===================================3199-- change_table(:jobs)3200 -> 0.0007s3201== 20160510150300 JobsAddPrivate: migrated (0.0008s) ==========================3203== 20160510150400 RequestsAddPrivate: migrating ===============================3204-- change_table(:requests)3205 -> 0.0006s3206== 20160510150400 RequestsAddPrivate: migrated (0.0007s) ======================3208== 20160513074300 AddCurrentBuildIdToRepositories: migrating ==================3209-- add_column(:repositories, :current_build_id, :bigint)3210 -> 0.0008s3211-- execute("ALTER TABLE repositories ADD CONSTRAINT fk_repositories_current_build_id FOREIGN KEY (current_build_id) REFERENCES builds (id);")3212 -> 0.0015s3213== 20160513074300 AddCurrentBuildIdToRepositories: migrated (0.0024s) =========3215== 20160609163600 PermissionsAddIndexUserIdAndRepositoryId: migrating =========3216-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_permissions_on_user_id_and_repository_id ON permissions (user_id, repository_id)")3217 -> 0.0040s3218== 20160609163600 PermissionsAddIndexUserIdAndRepositoryId: migrated (0.0040s)3220== 20160623133900 CreatePreviousJobStates: migrating ==========================3221-- create_table(:previous_job_states, {:id=>:integer})3222 -> 0.0048s3223-- add_column(:jobs, :previous_job_state_id, :bigint)3224 -> 0.0004s3225== 20160623133900 CreatePreviousJobStates: migrated (0.0052s) =================3227== 20160623133901 AddPreviousStatesTriggers: migrating ========================3228-- execute(" CREATE FUNCTION save_state_change() RETURNS trigger AS $$\n DECLARE\n previous_job_state_id BIGINT;\n BEGIN\n if TG_OP='UPDATE' then\n UPDATE previous_job_states SET ended_at = NOW() WHERE id = OLD.previous_job_state_id;\n end if;\n\n INSERT INTO previous_job_states (job_id, set_at, state) VALUES(NEW.id, NOW(), NEW.state)\n RETURNING id INTO previous_job_state_id;\n NEW.previous_job_state_id = previous_job_state_id;\n\n RETURN NEW;\n END;\n $$ LANGUAGE plpgsql;\n\n CREATE TRIGGER save_state_change_on_update\n BEFORE UPDATE on jobs\n FOR EACH ROW\n WHEN (OLD.state IS DISTINCT FROM NEW.state)\n EXECUTE PROCEDURE save_state_change();\n\n CREATE TRIGGER save_state_change_on_insert\n BEFORE INSERT on jobs\n FOR EACH ROW\n EXECUTE PROCEDURE save_state_change();\n")3229 -> 0.0123s3230== 20160623133901 AddPreviousStatesTriggers: migrated (0.0124s) ===============3232== 20160712125400 RevertPreviousJobStates: migrating ==========================3233-- execute(" DROP TRIGGER IF EXISTS save_state_change_on_update on jobs;\n DROP TRIGGER IF EXISTS save_state_change_on_insert on jobs;\n DROP FUNCTION IF EXISTS save_state_change();\n")3234 -> 0.0008s3235-- remove_column(:jobs, :previous_job_state_id)3236 -> 0.0005s3237-- drop_table(:previous_job_states)3238 -> 0.0008s3239== 20160712125400 RevertPreviousJobStates: migrated (0.0021s) =================3241== 20160819103700 AddAvatarUrlToUsers: migrating ==============================3242-- add_column(:users, :avatar_url, :string)3243 -> 0.0014s3244== 20160819103700 AddAvatarUrlToUsers: migrated (0.0015s) =====================3246== 20160920220400 AddRoleToMemberships: migrating =============================3247-- add_column(:memberships, :role, :string)3248 -> 0.0033s3249== 20160920220400 AddRoleToMemberships: migrated (0.0033s) ====================3251== 20161028154600 RemoveTypeIndices: migrating ================================3252-- execute("DROP INDEX CONCURRENTLY IF EXISTS index_requests_on_event_type")3253 -> 0.0006s3254-- execute("DROP INDEX CONCURRENTLY IF EXISTS index_jobs_on_owner_type")3255 -> 0.0027s3256== 20161028154600 RemoveTypeIndices: migrated (0.0034s) =======================3258== 20161101000000 AddNextRunLastRunToCrons: migrating =========================3259-- column_exists?(:crons, :next_run)3260 -> 0.0060s3261-- add_column(:crons, :next_run, :timestamp, {:precision=>nil})3262 -> 0.0021s3263-- column_exists?(:crons, :last_run)3264 -> 0.0047s3265-- add_column(:crons, :last_run, :timestamp, {:precision=>nil})3266 -> 0.0016s3267== 20161101000000 AddNextRunLastRunToCrons: migrated (0.0151s) ================3269== 20161101000001 AddDontRunIfRecentBuildExists: migrating ====================3270-- column_exists?(:crons, :dont_run_if_recent_build_exists)3271 -> 0.0052s3272-- add_column(:crons, :dont_run_if_recent_build_exists, :boolean, {:default=>false})3273 -> 0.0028s3274== 20161101000001 AddDontRunIfRecentBuildExists: migrated (0.0086s) ===========3276== 20161201112200 CreateBetaFeatures: migrating ===============================3277-- create_table(:beta_features, {:id=>:integer})3278 -> 0.0080s3279== 20161201112200 CreateBetaFeatures: migrated (0.0081s) ======================3281== 20161201112600 CreateUserBetaFeatures: migrating ===========================3282-- create_table(:user_beta_features, {:id=>:integer})3283 -> 0.0031s3284-- add_index(:user_beta_features, [:user_id, :beta_feature_id])3285 -> 0.0020s3286== 20161201112600 CreateUserBetaFeatures: migrated (0.0052s) ==================3288== 20161202000000 RemoveDisableByBuildFromCrons: migrating ====================3289-- remove_column(:crons, :disable_by_build)3290 -> 0.0007s3291== 20161202000000 RemoveDisableByBuildFromCrons: migrated (0.0007s) ===========3293== 20161206155800 AddBillingAdminOnlyToOrganizations: migrating ===============3294-- add_column(:organizations, :billing_admin_only, :boolean)3295 -> 0.0007s3296== 20161206155800 AddBillingAdminOnlyToOrganizations: migrated (0.0007s) ======3298== 20161221171300 BuildsAddIndexRepositoryIdAndNumber: migrating ==============3299-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_number ON builds(repository_id, (number::integer))")3300 -> 0.0037s3301== 20161221171300 BuildsAddIndexRepositoryIdAndNumber: migrated (0.0037s) =====3303== 20170211000000 JobsAddStageNumber: migrating ===============================3304-- add_column(:jobs, :stage_number, :string)3305 -> 0.0006s3306== 20170211000000 JobsAddStageNumber: migrated (0.0007s) ======================3308== 20170211000001 JobsAddStageId: migrating ===================================3309-- change_table(:jobs)3310 -> 0.0007s3311== 20170211000001 JobsAddStageId: migrated (0.0007s) ==========================3313== 20170211000002 StagesCreate: migrating =====================================3314-- create_table(:stages, {:id=>:integer})3315 -> 0.0053s3316== 20170211000002 StagesCreate: migrated (0.0053s) ============================3318== 20170211000003 StagesAddStateAndTimestamps: migrating ======================3319-- change_table(:stages)3320 -> 0.0014s3321== 20170211000003 StagesAddStateAndTimestamps: migrated (0.0014s) =============3323== 20170213124000 AddConstraintForOwnerIdToSubscriptions: migrating ===========3324-- execute("CREATE UNIQUE INDEX subscriptions_owner ON subscriptions (owner_id, owner_type) WHERE (status = 'subscribed');")3325 -> 0.0026s3326== 20170213124000 AddConstraintForOwnerIdToSubscriptions: migrated (0.0027s) ==3328== 20170316000000 QueueableJobsCreate: migrating ==============================3329-- create_table(:queueable_jobs, {:id=>:integer})3330 -> 0.0031s3331== 20170316000000 QueueableJobsCreate: migrated (0.0031s) =====================3333== 20170316000001 QueueableJobsIndexJobId: migrating ==========================3334-- add_index(:queueable_jobs, :job_id, {:algorithm=>:concurrently})3335 -> 0.0037s3336== 20170316000001 QueueableJobsIndexJobId: migrated (0.0037s) =================3338== 20170318000000 PullRequestsCreate: migrating ===============================3339-- create_table(:pull_requests, {:id=>:integer})3340 -> 0.0047s3341== 20170318000000 PullRequestsCreate: migrated (0.0047s) ======================3343== 20170318000001 RequestsAddPullRequestId: migrating =========================3344-- change_table(:requests)3345 -> 0.0007s3346== 20170318000001 RequestsAddPullRequestId: migrated (0.0007s) ================3348== 20170318000002 BuildsAddPullRequestId: migrating ===========================3349-- change_table(:builds)3350 -> 0.0007s3351== 20170318000002 BuildsAddPullRequestId: migrated (0.0007s) ==================3353== 20170322000000 AddIndexOnRequestsRepositoryIdAndIdDesc: migrating ==========3354-- execute("CREATE INDEX CONCURRENTLY index_requests_on_repository_id_and_id_desc ON requests (repository_id, id DESC);")3355 -> 0.0036s3356== 20170322000000 AddIndexOnRequestsRepositoryIdAndIdDesc: migrated (0.0036s) =3358== 20170331000000 AddIndexRepositoryIdOnPullRequests: migrating ===============3359-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_pull_requests_on_repository_id_and_number ON pull_requests (repository_id, (number::integer));")3360 -> 0.0037s3361== 20170331000000 AddIndexRepositoryIdOnPullRequests: migrated (0.0037s) ======3363== 20170401000000 OwnerGroupsCreate: migrating ================================3364-- create_table(:owner_groups, {:id=>:integer})3365 -> 0.0049s3366== 20170401000000 OwnerGroupsCreate: migrated (0.0050s) =======================3368== 20170401000001 OwnerGroupsIndexOwnerIdOwnerType: migrating =================3369-- execute("CREATE INDEX CONCURRENTLY index_owner_groups_on_owner_type_and_owner_id ON owner_groups (owner_type, owner_id);")3370 -> 0.0035s3371== 20170401000001 OwnerGroupsIndexOwnerIdOwnerType: migrated (0.0035s) ========3373== 20170401000002 OwnerGroupsIndexUuid: migrating =============================3374-- execute("CREATE INDEX CONCURRENTLY index_owner_groups_on_uuid ON owner_groups (uuid);")3375 -> 0.0034s3376== 20170401000002 OwnerGroupsIndexUuid: migrated (0.0035s) ====================3378== 20170405000000 TagsCreate: migrating =======================================3379-- create_table(:tags, {:id=>:integer})3380 -> 0.0051s3381== 20170405000000 TagsCreate: migrated (0.0051s) ==============================3383== 20170405000001 RequestsAddBranchIdAndTagId: migrating ======================3384-- change_table(:requests)3385 -> 0.0147s3386== 20170405000001 RequestsAddBranchIdAndTagId: migrated (0.0148s) =============3388== 20170405000002 CommitsAddBranchIdAndTagId: migrating =======================3389-- change_table(:commits)3390 -> 0.0037s3391== 20170405000002 CommitsAddBranchIdAndTagId: migrated (0.0039s) ==============3393== 20170405000003 BuildsAddBranchIdAndTagId: migrating ========================3394-- change_table(:builds)3395 -> 0.0015s3396== 20170405000003 BuildsAddBranchIdAndTagId: migrated (0.0016s) ===============3398== 20170408000000 RequestsAddSenderId: migrating ==============================3399-- change_table(:requests)3400 -> 0.0013s3401== 20170408000000 RequestsAddSenderId: migrated (0.0013s) =====================3403== 20170408000001 BuildsAddSenderId: migrating ================================3404-- change_table(:builds)3405 -> 0.0012s3406== 20170408000001 BuildsAddSenderId: migrated (0.0012s) =======================3408== 20170410000000 JobsIndexStageId: migrating =================================3409-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_stage_id ON jobs (stage_id);")3410 -> 0.0037s3411== 20170410000000 JobsIndexStageId: migrated (0.0038s) ========================3413== 20170411000000 TagsIndexRepoIdAndName: migrating ===========================3414-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_repository_id_and_name ON tags (repository_id, name);")3415 -> 0.0037s3416== 20170411000000 TagsIndexRepoIdAndName: migrated (0.0037s) ==================3418== 20170419093249 AddSourceToSubscriptions: migrating =========================3419-- execute(" CREATE TYPE source_type AS ENUM ('manual', 'stripe', 'github', 'unknown');\n")3420 -> 0.0012s3421-- add_column(:subscriptions, :source, :source_type, {:default=>"unknown", :null=>false})3422 -> 0.0012s3423== 20170419093249 AddSourceToSubscriptions: migrated (0.0025s) ================3425== 20170531125700 AddIndexOnBuildsSenderTypeAndSenderId: migrating ============3426-- execute("CREATE INDEX CONCURRENTLY index_builds_on_sender_type_and_sender_id ON builds (sender_type, sender_id);")3427 -> 0.0043s3428== 20170531125700 AddIndexOnBuildsSenderTypeAndSenderId: migrated (0.0044s) ===3430== 20170601163700 DropIndexOnRepositoriesBuildsAndCommits: migrating ==========3431-- execute("DROP INDEX CONCURRENTLY index_repositories_on_lower_owner_name")3432 -> 0.0023s3433-- execute("DROP INDEX CONCURRENTLY index_repositories_on_owner_type")3434 -> 0.0025s3435-- execute("DROP INDEX CONCURRENTLY index_commits_on_repository_id")3436 -> 0.0022s3437-- execute("DROP INDEX CONCURRENTLY index_builds_on_number")3438 -> 0.0022s3439== 20170601163700 DropIndexOnRepositoriesBuildsAndCommits: migrated (0.0094s) =3441== 20170601164400 AddIndexOnBuildsAndStages: migrating ========================3442-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_branch_and_event_type_and_id ON builds (repository_id, branch, event_type, id)")3443 -> 0.0043s3444-- execute("CREATE INDEX CONCURRENTLY index_stages_on_build_id ON stages (build_id)")3445 -> 0.0038s3446== 20170601164400 AddIndexOnBuildsAndStages: migrated (0.0083s) ===============3448== 20170609174400 DropUnusedIndexesOnJobsAndBuilds: migrating =================3449-- execute("DROP INDEX CONCURRENTLY index_jobs_on_repository_id")3450 -> 0.0023s3451-- execute("DROP INDEX CONCURRENTLY index_jobs_on_queued_at")3452 -> 0.0023s3453-- execute("DROP INDEX CONCURRENTLY index_jobs_on_queue")3454 -> 0.0022s3455-- execute("DROP INDEX CONCURRENTLY index_jobs_on_owner_id")3456 -> 0.0022s3457-- execute("DROP INDEX CONCURRENTLY index_builds_on_branch")3458 -> 0.0023s3459-- execute("DROP INDEX CONCURRENTLY index_builds_on_event_type")3460 -> 0.0021s3461-- execute("DROP INDEX CONCURRENTLY index_builds_on_owner_id")3462 -> 0.0021s3463== 20170609174400 DropUnusedIndexesOnJobsAndBuilds: migrated (0.0161s) ========3465== 20170613000000 CreateTrials: migrating =====================================3466-- create_table(:trials, {:id=>:integer})3467 -> 0.0060s3468-- execute("CREATE INDEX CONCURRENTLY index_trials_on_owner ON trials(owner_id, owner_type)")3469 -> 0.0037s3470== 20170613000000 CreateTrials: migrated (0.0098s) ============================3472== 20170620144500 AddIndexesOnBuildsAndJobsAndBranches: migrating =============3473-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_branch_and_id_desc ON builds (repository_id, branch, id DESC)")3474 -> 0.0036s3475-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_id_and_owner_type_and_state ON jobs (owner_id, owner_type, state)")3476 -> 0.0036s3477-- execute("CREATE INDEX CONCURRENTLY index_branches_on_repository_id ON branches (repository_id)")3478 -> 0.0032s3479== 20170620144500 AddIndexesOnBuildsAndJobsAndBranches: migrated (0.0106s) ====3481== 20170621142300 RemovePlansTable: migrating =================================3482-- drop_table(:plans)3483 -> 0.0009s3484== 20170621142300 RemovePlansTable: migrated (0.0009s) ========================3486== 20170713162000 AddCcLastDigitsToInvoices: migrating ========================3487-- change_table(:invoices)3488 -> 0.0007s3489== 20170713162000 AddCcLastDigitsToInvoices: migrated (0.0007s) ===============3491== 20170822171600 CreateMessages: migrating ===================================3492-- create_table("messages", {:force=>:cascade, :id=>:integer})3493 -> 0.0054s3494-- execute("CREATE INDEX CONCURRENTLY index_messages_on_subject_type_and_subject_id ON messages(subject_type, subject_id)")3495 -> 0.0033s3496== 20170822171600 CreateMessages: migrated (0.0088s) ==========================3498== 20170831000000 CreateTrialAllowances: migrating ============================3499-- create_table(:trial_allowances, {:id=>:integer})3500 -> 0.0048s3501-- add_index(:trial_allowances, :trial_id)3502 -> 0.0020s3503-- add_index(:trial_allowances, [:creator_id, :creator_type])3504 -> 0.0019s3505== 20170831000000 CreateTrialAllowances: migrated (0.0087s) ===================3507== 20170911172800 AddIndexOnJobsUpdatedAt: migrating ==========================3508-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_updated_at ON jobs (updated_at)")3509 -> 0.0033s3510== 20170911172800 AddIndexOnJobsUpdatedAt: migrated (0.0034s) =================3512== 20171017104500 AddConcurrencyToSubscriptions: migrating ====================3513-- change_table(:subscriptions)3514 -> 0.0007s3515== 20171017104500 AddConcurrencyToSubscriptions: migrated (0.0007s) ===========3517== 20171024000000 AddAbuseTable: migrating ====================================3518-- create_table(:abuses, {:id=>:integer})3519 -> 0.0057s3520-- execute("CREATE INDEX CONCURRENTLY index_abuses_on_owner ON abuses(owner_id)")3521 -> 0.0038s3522== 20171024000000 AddAbuseTable: migrated (0.0096s) ===========================3524== 20171025000000 AddUpdatedAtTriggerToBuildsAndJobs: migrating ===============3525-- execute(" CREATE FUNCTION set_updated_at() RETURNS trigger AS $$\n BEGIN\n IF TG_OP = 'INSERT' OR\n (TG_OP = 'UPDATE' AND NEW.* IS DISTINCT FROM OLD.*) THEN\n NEW.updated_at := statement_timestamp();\n END IF;\n RETURN NEW;\n END;\n $$ LANGUAGE plpgsql;\n\n CREATE TRIGGER set_updated_at_on_builds\n BEFORE INSERT OR UPDATE ON builds\n FOR EACH ROW\n EXECUTE PROCEDURE set_updated_at();\n\n CREATE TRIGGER set_updated_at_on_jobs\n BEFORE INSERT OR UPDATE ON jobs\n FOR EACH ROW\n EXECUTE PROCEDURE set_updated_at();\n")3526 -> 0.0009s3527== 20171025000000 AddUpdatedAtTriggerToBuildsAndJobs: migrated (0.0009s) ======3529== 20171103000000 UpdateIndexOnAbuses: migrating ==============================3530-- index_exists?(:abuses, :owner, {:name=>"index_abuses_on_owner"})3531 -> 0.0014s3532-- index_exists?(:abuses, [:owner_id, :owner_type, :level], {:name=>"index_abuses_on_owner_id_and_owner_type_and_level"})3533 -> 0.0012s3534-- add_index(:abuses, [:owner_id, :owner_type, :level], {:unique=>true, :algorithm=>:concurrently})3535 -> 0.0039s3536== 20171103000000 UpdateIndexOnAbuses: migrated (0.0066s) =====================3538== 20171211000000 AddRepositoryIdBranchEventTypeIndexOnBuilds: migrating ======3539-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_branch_and_event_type ON builds (repository_id, branch, event_type) WHERE state IN ('created', 'queued', 'received')")3540 -> 0.0045s3541== 20171211000000 AddRepositoryIdBranchEventTypeIndexOnBuilds: migrated (0.0045s)3543== 20180212000000 UsersAddSuspended: migrating ================================3544-- add_column(:users, :suspended, :boolean, {:default=>false})3545 -> 0.0015s3546== 20180212000000 UsersAddSuspended: migrated (0.0016s) =======================3548== 20180213000000 UsersAddSuspendedAt: migrating ==============================3549-- add_column(:users, :suspended_at, :timestamp, {:precision=>nil})3550 -> 0.0008s3551== 20180213000000 UsersAddSuspendedAt: migrated (0.0009s) =====================3553== 20180222000000 AddComIdAndOrgId: migrating =================================3554-- add_column(:branches, :org_id, :integer)3555 -> 0.0007s3556-- add_column(:builds, :org_id, :integer)3557 -> 0.0005s3558-- add_column(:commits, :org_id, :integer)3559 -> 0.0004s3560-- add_column(:crons, :org_id, :integer)3561 -> 0.0005s3562-- add_column(:jobs, :org_id, :integer)3563 -> 0.0005s3564-- add_column(:organizations, :org_id, :integer)3565 -> 0.0004s3566-- add_column(:permissions, :org_id, :integer)3567 -> 0.0004s3568-- add_column(:pull_requests, :org_id, :integer)3569 -> 0.0004s3570-- add_column(:repositories, :org_id, :integer)3571 -> 0.0005s3572-- add_column(:requests, :org_id, :integer)3573 -> 0.0004s3574-- add_column(:ssl_keys, :org_id, :integer)3575 -> 0.0004s3576-- add_column(:stages, :org_id, :integer)3577 -> 0.0004s3578-- add_column(:tags, :org_id, :integer)3579 -> 0.0005s3580-- add_column(:users, :org_id, :integer)3581 -> 0.0005s3582-- add_column(:branches, :com_id, :integer)3583 -> 0.0005s3584-- add_column(:builds, :com_id, :integer)3585 -> 0.0005s3586-- add_column(:commits, :com_id, :integer)3587 -> 0.0005s3588-- add_column(:crons, :com_id, :integer)3589 -> 0.0005s3590-- add_column(:jobs, :com_id, :integer)3591 -> 0.0005s3592-- add_column(:organizations, :com_id, :integer)3593 -> 0.0005s3594-- add_column(:permissions, :com_id, :integer)3595 -> 0.0005s3596-- add_column(:pull_requests, :com_id, :integer)3597 -> 0.0005s3598-- add_column(:repositories, :com_id, :integer)3599 -> 0.0005s3600-- add_column(:requests, :com_id, :integer)3601 -> 0.0005s3602-- add_column(:ssl_keys, :com_id, :integer)3603 -> 0.0005s3604-- add_column(:stages, :com_id, :integer)3605 -> 0.0005s3606-- add_column(:tags, :com_id, :integer)3607 -> 0.0005s3608-- add_column(:users, :com_id, :integer)3609 -> 0.0140s3610== 20180222000000 AddComIdAndOrgId: migrated (0.0280s) ========================3612== 20180222000001 AddComIdAndOrgIdIndices: migrating ==========================3613-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_on_org_id ON branches USING btree (org_id)")3614 -> 0.0038s3615-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_builds_on_org_id ON builds USING btree (org_id)")3616 -> 0.0036s3617-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_jobs_on_org_id ON jobs USING btree (org_id)")3618 -> 0.0037s3619-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_commits_on_org_id ON commits USING btree (org_id)")3620 -> 0.0036s3621-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_crons_on_org_id ON crons USING btree (org_id)")3622 -> 0.0035s3623-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organizations_on_org_id ON organizations USING btree (org_id)")3624 -> 0.0033s3625-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_permissions_on_org_id ON permissions USING btree (org_id)")3626 -> 0.0034s3627-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_pull_requests_on_org_id ON pull_requests USING btree (org_id)")3628 -> 0.0033s3629-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_repositories_on_org_id ON repositories USING btree (org_id)")3630 -> 0.0038s3631-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_requests_on_org_id ON requests USING btree (org_id)")3632 -> 0.0038s3633-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_ssl_keys_on_org_id ON ssl_keys USING btree (org_id)")3634 -> 0.0034s3635-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_stages_on_org_id ON stages USING btree (org_id)")3636 -> 0.0037s3637-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_org_id ON tags USING btree (org_id)")3638 -> 0.0035s3639-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_org_id ON users USING btree (org_id)")3640 -> 0.0037s3641-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_on_com_id ON branches USING btree (com_id)")3642 -> 0.0037s3643-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_builds_on_com_id ON builds USING btree (com_id)")3644 -> 0.0037s3645-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_jobs_on_com_id ON jobs USING btree (com_id)")3646 -> 0.0034s3647-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_commits_on_com_id ON commits USING btree (com_id)")3648 -> 0.0033s3649-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_crons_on_com_id ON crons USING btree (com_id)")3650 -> 0.0038s3651-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organizations_on_com_id ON organizations USING btree (com_id)")3652 -> 0.0031s3653-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_permissions_on_com_id ON permissions USING btree (com_id)")3654 -> 0.0035s3655-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_pull_requests_on_com_id ON pull_requests USING btree (com_id)")3656 -> 0.0037s3657-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_repositories_on_com_id ON repositories USING btree (com_id)")3658 -> 0.0033s3659-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_requests_on_com_id ON requests USING btree (com_id)")3660 -> 0.0037s3661-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_ssl_keys_on_com_id ON ssl_keys USING btree (com_id)")3662 -> 0.0033s3663-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_stages_on_com_id ON stages USING btree (com_id)")3664 -> 0.0033s3665-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_com_id ON tags USING btree (com_id)")3666 -> 0.0032s3667-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_com_id ON users USING btree (com_id)")3668 -> 0.0035s3669== 20180222000001 AddComIdAndOrgIdIndices: migrated (0.0994s) =================3671== 20180222000002 AddMigrating: migrating =====================================3672-- add_column(:repositories, :migrating, :boolean)3673 -> 0.0007s3674-- add_column(:repositories, :migrated_at, :timestamp, {:precision=>nil})3675 -> 0.0004s3676-- add_column(:organizations, :migrating, :boolean)3677 -> 0.0004s3678-- add_column(:organizations, :migrated_at, :timestamp, {:precision=>nil})3679 -> 0.0003s3680-- add_column(:users, :migrating, :boolean)3681 -> 0.0004s3682-- add_column(:users, :migrated_at, :timestamp, {:precision=>nil})3683 -> 0.0008s3684== 20180222000002 AddMigrating: migrated (0.0031s) ============================3686== 20180222000003 DropFkRepositoriesCurrentBuildId: migrating =================3687-- execute("ALTER TABLE repositories DROP CONSTRAINT fk_repositories_current_build_id")3688 -> 0.0008s3689== 20180222000003 DropFkRepositoriesCurrentBuildId: migrated (0.0008s) ========3691== 20180222000009 CreateRepoCounts: migrating =================================3692-- create_table(:repo_counts, {:id=>false})3693 -> 0.0030s3694-- add_index(:repo_counts, :repository_id)3695 -> 0.0021s3696== 20180222000009 CreateRepoCounts: migrated (0.0052s) ========================3698== 20180222000012 CreateRepoCountsTriggers: migrating =========================3699-- execute("create or replace function count_requests() returns trigger as $$\ndeclare\n c text;\n r record;\nbegin\n if tg_argv[0]::int > 0 then r := new; else r := old; end if;\n if r.repository_id is not null then\n insert into repo_counts(repository_id, requests)\n values(r.repository_id, tg_argv[0]::int);\n end if;\n return r;\nexception when others then\n get stacked diagnostics c = pg_exception_context;\n raise warning '% context: %s', sqlerrm, c;\n return r;\nend;\n$$\nlanguage plpgsql;\ndrop trigger if exists trg_count_request_inserted on requests;\ncreate trigger trg_count_request_inserted after insert on requests\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_requests(1);\ndrop trigger if exists trg_count_request_deleted on requests;\ncreate trigger trg_count_request_deleted after delete on requests\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_requests('-1');\n\ncreate or replace function count_commits() returns trigger as $$\ndeclare\n c text;\n r record;\nbegin\n if tg_argv[0]::int > 0 then r := new; else r := old; end if;\n if r.repository_id is not null then\n insert into repo_counts(repository_id, commits)\n values(r.repository_id, tg_argv[0]::int);\n end if;\n return r;\nexception when others then\n get stacked diagnostics c = pg_exception_context;\n raise warning '% context: %s', sqlerrm, c;\n return r;\nend;\n$$\nlanguage plpgsql;\ndrop trigger if exists trg_count_commit_inserted on commits;\ncreate trigger trg_count_commit_inserted after insert on commits\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_commits(1);\ndrop trigger if exists trg_count_commit_deleted on commits;\ncreate trigger trg_count_commit_deleted after delete on commits\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_commits('-1');\n\ncreate or replace function count_branches() returns trigger as $$\ndeclare\n c text;\n r record;\nbegin\n if tg_argv[0]::int > 0 then r := new; else r := old; end if;\n if r.repository_id is not null then\n insert into repo_counts(repository_id, branches)\n values(r.repository_id, tg_argv[0]::int);\n end if;\n return r;\nexception when others then\n get stacked diagnostics c = pg_exception_context;\n raise warning '% context: %s', sqlerrm, c;\n return r;\nend;\n$$\nlanguage plpgsql;\ndrop trigger if exists trg_count_branch_inserted on branches;\ncreate trigger trg_count_branch_inserted after insert on branches\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_branches(1);\ndrop trigger if exists trg_count_branch_deleted on branches;\ncreate trigger trg_count_branch_deleted after delete on branches\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_branches('-1');\n\ncreate or replace function count_pull_requests() returns trigger as $$\ndeclare\n c text;\n r record;\nbegin\n if tg_argv[0]::int > 0 then r := new; else r := old; end if;\n if r.repository_id is not null then\n insert into repo_counts(repository_id, pull_requests)\n values(r.repository_id, tg_argv[0]::int);\n end if;\n return r;\nexception when others then\n get stacked diagnostics c = pg_exception_context;\n raise warning '% context: %s', sqlerrm, c;\n return r;\nend;\n$$\nlanguage plpgsql;\ndrop trigger if exists trg_count_pull_request_inserted on pull_requests;\ncreate trigger trg_count_pull_request_inserted after insert on pull_requests\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_pull_requests(1);\ndrop trigger if exists trg_count_pull_request_deleted on pull_requests;\ncreate trigger trg_count_pull_request_deleted after delete on pull_requests\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_pull_requests('-1');\n\ncreate or replace function count_tags() returns trigger as $$\ndeclare\n c text;\n r record;\nbegin\n if tg_argv[0]::int > 0 then r := new; else r := old; end if;\n if r.repository_id is not null is not null then\n insert into repo_counts(repository_id, tags)\n values(r.repository_id, tg_argv[0]::int);\n end if;\n return r;\nexception when others then\n get stacked diagnostics c = pg_exception_context;\n raise warning '% context: %s', sqlerrm, c;\n return r;\nend;\n$$\nlanguage plpgsql;\ndrop trigger if exists trg_count_tag_inserted on tags;\ncreate trigger trg_count_tag_inserted after insert on tags\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_tags(1);\ndrop trigger if exists trg_count_tag_deleted on tags;\ncreate trigger trg_count_tag_deleted after delete on tags\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_tags('-1');\n\ncreate or replace function count_builds() returns trigger as $$\ndeclare\n c text;\n r record;\nbegin\n if tg_argv[0]::int > 0 then r := new; else r := old; end if;\n if r.repository_id is not null then\n insert into repo_counts(repository_id, builds)\n values(r.repository_id, tg_argv[0]::int);\n end if;\n return r;\nexception when others then\n get stacked diagnostics c = pg_exception_context;\n raise warning '% context: %s', sqlerrm, c;\n return r;\nend;\n$$\nlanguage plpgsql;\ndrop trigger if exists trg_count_build_inserted on builds;\ncreate trigger trg_count_build_inserted after insert on builds\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_builds(1);\ndrop trigger if exists trg_count_build_deleted on builds;\ncreate trigger trg_count_build_deleted after delete on builds\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_builds('-1');\n\n-- -- todo stages really should have a repository_id\n-- create or replace function count_stages() returns trigger as $$\n-- declare\n-- c text;\n-- r record;\n-- build record;\n-- begin\n-- if tg_argv[0]::int > 0 then r := new; else r := old; end if;\n-- select repository_id from builds as b where b.id = r.build_id into build;\n-- if build.repository_id is not null then\n-- insert into repo_counts(repository_id, stages)\n-- values(build.repository_id, tg_argv[0]::int);\n-- end if;\n-- return r;\n-- exception when others then\n-- get stacked diagnostics c = pg_exception_context;\n-- raise warning '% context: %s', sqlerrm, c;\n-- return r;\n-- end;\n-- $$\n-- language plpgsql;\n-- drop trigger if exists trg_count_stage_inserted on stages;\n-- create trigger trg_count_stage_inserted after insert on stages\n-- for each row when (now() > '2018-01-01 00:00:00') execute procedure count_stages(1);\n-- drop trigger if exists trg_count_stage_deleted on stages;\n-- create trigger trg_count_stage_deleted after delete on stages\n-- for each row when (now() > '2018-01-01 00:00:00') execute procedure count_stages('-1');\n\ncreate or replace function count_jobs() returns trigger as $$\ndeclare\n c text;\n r record;\nbegin\n if tg_argv[0]::int > 0 then r := new; else r := old; end if;\n if r.repository_id is not null then\n insert into repo_counts(repository_id, jobs)\n values(r.repository_id, tg_argv[0]::int);\n end if;\n return r;\nexception when others then\n get stacked diagnostics c = pg_exception_context;\n raise warning '% context: %s', sqlerrm, c;\n return r;\nend;\n$$\nlanguage plpgsql;\ndrop trigger if exists trg_count_job_inserted on jobs;\ncreate trigger trg_count_job_inserted after insert on jobs\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_jobs(1);\ndrop trigger if exists trg_count_job_deleted on jobs;\ncreate trigger trg_count_job_deleted after delete on jobs\nfor each row when (now() > '2018-01-01 00:00:00') execute procedure count_jobs('-1');\n\ndrop function if exists count_requests(_start int, _end int);\ncreate or replace function count_requests(_start int, _end int)\nreturns table (repository_id int, requests bigint, range varchar) as $$\nbegin\n return query select t.repository_id, count(id) as requests, ('requests' || ':' || _start || ':' || _end)::varchar as range\n from requests as t\n where t.id between _start and _end and t.created_at <= '2018-01-01 00:00:00' and t.repository_id is not null\n group by t.repository_id;\nend;\n$$\nlanguage plpgsql;\n\ndrop function if exists count_commits(_start int, _end int);\ncreate or replace function count_commits(_start int, _end int)\nreturns table (repository_id int, commits bigint, range varchar) as $$\nbegin\n return query select r.id, count(t.id) as commits, ('commits' || ':' || _start || ':' || _end)::varchar as range\n from commits as t\n join repositories as r on t.repository_id = r.id\n where t.id between _start and _end and t.created_at <= '2018-01-01 00:00:00' and t.repository_id is not null\n group by r.id;\nend;\n$$\nlanguage plpgsql;\n\ndrop function if exists count_branches(_start int, _end int);\ncreate or replace function count_branches(_start int, _end int)\nreturns table (repository_id int, branches bigint, range varchar) as $$\nbegin\n return query select r.id, count(t.id) as branches, ('branches' || ':' || _start || ':' || _end)::varchar as range\n from branches as t\n join repositories as r on t.repository_id = r.id\n where t.id between _start and _end and t.created_at <= '2018-01-01 00:00:00' and t.repository_id is not null\n group by r.id;\nend;\n$$\nlanguage plpgsql;\n\ndrop function if exists count_pull_requests(_start int, _end int);\ncreate or replace function count_pull_requests(_start int, _end int)\nreturns table (repository_id int, pull_requests bigint, range varchar) as $$\nbegin\n return query select r.id, count(t.id) as pull_requests, ('pull_requests' || ':' || _start || ':' || _end)::varchar as range\n from pull_requests as t\n join repositories as r on t.repository_id = r.id\n where t.id between _start and _end and t.created_at <= '2018-01-01 00:00:00' and t.repository_id is not null\n group by r.id;\nend;\n$$\nlanguage plpgsql;\n\ndrop function if exists count_tags(_start int, _end int);\ncreate or replace function count_tags(_start int, _end int)\nreturns table (repository_id int, tags bigint, range varchar) as $$\nbegin\n return query select r.id, count(t.id) as tags, ('tags' || ':' || _start || ':' || _end)::varchar as range\n from tags as t\n join repositories as r on t.repository_id = r.id\n where t.id between _start and _end and t.created_at <= '2018-01-01 00:00:00' and t.repository_id is not null\n group by r.id;\nend;\n$$\nlanguage plpgsql;\n\ndrop function if exists count_builds(_start int, _end int);\ncreate or replace function count_builds(_start int, _end int)\nreturns table (repository_id int, builds bigint, range varchar) as $$\nbegin\n return query select t.repository_id, count(id) as builds, ('builds' || ':' || _start || ':' || _end)::varchar as range\n from builds as t\n where t.id between _start and _end and t.created_at <= '2018-01-01 00:00:00' and t.repository_id is not null\n group by t.repository_id;\nend;\n$$\nlanguage plpgsql;\n\n-- drop function if exists count_stages(_start int, _end int);\n-- create or replace function count_stages(_start int, _end int)\n-- returns table (repository_id int, stages bigint, range varchar) as $$\n-- begin\n-- return query select b.repository_id, count(t.id) as stages, ('stages' || ':' || _start || ':' || _end)::varchar as range\n-- from stages as t\n-- join builds as b on t.build_id = b.id\n-- where t.id between _start and _end and b.created_at <= '2018-01-01 00:00:00' and b.repository_id is not null\n-- group by b.repository_id;\n-- end;\n-- $$\n-- language plpgsql;\n\ndrop function if exists count_jobs(_start int, _end int);\ncreate or replace function count_jobs(_start int, _end int)\nreturns table (repository_id int, jobs bigint, range varchar) as $$\nbegin\n return query select t.repository_id, count(id) as jobs, ('jobs' || ':' || _start || ':' || _end)::varchar as range\n from jobs as t\n where t.id between _start and _end and t.created_at <= '2018-01-01 00:00:00' and t.repository_id is not null\n group by t.repository_id;\nend;\n$$\nlanguage plpgsql;\n\ndrop function if exists count_all_requests(_count int, _start int, _end int);\ncreate or replace function count_all_requests(_count int, _start int, _end int) returns boolean as $$\ndeclare max int;\nbegin\n select id + _count from requests order by id desc limit 1 into max;\n for i in _start.._end by _count loop\n if i > max then exit; end if;\n begin\n raise notice 'counting requests %', i;\n insert into repo_counts(repository_id, requests, range)\n select * from count_requests(i, i + _count - 1);\n exception when unique_violation then end;\n end loop;\n\n return true;\nend\n$$\nlanguage plpgsql;\n\ndrop function if exists count_all_commits(_count int, _start int, _end int);\ncreate or replace function count_all_commits(_count int, _start int, _end int) returns boolean as $$\ndeclare max int;\nbegin\n select id + _count from commits order by id desc limit 1 into max;\n\n for i in _start.._end by _count loop\n if i > max then exit; end if;\n begin\n raise notice 'counting commits %', i;\n insert into repo_counts(repository_id, commits, range)\n select * from count_commits(i, i + _count - 1);\n exception when unique_violation then end;\n end loop;\n\n return true;\nend\n$$\nlanguage plpgsql;\n\ndrop function if exists count_all_branches(_count int, _start int, _end int);\ncreate or replace function count_all_branches(_count int, _start int, _end int) returns boolean as $$\ndeclare max int;\nbegin\n select id + _count from branches order by id desc limit 1 into max;\n\n for i in _start.._end by _count loop\n if i > max then exit; end if;\n begin\n raise notice 'counting branches %', i;\n insert into repo_counts(repository_id, branches, range)\n select * from count_branches(i, i + _count - 1);\n exception when unique_violation then end;\n end loop;\n\n return true;\nend\n$$\nlanguage plpgsql;\n\ndrop function if exists count_all_pull_requests(_count int, _start int, _end int);\ncreate or replace function count_all_pull_requests(_count int, _start int, _end int) returns boolean as $$\ndeclare max int;\nbegin\n select id + _count from pull_requests order by id desc limit 1 into max;\n\n for i in _start.._end by _count loop\n if i > max then exit; end if;\n begin\n raise notice 'counting pull_requests %', i;\n insert into repo_counts(repository_id, pull_requests, range)\n select * from count_pull_requests(i, i + _count - 1);\n exception when unique_violation then end;\n end loop;\n\n return true;\nend\n$$\nlanguage plpgsql;\n\ndrop function if exists count_all_tags(_count int, _start int, _end int);\ncreate or replace function count_all_tags(_count int, _start int, _end int) returns boolean as $$\ndeclare max int;\nbegin\n select id + _count from tags order by id desc limit 1 into max;\n\n for i in _start.._end by _count loop\n if i > max then exit; end if;\n begin\n raise notice 'counting tags %', i;\n insert into repo_counts(repository_id, tags, range)\n select * from count_tags(i, i + _count - 1);\n exception when unique_violation then end;\n end loop;\n\n return true;\nend\n$$\nlanguage plpgsql;\n\ndrop function if exists count_all_builds(_count int, _start int, _end int);\ncreate or replace function count_all_builds(_count int, _start int, _end int) returns boolean as $$\ndeclare max int;\nbegin\n select id + _count from builds order by id desc limit 1 into max;\n\n for i in _start.._end by _count loop\n if i > max then exit; end if;\n begin\n raise notice 'counting builds %', i;\n insert into repo_counts(repository_id, builds, range)\n select * from count_builds(i, i + _count - 1);\n exception when unique_violation then end;\n end loop;\n\n return true;\nend\n$$\nlanguage plpgsql;\n\n-- drop function if exists count_all_stages(_count int, _start int, _end int);\n-- create or replace function count_all_stages(_count int, _start int, _end int) returns boolean as $$\n-- declare max int;\n-- begin\n-- select id + _count from stages order by id desc limit 1 into max;\n--\n-- for i in _start.._end by _count loop\n-- if i > max then exit; end if;\n-- begin\n-- raise notice 'counting stages %', i;\n-- insert into repo_counts(repository_id, stages, range)\n-- select * from count_stages(i, i + _count - 1);\n-- exception when unique_violation then end;\n-- end loop;\n--\n-- return true;\n-- end\n-- $$\n-- language plpgsql;\n\ndrop function if exists count_all_jobs(_count int, _start int, _end int);\ncreate or replace function count_all_jobs(_count int, _start int, _end int) returns boolean as $$\ndeclare max int;\nbegin\n select id + _count from jobs order by id desc limit 1 into max;\n\n for i in _start.._end by _count loop\n if i > max then exit; end if;\n begin\n raise notice 'counting jobs %', i;\n insert into repo_counts(repository_id, jobs, range)\n select * from count_jobs(i, i + _count - 1);\n exception when unique_violation then end;\n end loop;\n\n return true;\nend\n$$\nlanguage plpgsql;\n\n\ncreate or replace function agg_all_repo_counts()\nreturns boolean as $$\nbegin\n with src as (\n select cnt.repository_id\n from repo_counts cnt\n group by cnt.repository_id\n having count(1) > 1\n ),\n del as (\n delete from repo_counts cnt\n using src\n where cnt.repository_id = src.repository_id\n returning cnt.*\n ),\n agg as (\n select\n del.repository_id,\n sum(del.requests)::integer as requests,\n sum(del.commits)::integer as commits,\n sum(del.branches)::integer as branches,\n sum(del.pull_requests)::integer as pull_requests,\n sum(del.tags)::integer as tags,\n sum(del.builds)::integer as builds,\n -- sum(del.stages)::integer as stages,\n sum(del.jobs)::integer as jobs\n from del\n group by del.repository_id\n )\n insert into repo_counts(\n repository_id,\n requests,\n commits,\n branches,\n pull_requests,\n tags,\n builds,\n -- stages,\n jobs\n )\n select\n agg.repository_id,\n agg.requests,\n agg.commits,\n agg.branches,\n agg.pull_requests,\n agg.tags,\n agg.builds,\n -- agg.stages,\n agg.jobs\n from agg;\n\n return true;\nend;\n$$\nlanguage plpgsql;\n\ncreate or replace function agg_repo_counts(_repo_id int)\nreturns boolean as $$\nbegin\n with src as (\n select cnt.repository_id\n from repo_counts cnt\n where cnt.repository_id = _repo_id\n group by cnt.repository_id\n having count(1) > 1\n ),\n del as (\n delete from repo_counts cnt\n using src\n where cnt.repository_id = src.repository_id\n returning cnt.*\n ),\n agg as (\n select\n del.repository_id,\n sum(del.requests)::integer as requests,\n sum(del.commits)::integer as commits,\n sum(del.branches)::integer as branches,\n sum(del.pull_requests)::integer as pull_requests,\n sum(del.tags)::integer as tags,\n sum(del.builds)::integer as builds,\n -- sum(del.stages)::integer as stages,\n sum(del.jobs)::integer as jobs\n from del\n group by del.repository_id\n )\n insert into repo_counts(\n repository_id,\n requests,\n commits,\n branches,\n pull_requests,\n tags,\n builds,\n -- stages,\n jobs\n )\n select\n agg.repository_id,\n agg.requests,\n agg.commits,\n agg.branches,\n agg.pull_requests,\n agg.tags,\n agg.builds,\n -- agg.stages,\n agg.jobs\n from agg\n where agg.requests > 0 or agg.builds > 0 or agg.jobs > 0;\n\n return true;\nend;\n$$\nlanguage plpgsql;\n")3700 -> 0.0236s3701== 20180222000012 CreateRepoCountsTriggers: migrated (0.0242s) ================3703== 20180222164100 DropAnnotations: migrating ==================================3704-- drop_table(:annotations)3705 -> 0.0026s3706-- drop_table(:annotation_providers)3707 -> 0.0021s3708== 20180222164100 DropAnnotations: migrated (0.0049s) =========================3710== 20180305143800 IndexBuildsOnRepositoryIdWhereStateNotFinished: migrating ===3711-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_where_state_not_finished ON builds (repository_id) WHERE state IN ('created', 'queued', 'received', 'started');")3712 -> 0.0051s3713== 20180305143800 IndexBuildsOnRepositoryIdWhereStateNotFinished: migrated (0.0053s)3715== 20180321102400 IndexJobsOnRepositoryIdWhereStateRunning: migrating =========3716-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_repository_id_where_state_running ON jobs (repository_id) WHERE state IN ('queued', 'received', 'started')")3717 -> 0.0044s3718== 20180321102400 IndexJobsOnRepositoryIdWhereStateRunning: migrated (0.0046s)3720== 20180330000000 CreateRequestPayloads: migrating ============================3721-- create_table(:request_payloads, {:id=>:integer})3722 -> 0.0087s3723-- add_index(:request_payloads, :request_id)3724 -> 0.0023s3725-- add_index(:request_payloads, [:created_at, :archived])3726 -> 0.0022s3727== 20180330000000 CreateRequestPayloads: migrated (0.0135s) ===================3729== 20180331000000 CreateConfigs: migrating ====================================3730-- create_table(:request_configs, {:id=>:integer})3731 -> 0.0070s3732-- create_table(:build_configs, {:id=>:integer})3733 -> 0.0055s3734-- create_table(:job_configs, {:id=>:integer})3735 -> 0.0057s3736-- add_index(:request_configs, [:repository_id, :key])3737 -> 0.0024s3738-- add_index(:build_configs, [:repository_id, :key])3739 -> 0.0023s3740-- add_index(:job_configs, [:repository_id, :key])3741 -> 0.0021s3742-- add_column(:requests, :config_id, :integer)3743 -> 0.0006s3744-- add_column(:builds, :config_id, :integer)3745 -> 0.0007s3746-- add_column(:jobs, :config_id, :integer)3747 -> 0.0007s3748== 20180331000000 CreateConfigs: migrated (0.0284s) ===========================3750== 20180404000001 CreateInstallations: migrating ==============================3751-- create_table(:installations, {:id=>:integer})3752 -> 0.0105s3753-- change_table(:repositories)3754 -> 0.0014s3755== 20180404000001 CreateInstallations: migrated (0.0120s) =====================3757== 20180410000000 RequestsDropPayload: migrating ==============================3758-- remove_column(:requests, :payload, :text)3759 -> 0.0010s3760== 20180410000000 RequestsDropPayload: migrated (0.0010s) =====================3762== 20180413000000 IndexBranchesOnRepositoryIdAndNameAndId: migrating ==========3763-- execute("CREATE INDEX CONCURRENTLY index_branches_on_repository_id_and_name_and_id ON branches (repository_id, name, id)")3764 -> 0.0039s3765-- execute("DROP INDEX CONCURRENTLY index_branches_on_repository_id_and_name")3766 -> 0.0021s3767== 20180413000000 IndexBranchesOnRepositoryIdAndNameAndId: migrated (0.0061s) =3769== 20180417000000 IndexBuildsOrganizationsUsersOnUpdatedAt: migrating =========3770-- execute("CREATE INDEX CONCURRENTLY index_builds_on_updated_at ON builds (updated_at)")3771 -> 0.0039s3772-- execute("CREATE INDEX CONCURRENTLY index_users_on_updated_at ON users (updated_at)")3773 -> 0.0035s3774-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_updated_at ON repositories (updated_at)")3775 -> 0.0035s3776-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_updated_at ON organizations (updated_at)")3777 -> 0.0035s3778== 20180417000000 IndexBuildsOrganizationsUsersOnUpdatedAt: migrated (0.0145s)3780== 20180420000000 ConstraintsAndIndexesForGhApps: migrating ===================3781-- execute("CREATE UNIQUE INDEX CONCURRENTLY github_id_installations_idx ON installations (github_id)")3782 -> 0.0032s3783-- execute("CREATE INDEX CONCURRENTLY managed_repositories_idx ON repositories (managed_by_installation_at)")3784 -> 0.0035s3785-- execute("CREATE UNIQUE INDEX CONCURRENTLY owner_installations_idx ON installations (owner_id, owner_type) WHERE removed_by_id IS NULL")3786 -> 0.0034s3787== 20180420000000 ConstraintsAndIndexesForGhApps: migrated (0.0103s) ==========3789== 20180425000000 IndexActiveOnOrg: migrating =================================3790-- execute("CREATE INDEX CONCURRENTLY index_active_on_org ON repositories (active_on_org)")3791 -> 0.0057s3792== 20180425000000 IndexActiveOnOrg: migrated (0.0058s) ========================3794== 20180425100000 AddRemovedAtOnInstallations: migrating ======================3795-- add_column(:installations, :removed_at, :timestamp, {:precision=>nil})3796 -> 0.0019s3797== 20180425100000 AddRemovedAtOnInstallations: migrated (0.0019s) =============3799== 20180429000000 IndexRepositoriesOnOwnerNameAndName: migrating ==============3800-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_name_and_name ON repositories (owner_name, name) WHERE invalidated_at IS NULL")3801 -> 0.0054s3802== 20180429000000 IndexRepositoriesOnOwnerNameAndName: migrated (0.0054s) =====3804== 20180501000000 IndexJobsOnOwnerWhereStateRunning: migrating ================3805-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_where_state_running ON jobs (owner_id, owner_type) WHERE state IN ('queued', 'received', 'started')")3806 -> 0.0043s3807== 20180501000000 IndexJobsOnOwnerWhereStateRunning: migrated (0.0043s) =======3809== 20180517000000 IndexRequestsConfigId: migrating ============================3810-- execute("CREATE INDEX CONCURRENTLY index_requests_on_config_id ON requests (config_id)")3811 -> 0.0039s3812== 20180517000000 IndexRequestsConfigId: migrated (0.0039s) ===================3814== 20180517000001 IndexBuildsConfigId: migrating ==============================3815-- execute("CREATE INDEX CONCURRENTLY index_builds_on_config_id ON requests (config_id)")3816 -> 0.0040s3817== 20180517000001 IndexBuildsConfigId: migrated (0.0042s) =====================3819== 20180517000002 IndexJobsConfigId: migrating ================================3820-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_config_id ON requests (config_id)")3821 -> 0.0039s3822== 20180517000002 IndexJobsConfigId: migrated (0.0040s) =======================3824== 20180518000000 IndexBuildsOnMultiple: migrating ============================3825-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_builds_on_repo_branch_event_type_and_private ON builds (repository_id, branch, event_type, private)")3826 -> 0.0046s3827== 20180518000000 IndexBuildsOnMultiple: migrated (0.0048s) ===================3829== 20180522000000 AddActiveFlagToCrons: migrating =============================3830-- change_table(:crons)3831 -> 0.0033s3832-- add_index(:crons, :next_run, {:where=>"(active IS TRUE)", :algorithm=>:concurrently})3833 -> 0.0041s3834== 20180522000000 AddActiveFlagToCrons: migrated (0.0077s) ====================3836== 20180531000000 CreateRequestYamlConfigs: migrating =========================3837-- create_table(:request_yaml_configs, {:id=>:integer})3838 -> 0.0088s3839-- add_index(:request_yaml_configs, [:repository_id, :key])3840 -> 0.0028s3841-- add_column(:requests, :yaml_config_id, :integer)3842 -> 0.0012s3843== 20180531000000 CreateRequestYamlConfigs: migrated (0.0130s) ================3845== 20180606000000 IndexCommitsOnRepositoryId: migrating =======================3846-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_commits_on_repository_id ON commits (repository_id)")3847 -> 0.0037s3848== 20180606000000 IndexCommitsOnRepositoryId: migrated (0.0038s) ==============3850== 20180606000001 IndexJobsOnRepositoryId: migrating ==========================3851-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_jobs_on_repository_id ON jobs (repository_id)")3852 -> 0.0056s3853== 20180606000001 IndexJobsOnRepositoryId: migrated (0.0058s) =================3855== 20180614000000 DropRequestsConfig: migrating ===============================3856-- remove_column(:requests, :config)3857 -> 0.0023s3858== 20180614000000 DropRequestsConfig: migrated (0.0027s) ======================3860== 20180614000001 DropBuildsConfig: migrating =================================3861-- remove_column(:builds, :config)3862 -> 0.0021s3863== 20180614000001 DropBuildsConfig: migrated (0.0023s) ========================3865== 20180614000002 DropJobsConfig: migrating ===================================3866-- remove_column(:jobs, :config)3867 -> 0.0021s3868== 20180614000002 DropJobsConfig: migrated (0.0024s) ==========================3870== 20180620000000 IndexBuildsOnRepositoryIdEventTypeId: migrating =============3871-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_builds_on_repository_id_event_type_id ON builds (repository_id, event_type, id DESC)")3872 -> 0.0045s3873== 20180620000000 IndexBuildsOnRepositoryIdEventTypeId: migrated (0.0047s) ====3875== 20180725000000 CreateCancellations: migrating ==============================3876-- create_table(:cancellations, {:id=>:integer})3877 -> 0.0085s3878== 20180725000000 CreateCancellations: migrated (0.0086s) =====================3880== 20180726000000 CommitsIndexAuthorEmail: migrating ==========================3881-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_commits_on_author_email ON commits (author_email)")3882 -> 0.0036s3883== 20180726000000 CommitsIndexAuthorEmail: migrated (0.0038s) =================3885== 20180726000001 CommitsIndexCommitterEmail: migrating =======================3886-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_commits_on_committer_email ON commits (committer_email)")3887 -> 0.0039s3888== 20180726000001 CommitsIndexCommitterEmail: migrated (0.0040s) ==============3890== 20180801000001 UsersAddRedactedAt: migrating ===============================3891-- change_table(:users)3892 -> 0.0014s3893== 20180801000001 UsersAddRedactedAt: migrated (0.0015s) ======================3895== 20180822000000 CreateEmailUnsubscribes: migrating ==========================3896-- create_table(:email_unsubscribes, {:id=>:integer})3897 -> 0.0106s3898== 20180822000000 CreateEmailUnsubscribes: migrated (0.0107s) =================3900== 20180823000000 AddPreferences: migrating ===================================3901-- change_table(:users)3902 -> 0.0017s3903== 20180823000000 AddPreferences: migrated (0.0017s) ==========================3905== 20180828000000 ChangePreferencesDefault: migrating =========================3906-- change_column_default(:users, :preferences, {})3907 -> 0.0072s3908== 20180828000000 ChangePreferencesDefault: migrated (0.0072s) ================3910== 20180829000000 MakeEmailUnsubscribesIdBigint: migrating ====================3911-- change_column(:email_unsubscribes, :id, :bigint)3912 -> 0.0089s3913== 20180829000000 MakeEmailUnsubscribesIdBigint: migrated (0.0091s) ===========3915== 20180830000001 JobsAddRestartedAt: migrating ===============================3916-- change_table(:jobs)3917 -> 0.0017s3918== 20180830000001 JobsAddRestartedAt: migrated (0.0017s) ======================3920== 20180830000002 BuildsAddRestartedAt: migrating =============================3921-- change_table(:builds)3922 -> 0.0015s3923== 20180830000002 BuildsAddRestartedAt: migrated (0.0016s) ====================3925== 20180830000003 JobVersionsCreate: migrating ================================3926-- create_table(:job_versions, {:id=>:integer})3927 -> 0.0068s3928== 20180830000003 JobVersionsCreate: migrated (0.0070s) =======================3930== 20180903000000 JobConfigsIndexConfigResourcesGpu: migrating ================3931-- execute("CREATE OR REPLACE FUNCTION is_json(text) RETURNS boolean LANGUAGE plpgsql immutable AS $$\n BEGIN\n perform $1::json;\n return true;\n EXCEPTION WHEN invalid_text_representation THEN\n return false;\n END\n$$;\n")3932 -> 0.0016s3933-- execute("CREATE INDEX CONCURRENTLY index_job_configs_on_config_resources_gpu ON job_configs (((config ->> 'resources')::jsonb ->> 'gpu')) WHERE is_json((config ->> 'resources')::text) AND ((config ->> 'resources')::jsonb ->> 'gpu') IS NOT NULL;\n")3934 -> 0.0044s3935== 20180903000000 JobConfigsIndexConfigResourcesGpu: migrated (0.0063s) =======3937== 20180903000001 FixIndexesOnBuildsAndJobsConfigId: migrating ================3938-- execute("DROP INDEX index_builds_on_config_id")3939 -> 0.0015s3940-- execute("CREATE INDEX CONCURRENTLY index_builds_on_config_id ON builds (config_id)")3941 -> 0.0041s3942-- execute("DROP INDEX index_jobs_on_config_id")3943 -> 0.0014s3944-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_config_id ON jobs (config_id)")3945 -> 0.0037s3946== 20180903000001 FixIndexesOnBuildsAndJobsConfigId: migrated (0.0110s) =======3948== 20180904000001 CreateJobConfigsGpu: migrating ==============================3949-- execute("CREATE MATERIALIZED VIEW job_configs_gpu AS\nSELECT id FROM job_configs WHERE\n is_json((config ->> 'resources')::text) AND\n ((config ->> 'resources')::jsonb ->> 'gpu') IS NOT NULL;\n")3950 -> 0.0018s3951== 20180904000001 CreateJobConfigsGpu: migrated (0.0018s) =====================3953== 20180906000000 AddIndexUsersPreferencesBuildEmails: migrating ==============3954-- execute("CREATE INDEX CONCURRENTLY user_preferences_build_emails_false ON users (id) WHERE preferences->>'build_emails' = 'false';\n")3955 -> 0.0038s3956== 20180906000000 AddIndexUsersPreferencesBuildEmails: migrated (0.0038s) =====3958== 20181002115306 DeleteDuplicateRecordsFromMemberships: migrating ============3959-- execute("DELETE FROM memberships WHERE id in (\n\tSELECT a.id FROM\n\t\t(SELECT m.id, row_number() OVER (ORDER BY m.id) as rnum\n FROM (SELECT user_id, organization_id\n FROM memberships\n GROUP BY (user_id, organization_id)\n HAVING count(*) > 1) t\n INNER JOIN memberships m ON m.user_id = t.user_id AND m.organization_id = t.organization_id) AS a\n WHERE mod(a.rnum, 2) = 0);\n")3960 -> 0.0011s3961== 20181002115306 DeleteDuplicateRecordsFromMemberships: migrated (0.0011s) ===3963== 20181002115307 AddConstraintOnOrganizationAndUserToMemberships: migrating ==3964-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organization_id_and_user_id_on_memberships ON memberships USING btree (organization_id, user_id);\n")3965 -> 0.0034s3966== 20181002115307 AddConstraintOnOrganizationAndUserToMemberships: migrated (0.0035s)3968== 20181018000000 IndexBuildsOnCreatedAt: migrating ===========================3969-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_builds_on_created_at ON builds (created_at)")3970 -> 0.0035s3971== 20181018000000 IndexBuildsOnCreatedAt: migrated (0.0036s) ==================3973== 20181029120000 AddMigrationStatusColumnToRepositories: migrating ===========3974-- add_column(:repositories, :migration_status, :string)3975 -> 0.0006s3976== 20181029120000 AddMigrationStatusColumnToRepositories: migrated (0.0007s) ==3978== 20181113120000 AddGithubGuidColumnToRequests: migrating ====================3979-- add_column(:requests, :github_guid, :text)3980 -> 0.0009s3981-- add_index(:requests, :github_guid, {:algorithm=>:concurrently, :unique=>true})3982 -> 0.0034s3983== 20181113120000 AddGithubGuidColumnToRequests: migrated (0.0043s) ===========3985== 20181116800000 AddConstraintsToMultipleTables: migrating ===================3986-- execute("ALTER TABLE repositories ADD CONSTRAINT fk_repositories_on_current_build_id FOREIGN KEY (current_build_id) REFERENCES builds(id) ON DELETE SET NULL NOT VALID")3987 -> 0.0009s3988-- execute("ALTER TABLE repositories ADD CONSTRAINT fk_repositories_on_last_build_id FOREIGN KEY (last_build_id) REFERENCES builds(id) ON DELETE SET NULL NOT VALID")3989 -> 0.0006s3990-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")3991 -> 0.0005s3992-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) NOT VALID")3993 -> 0.0005s3994-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_request_id FOREIGN KEY (request_id) REFERENCES requests(id) NOT VALID")3995 -> 0.0005s3996-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_pull_request_id FOREIGN KEY (pull_request_id) REFERENCES pull_requests(id) NOT VALID")3997 -> 0.0006s3998-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")3999 -> 0.0005s4000-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) NOT VALID")4001 -> 0.0006s4002-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_config_id FOREIGN KEY (config_id) REFERENCES build_configs(id) NOT VALID")4003 -> 0.0005s4004-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")4005 -> 0.0005s4006-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) NOT VALID")4007 -> 0.0107s4008-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_stage_id FOREIGN KEY (stage_id) REFERENCES stages(id) NOT VALID")4009 -> 0.0007s4010-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_config_id FOREIGN KEY (config_id) REFERENCES job_configs(id) NOT VALID")4011 -> 0.0007s4012-- execute("ALTER TABLE branches ADD CONSTRAINT fk_branches_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")4013 -> 0.0006s4014-- execute("ALTER TABLE branches ADD CONSTRAINT fk_branches_on_last_build_id FOREIGN KEY (last_build_id) REFERENCES builds(id) ON DELETE SET NULL NOT VALID")4015 -> 0.0009s4016-- execute("ALTER TABLE tags ADD CONSTRAINT fk_tags_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")4017 -> 0.0008s4018-- execute("ALTER TABLE tags ADD CONSTRAINT fk_tags_on_last_build_id FOREIGN KEY (last_build_id) REFERENCES builds(id) ON DELETE SET NULL NOT VALID")4019 -> 0.0007s4020-- execute("ALTER TABLE commits ADD CONSTRAINT fk_commits_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")4021 -> 0.0007s4022-- execute("ALTER TABLE commits ADD CONSTRAINT fk_commits_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")4023 -> 0.0007s4024-- execute("ALTER TABLE commits ADD CONSTRAINT fk_commits_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) NOT VALID")4025 -> 0.0007s4026-- execute("ALTER TABLE crons ADD CONSTRAINT fk_crons_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")4027 -> 0.0008s4028-- execute("ALTER TABLE job_configs ADD CONSTRAINT fk_job_configs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")4029 -> 0.0007s4030-- execute("ALTER TABLE build_configs ADD CONSTRAINT fk_build_configs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")4031 -> 0.0007s4032-- execute("ALTER TABLE pull_requests ADD CONSTRAINT fk_pull_requests_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")4033 -> 0.0009s4034-- execute("ALTER TABLE ssl_keys ADD CONSTRAINT fk_ssl_keys_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")4035 -> 0.0007s4036-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) NOT VALID")4037 -> 0.0008s4038-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_pull_request_id FOREIGN KEY (pull_request_id) REFERENCES pull_requests(id) NOT VALID")4039 -> 0.0007s4040-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")4041 -> 0.0007s4042-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) NOT VALID")4043 -> 0.0007s4044-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_config_id FOREIGN KEY (config_id) REFERENCES request_configs(id) NOT VALID")4045 -> 0.0008s4046-- execute("ALTER TABLE stages ADD CONSTRAINT fk_stages_on_build_id FOREIGN KEY (build_id) REFERENCES builds(id) NOT VALID")4047 -> 0.0008s4048== 20181116800000 AddConstraintsToMultipleTables: migrated (0.0322s) ==========4050== 20181116800001 ValidateConstraints: migrating ==============================4051-- execute("ALTER TABLE repositories VALIDATE CONSTRAINT fk_repositories_on_current_build_id")4052 -> 0.0028s4053-- execute("ALTER TABLE repositories VALIDATE CONSTRAINT fk_repositories_on_last_build_id")4054 -> 0.0012s4055-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_repository_id")4056 -> 0.0010s4057-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_commit_id")4058 -> 0.0014s4059-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_request_id")4060 -> 0.0014s4061-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_pull_request_id")4062 -> 0.0013s4063-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_branch_id")4064 -> 0.0013s4065-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_tag_id")4066 -> 0.0012s4067-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_config_id")4068 -> 0.0012s4069-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_repository_id")4070 -> 0.0017s4071-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_commit_id")4072 -> 0.0009s4073-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_stage_id")4074 -> 0.0011s4075-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_config_id")4076 -> 0.0010s4077-- execute("ALTER TABLE branches VALIDATE CONSTRAINT fk_branches_on_repository_id")4078 -> 0.0009s4079-- execute("ALTER TABLE branches VALIDATE CONSTRAINT fk_branches_on_last_build_id")4080 -> 0.0008s4081-- execute("ALTER TABLE tags VALIDATE CONSTRAINT fk_tags_on_repository_id")4082 -> 0.0009s4083-- execute("ALTER TABLE tags VALIDATE CONSTRAINT fk_tags_on_last_build_id")4084 -> 0.0009s4085-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_commits_on_repository_id")4086 -> 0.0009s4087-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_commits_on_branch_id")4088 -> 0.0008s4089-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_commits_on_tag_id")4090 -> 0.0008s4091-- execute("ALTER TABLE crons VALIDATE CONSTRAINT fk_crons_on_branch_id")4092 -> 0.0010s4093-- execute("ALTER TABLE job_configs VALIDATE CONSTRAINT fk_job_configs_on_repository_id")4094 -> 0.0009s4095-- execute("ALTER TABLE build_configs VALIDATE CONSTRAINT fk_build_configs_on_repository_id")4096 -> 0.0008s4097-- execute("ALTER TABLE pull_requests VALIDATE CONSTRAINT fk_pull_requests_on_repository_id")4098 -> 0.0009s4099-- execute("ALTER TABLE ssl_keys VALIDATE CONSTRAINT fk_ssl_keys_on_repository_id")4100 -> 0.0012s4101-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_commit_id")4102 -> 0.0009s4103-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_pull_request_id")4104 -> 0.0009s4105-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_branch_id")4106 -> 0.0009s4107-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_tag_id")4108 -> 0.0008s4109-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_config_id")4110 -> 0.0011s4111-- execute("ALTER TABLE stages VALIDATE CONSTRAINT fk_stages_on_build_id")4112 -> 0.0009s4113== 20181116800001 ValidateConstraints: migrated (0.0346s) =====================4115== 20181126080000 AddIndexesForForeignKeys: migrating =========================4116-- index_exists?(:builds, :branch_id)4117 -> 0.0107s4118-- add_index(:builds, :branch_id, {:algorithm=>:concurrently})4119 -> 0.0051s4120-- index_exists?(:builds, :commit_id)4121 -> 0.0231s4122-- add_index(:builds, :commit_id, {:algorithm=>:concurrently})4123 -> 0.0054s4124-- index_exists?(:builds, :pull_request_id)4125 -> 0.0176s4126-- add_index(:builds, :pull_request_id, {:algorithm=>:concurrently})4127 -> 0.0050s4128-- index_exists?(:builds, :tag_id)4129 -> 0.0192s4130-- add_index(:builds, :tag_id, {:algorithm=>:concurrently})4131 -> 0.0046s4132-- index_exists?(:jobs, :commit_id)4133 -> 0.0086s4134-- add_index(:jobs, :commit_id, {:algorithm=>:concurrently})4135 -> 0.0036s4136-- index_exists?(:branches, :last_build_id)4137 -> 0.0021s4138-- add_index(:branches, :last_build_id, {:algorithm=>:concurrently})4139 -> 0.0034s4140-- index_exists?(:tags, :repository_id)4141 -> 0.0019s4142-- add_index(:tags, :repository_id, {:algorithm=>:concurrently})4143 -> 0.0035s4144-- index_exists?(:tags, :last_build_id)4145 -> 0.0022s4146-- add_index(:tags, :last_build_id, {:algorithm=>:concurrently})4147 -> 0.0035s4148-- index_exists?(:commits, :tag_id)4149 -> 0.0025s4150-- add_index(:commits, :tag_id, {:algorithm=>:concurrently})4151 -> 0.0036s4152-- index_exists?(:commits, :branch_id)4153 -> 0.0029s4154-- add_index(:commits, :branch_id, {:algorithm=>:concurrently})4155 -> 0.0038s4156-- index_exists?(:job_configs, :repository_id)4157 -> 0.0014s4158-- add_index(:job_configs, :repository_id, {:algorithm=>:concurrently})4159 -> 0.0036s4160-- index_exists?(:build_configs, :repository_id)4161 -> 0.0012s4162-- add_index(:build_configs, :repository_id, {:algorithm=>:concurrently})4163 -> 0.0032s4164-- index_exists?(:pull_requests, :repository_id)4165 -> 0.0018s4166-- add_index(:pull_requests, :repository_id, {:algorithm=>:concurrently})4167 -> 0.0030s4168-- index_exists?(:requests, :pull_request_id)4169 -> 0.0186s4170-- add_index(:requests, :pull_request_id, {:algorithm=>:concurrently})4171 -> 0.0045s4172-- index_exists?(:requests, :tag_id)4173 -> 0.0115s4174-- add_index(:requests, :tag_id, {:algorithm=>:concurrently})4175 -> 0.0041s4176-- index_exists?(:requests, :branch_id)4177 -> 0.0107s4178-- add_index(:requests, :branch_id, {:algorithm=>:concurrently})4179 -> 0.0046s4180-- index_exists?(:repositories, :current_build_id)4181 -> 0.0079s4182-- add_index(:repositories, :current_build_id, {:algorithm=>:concurrently})4183 -> 0.0047s4184-- index_exists?(:repositories, :last_build_id)4185 -> 0.0106s4186-- add_index(:repositories, :last_build_id, {:algorithm=>:concurrently})4187 -> 0.0044s4188-- index_exists?(:crons, :branch_id)4189 -> 0.0031s4190-- add_index(:crons, :branch_id, {:algorithm=>:concurrently})4191 -> 0.0041s4192== 20181126080000 AddIndexesForForeignKeys: migrated (0.2382s) ================4194== 20181128120000 AddUniqueIndexToBranchesOnRepositoryIdAndName: migrating ====4195-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_on_repository_id_and_name ON branches(repository_id, name)")4196 -> 0.0035s4197== 20181128120000 AddUniqueIndexToBranchesOnRepositoryIdAndName: migrated (0.0037s)4199== 20181203075818 AddUniqueNameColumnToBranches: migrating ====================4200-- add_column(:branches, :unique_name, :text)4201 -> 0.0012s4202== 20181203075818 AddUniqueNameColumnToBranches: migrated (0.0013s) ===========4204== 20181203075819 AddSetUniqueNameTriggerToBranches: migrating ================4205-- execute("DROP TRIGGER IF EXISTS set_unique_name_on_branches ON branches;\nDROP FUNCTION IF EXISTS set_unique_name();\nCREATE FUNCTION set_unique_name() RETURNS trigger AS $$\nDECLARE\n disable boolean;\nBEGIN\n disable := 'f';\n IF TG_OP = 'INSERT' OR TG_OP = 'UPDATE' THEN\n BEGIN\n disable := current_setting('set_unique_name_on_branches.disable');\n EXCEPTION\n WHEN others THEN\n set set_unique_name_on_branches.disable = 'f';\n END;\n\n IF NOT disable THEN\n NEW.unique_name := NEW.name;\n END IF;\n END IF;\n RETURN NEW;\nEND;\n$$ LANGUAGE plpgsql;\n\nCREATE TRIGGER set_unique_name_on_branches\nBEFORE INSERT OR UPDATE ON branches\nFOR EACH ROW\nEXECUTE PROCEDURE set_unique_name();\n")4206 -> 0.0010s4207== 20181203075819 AddSetUniqueNameTriggerToBranches: migrated (0.0011s) =======4209== 20181203080356 CreateIndexOnBranchesUniqueNameAndRepositoryId: migrating ===4210-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_repository_id_unique_name ON branches(repository_id, unique_name) WHERE unique_name IS NOT NULL")4211 -> 0.0041s4212== 20181203080356 CreateIndexOnBranchesUniqueNameAndRepositoryId: migrated (0.0042s)4214== 20181205152712 AddUniqueIndexToCronsOnBranchId: migrating ==================4215-- execute("DROP INDEX CONCURRENTLY index_crons_on_branch_id")4216 -> 0.0020s4217-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_crons_on_branch_id ON crons(branch_id)")4218 -> 0.0030s4219== 20181205152712 AddUniqueIndexToCronsOnBranchId: migrated (0.0051s) =========4221== 20190102000000 AddOrganizationPreferences: migrating =======================4222-- change_table(:organizations)4223 -> 0.0010s4224== 20190102000000 AddOrganizationPreferences: migrated (0.0011s) ==============4226== 20190102000001 ChangeOrganizationPreferencesDefault: migrating =============4227-- change_column_default(:organizations, :preferences, {})4228 -> 0.0022s4229== 20190102000001 ChangeOrganizationPreferencesDefault: migrated (0.0022s) ====4231== 20190109000000 CreateBetaMigrationRequestTable: migrating ==================4232-- create_table(:beta_migration_requests, {:id=>:integer})4233 -> 0.0049s4234-- add_index(:beta_migration_requests, [:owner_type, :owner_id])4235 -> 0.0020s4236== 20190109000000 CreateBetaMigrationRequestTable: migrated (0.0070s) =========4238== 20190118000000 AddBetaMigrationRequestColumnToOrganizations: migrating =====4239-- add_column(:organizations, :beta_migration_request_id, :integer)4240 -> 0.0007s4241== 20190118000000 AddBetaMigrationRequestColumnToOrganizations: migrated (0.0007s)4243== 20190204000000 MakeSubscriptionOwnerNotNullable: migrating =================4244-- change_column_null(:subscriptions, :owner_type, false)4245 -> 0.0006s4246-- change_column_null(:subscriptions, :owner_id, false)4247 -> 0.0003s4248== 20190204000000 MakeSubscriptionOwnerNotNullable: migrated (0.0009s) ========4250== 20190313000000 RequestRawConfigsCreate: migrating ==========================4251-- create_table(:request_raw_configs, {:id=>:integer})4252 -> 0.0047s4253-- add_index(:request_raw_configs, [:repository_id, :key])4254 -> 0.0023s4255-- create_table(:request_raw_configurations, {:id=>:integer})4256 -> 0.0047s4257-- add_index(:request_raw_configurations, :request_id)4258 -> 0.0018s4259-- add_index(:request_raw_configurations, :request_raw_config_id)4260 -> 0.0017s4261== 20190313000000 RequestRawConfigsCreate: migrated (0.0154s) =================4263== 20190329093854 CreateGatekeeperWorkers: migrating ==========================4264-- create_table(:gatekeeper_workers)4265 -> 0.0031s4266-- execute("INSERT INTO gatekeeper_workers(id) SELECT generate_series(1,200) as id;")4267 -> 0.0007s4268== 20190329093854 CreateGatekeeperWorkers: migrated (0.0038s) =================4270== 20190409133118 AddUniqueNumberColumnToBuilds: migrating ====================4271-- add_column(:builds, :unique_number, :int)4272 -> 0.0007s4273== 20190409133118 AddUniqueNumberColumnToBuilds: migrated (0.0007s) ===========4275== 20190409133320 AddSetUniqueNumberTriggerToBuilds: migrating ================4276-- execute("DROP TRIGGER IF EXISTS set_unique_number_on_builds ON builds;\nDROP FUNCTION IF EXISTS set_unique_number();\nCREATE FUNCTION set_unique_number() RETURNS trigger AS $$\nDECLARE\n disable boolean;\nBEGIN\n disable := 'f';\n IF TG_OP = 'INSERT' OR TG_OP = 'UPDATE' THEN\n BEGIN\n disable := current_setting('set_unique_number_on_builds.disable');\n EXCEPTION\n WHEN others THEN\n set set_unique_number_on_builds.disable = 'f';\n END;\n\n IF NOT disable THEN\n IF NEW.unique_number IS NULL OR NEW.unique_number > 0 THEN\n NEW.unique_number := NEW.number;\n END IF;\n END IF;\n END IF;\n RETURN NEW;\nEND;\n$$ LANGUAGE plpgsql;\n\nCREATE TRIGGER set_unique_number_on_builds\nBEFORE INSERT OR UPDATE ON builds\nFOR EACH ROW\nEXECUTE PROCEDURE set_unique_number();\n")4277 -> 0.0008s4278== 20190409133320 AddSetUniqueNumberTriggerToBuilds: migrated (0.0009s) =======4280== 20190409133444 CreateUniqueIndexOnRepositoryIdAndNumberOnBuilds: migrating =4281-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_builds_repository_id_unique_number ON builds(repository_id, unique_number) WHERE unique_number IS NOT NULL")4282 -> 0.0035s4283== 20190409133444 CreateUniqueIndexOnRepositoryIdAndNumberOnBuilds: migrated (0.0036s)4285== 20190410121039 MakeSetUniqueNumberTriggerRunOnlyOnInsert: migrating ========4286-- execute(" DROP TRIGGER set_unique_number_on_builds ON builds;\n CREATE TRIGGER set_unique_number_on_builds\n BEFORE INSERT ON builds\n FOR EACH ROW\n EXECUTE PROCEDURE set_unique_number();\n")4287 -> 0.0007s4288== 20190410121039 MakeSetUniqueNumberTriggerRunOnlyOnInsert: migrated (0.0007s)4290== 20190416071629 RemoveUniqueNameFromBranches: migrating =====================4291-- execute("drop index concurrently index_branches_repository_id_unique_name;")4292 -> 0.0020s4293-- execute("DROP TRIGGER IF EXISTS set_unique_name_on_branches ON branches;\nDROP FUNCTION IF EXISTS set_unique_name();\n\n")4294 -> 0.0008s4295-- remove_column(:branches, :unique_name)4296 -> 0.0009s4297== 20190416071629 RemoveUniqueNameFromBranches: migrated (0.0037s) ============4299== 20190417072423 AlterBuildsUniqueNumberIndex: migrating =====================4300-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_builds_repository_id_unique_number_new ON builds(repository_id, unique_number) WHERE unique_number IS NOT NULL AND unique_number > 0")4301 -> 0.0038s4302-- execute("DROP INDEX CONCURRENTLY index_builds_repository_id_unique_number")4303 -> 0.0020s4304-- execute("ALTER INDEX index_builds_repository_id_unique_number_new RENAME TO index_builds_repository_id_unique_number")4305 -> 0.0008s4306== 20190417072423 AlterBuildsUniqueNumberIndex: migrated (0.0066s) ============4308== 20190417072838 ReinstallSetUniqueNumberTrigger: migrating ==================4309-- execute("DROP TRIGGER IF EXISTS set_unique_number_on_builds ON builds;\nDROP FUNCTION IF EXISTS set_unique_number();\n")4310 -> 0.0030s4311-- execute("DROP TRIGGER IF EXISTS set_unique_number_on_builds ON builds;\nDROP FUNCTION IF EXISTS set_unique_number();\nCREATE FUNCTION set_unique_number() RETURNS trigger AS $$\nDECLARE\n disable boolean;\nBEGIN\n disable := 'f';\n IF TG_OP = 'INSERT' OR TG_OP = 'UPDATE' THEN\n BEGIN\n disable := current_setting('set_unique_number_on_builds.disable');\n EXCEPTION\n WHEN others THEN\n set set_unique_number_on_builds.disable = 'f';\n END;\n\n IF NOT disable THEN\n IF NEW.unique_number IS NULL OR NEW.unique_number > 0 THEN\n NEW.unique_number := NEW.number;\n END IF;\n END IF;\n END IF;\n RETURN NEW;\nEND;\n$$ LANGUAGE plpgsql;\n\nCREATE TRIGGER set_unique_number_on_builds\nBEFORE INSERT OR UPDATE ON builds\nFOR EACH ROW\nEXECUTE PROCEDURE set_unique_number();\n")4312 -> 0.0028s4313== 20190417072838 ReinstallSetUniqueNumberTrigger: migrated (0.0060s) =========4315== 20190502175059 AddMergeableStateToPullRequests: migrating ==================4316-- add_column(:pull_requests, :mergeable_state, :string)4317 -> 0.0007s4318== 20190502175059 AddMergeableStateToPullRequests: migrated (0.0007s) =========4320== 20190510121000 AddReposIndexOnLowerOwnerNameAndName: migrating =============4321-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_repositories_on_lower_owner_name_and_name ON repositories (LOWER(owner_name), LOWER(name)) WHERE invalidated_at IS NULL")4322 -> 0.0037s4323== 20190510121000 AddReposIndexOnLowerOwnerNameAndName: migrated (0.0038s) ====4325== 20190605121000 AddHistoryMigrationStatusToRepositories: migrating ==========4326-- add_column(:repositories, :history_migration_status, :string)4327 -> 0.0009s4328== 20190605121000 AddHistoryMigrationStatusToRepositories: migrated (0.0010s) =4330== 20190605155459 AddPullRequestMergeableToRequests: migrating ================4331-- add_column(:requests, :pull_request_mergeable, :string)4332 -> 0.0011s4333== 20190605155459 AddPullRequestMergeableToRequests: migrated (0.0012s) =======4335== 20190613120000 SoftDeleteRepositoryAlongWithItsData: migrating =============4336-- execute("create table if not exists deleted_builds (like builds)")4337 -> 0.0037s4338-- execute("create table if not exists deleted_stages (like stages)")4339 -> 0.0027s4340-- execute("create table if not exists deleted_jobs (like jobs)")4341 -> 0.0030s4342-- execute("create table if not exists deleted_requests (like requests)")4343 -> 0.0030s4344-- execute("create table if not exists deleted_commits (like commits)")4345 -> 0.0029s4346-- execute("create table if not exists deleted_pull_requests (like pull_requests)")4347 -> 0.0035s4348-- execute("create table if not exists deleted_job_configs (like job_configs)")4349 -> 0.0036s4350-- execute("create table if not exists deleted_build_configs (like build_configs)")4351 -> 0.0032s4352-- execute("create table if not exists deleted_request_configs (like request_configs)")4353 -> 0.0035s4354-- execute("create table if not exists deleted_request_payloads (like request_payloads)")4355 -> 0.0033s4356-- execute("create table if not exists deleted_ssl_keys (like ssl_keys)")4357 -> 0.0036s4358-- execute("create table if not exists deleted_tags (like tags)")4359 -> 0.0037s4360-- execute("DROP FUNCTION IF EXISTS soft_delete_repo_data(bigint);\nCREATE FUNCTION soft_delete_repo_data(r_id bigint) RETURNS void AS $$\nDECLARE\n request_raw_config_ids bigint[];\n request_raw_configuration_ids bigint[];\n request_yaml_config_ids bigint[];\n request_config_ids bigint[];\n tag_ids bigint[];\n ssl_key_ids bigint[];\n build_config_ids bigint[];\n job_config_ids bigint[];\n build_ids bigint[];\n pull_request_ids bigint[];\n commit_ids bigint[];\n request_ids bigint[];\n request_payload_ids bigint[];\n stage_ids bigint[];\n job_ids bigint[];\nBEGIN\n SELECT INTO job_ids array_agg(id) FROM jobs WHERE repository_id = r_id;\n SELECT INTO stage_ids array_agg(id) FROM stages WHERE build_id IN (SELECT id FROM builds WHERE repository_id = r_id);\n SELECT INTO request_payload_ids array_agg(id) FROM request_payloads WHERE request_id IN (SELECT id FROM requests WHERE repository_id = r_id);\n SELECT INTO request_ids array_agg(id) FROM requests WHERE repository_id = r_id;\n SELECT INTO commit_ids array_agg(id) FROM commits WHERE repository_id = r_id;\n SELECT INTO pull_request_ids array_agg(id) FROM pull_requests WHERE repository_id = r_id;\n SELECT INTO build_ids array_agg(id) FROM builds WHERE repository_id = r_id;\n SELECT INTO job_config_ids array_agg(id) FROM job_configs WHERE repository_id = r_id;\n SELECT INTO build_config_ids array_agg(id) FROM build_configs WHERE repository_id = r_id;\n SELECT INTO ssl_key_ids array_agg(id) FROM ssl_keys WHERE repository_id = r_id;\n SELECT INTO tag_ids array_agg(id) FROM tags WHERE repository_id = r_id;\n SELECT INTO request_config_ids array_agg(id) FROM request_configs WHERE repository_id = r_id;\n SELECT INTO request_yaml_config_ids array_agg(id) FROM request_yaml_configs WHERE repository_id = r_id;\n SELECT INTO request_raw_configuration_ids array_agg(id) FROM request_raw_configurations WHERE request_id = ANY(request_ids);\n SELECT INTO request_raw_config_ids array_agg(id) FROM request_raw_configs WHERE id IN (SELECT request_raw_config_id FROM request_raw_configurations WHERE request_id = ANY(request_ids));\n\n INSERT INTO deleted_jobs SELECT * FROM jobs WHERE id = ANY(job_ids);\n INSERT INTO deleted_stages SELECT * FROM stages WHERE id = ANY(stage_ids);\n INSERT INTO deleted_request_payloads SELECT * FROM request_payloads WHERE id = ANY(request_payload_ids);\n INSERT INTO deleted_requests SELECT * FROM requests WHERE id = ANY(request_ids);\n INSERT INTO deleted_commits SELECT * FROM commits WHERE id = ANY(commit_ids);\n INSERT INTO deleted_pull_requests SELECT * FROM pull_requests WHERE id = ANY(pull_request_ids);\n INSERT INTO deleted_builds SELECT * FROM builds WHERE id = ANY(build_ids);\n INSERT INTO deleted_job_configs SELECT * FROM job_configs WHERE id = ANY(job_config_ids);\n INSERT INTO deleted_build_configs SELECT * FROM build_configs WHERE id = ANY(build_config_ids);\n INSERT INTO deleted_ssl_keys SELECT * FROM ssl_keys WHERE id = ANY(ssl_key_ids);\n INSERT INTO deleted_tags SELECT * FROM tags WHERE id = ANY(tag_ids);\n INSERT INTO deleted_request_configs SELECT * FROM request_configs WHERE id = ANY(request_config_ids);\n INSERT INTO deleted_request_yaml_configs SELECT * FROM request_yaml_configs WHERE id = ANY(request_yaml_config_ids);\n INSERT INTO deleted_request_raw_configurations SELECT * FROM request_raw_configurations WHERE id = ANY(request_raw_configuration_ids);\n INSERT INTO deleted_request_raw_configs SELECT * FROM request_raw_configs WHERE id = ANY(request_raw_config_ids);\n\n DELETE FROM jobs WHERE id = ANY(job_ids);\n DELETE FROM stages WHERE id = ANY(stage_ids);\n DELETE FROM request_payloads WHERE id = ANY(request_payload_ids);\n DELETE FROM requests WHERE id = ANY(request_ids);\n DELETE FROM commits WHERE id = ANY(commit_ids);\n DELETE FROM pull_requests WHERE id = ANY(pull_request_ids);\n DELETE FROM builds WHERE id = ANY(build_ids);\n DELETE FROM job_configs WHERE id = ANY(job_config_ids);\n DELETE FROM build_configs WHERE id = ANY(build_config_ids);\n DELETE FROM ssl_keys WHERE id = ANY(ssl_key_ids);\n DELETE FROM tags WHERE id = ANY(tag_ids);\n DELETE FROM request_configs WHERE id = ANY(request_config_ids);\n DELETE FROM request_yaml_configs WHERE id = ANY(request_yaml_config_ids);\n DELETE FROM request_raw_configurations WHERE id = ANY(request_raw_configuration_ids);\n DELETE FROM request_raw_configs WHERE id = ANY(request_raw_config_ids);\nEND;\n$$ LANGUAGE plpgsql;\n")4361 -> 0.0025s4362== 20190613120000 SoftDeleteRepositoryAlongWithItsData: migrated (0.0432s) ====4364== 20190618082559 AddVcsTypeToUser: migrating =================================4365-- add_column(:users, :vcs_type, :string, {:default=>nil})4366 -> 0.0024s4367-- execute("ALTER TABLE users ALTER COLUMN vcs_type SET DEFAULT 'GithubUser'")4368 -> 0.0006s4369-- select_value("SELECT id FROM users ORDER BY id DESC LIMIT 1")4370 -> 0.0011s4371-- execute("UPDATE users SET vcs_type = 'GithubUser' WHERE id BETWEEN 0 AND 5000")4372 -> 0.0010s4373== 20190618082559 AddVcsTypeToUser: migrated (0.0068s) ========================4375== 20190701082559 AddVcsTypeToRepository: migrating ===========================4376-- add_column(:repositories, :vcs_type, :string, {:default=>nil})4377 -> 0.0016s4378-- execute("ALTER TABLE repositories ALTER COLUMN vcs_type SET DEFAULT 'GithubRepository'")4379 -> 0.0006s4380-- select_value("SELECT id FROM repositories ORDER BY id DESC LIMIT 1")4381 -> 0.0011s4382-- execute("UPDATE repositories SET vcs_type = 'GithubRepository' WHERE id BETWEEN 0 AND 5000")4383 -> 0.0008s4384== 20190701082559 AddVcsTypeToRepository: migrated (0.0058s) ==================4386== 20190704082559 AddVcsTypeToOrganization: migrating =========================4387-- add_column(:organizations, :vcs_type, :string, {:default=>nil})4388 -> 0.0016s4389-- execute("ALTER TABLE organizations ALTER COLUMN vcs_type SET DEFAULT 'GithubOrganization'")4390 -> 0.0005s4391-- select_value("SELECT id FROM organizations ORDER BY id DESC LIMIT 1")4392 -> 0.0009s4393-- execute("UPDATE organizations SET vcs_type = 'GithubOrganization' WHERE id BETWEEN 0 AND 5000")4394 -> 0.0009s4395== 20190704082559 AddVcsTypeToOrganization: migrated (0.0056s) ================4397== 20190718092750 AddDeleteCascadeToForeignKeys: migrating ====================4398-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")4399 -> 0.0012s4400-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) ON DELETE CASCADE NOT VALID")4401 -> 0.0010s4402-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_request_id FOREIGN KEY (request_id) REFERENCES requests(id) ON DELETE CASCADE NOT VALID")4403 -> 0.0011s4404-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_pull_request_id FOREIGN KEY (pull_request_id) REFERENCES pull_requests(id) ON DELETE CASCADE NOT VALID")4405 -> 0.0009s4406-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")4407 -> 0.0010s4408-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE NOT VALID")4409 -> 0.0010s4410-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_config_id FOREIGN KEY (config_id) REFERENCES build_configs(id) ON DELETE CASCADE NOT VALID")4411 -> 0.0009s4412-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_new_jobs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")4413 -> 0.0010s4414-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_new_jobs_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) ON DELETE CASCADE NOT VALID")4415 -> 0.0009s4416-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_new_jobs_on_stage_id FOREIGN KEY (stage_id) REFERENCES stages(id) ON DELETE CASCADE NOT VALID")4417 -> 0.0009s4418-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_new_jobs_on_config_id FOREIGN KEY (config_id) REFERENCES job_configs(id) ON DELETE CASCADE NOT VALID")4419 -> 0.0009s4420-- execute("ALTER TABLE branches ADD CONSTRAINT fk_new_branches_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")4421 -> 0.0010s4422-- execute("ALTER TABLE tags ADD CONSTRAINT fk_new_tags_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")4423 -> 0.0009s4424-- execute("ALTER TABLE commits ADD CONSTRAINT fk_new_commits_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")4425 -> 0.0009s4426-- execute("ALTER TABLE commits ADD CONSTRAINT fk_new_commits_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")4427 -> 0.0008s4428-- execute("ALTER TABLE commits ADD CONSTRAINT fk_new_commits_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE NOT VALID")4429 -> 0.0007s4430-- execute("ALTER TABLE crons ADD CONSTRAINT fk_new_crons_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")4431 -> 0.0008s4432-- execute("ALTER TABLE job_configs ADD CONSTRAINT fk_new_job_configs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")4433 -> 0.0008s4434-- execute("ALTER TABLE build_configs ADD CONSTRAINT fk_new_build_configs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")4435 -> 0.0008s4436-- execute("ALTER TABLE pull_requests ADD CONSTRAINT fk_new_pull_requests_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")4437 -> 0.0009s4438-- execute("ALTER TABLE ssl_keys ADD CONSTRAINT fk_new_ssl_keys_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")4439 -> 0.0010s4440-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) ON DELETE CASCADE NOT VALID")4441 -> 0.0008s4442-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_pull_request_id FOREIGN KEY (pull_request_id) REFERENCES pull_requests(id) ON DELETE CASCADE NOT VALID")4443 -> 0.0009s4444-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")4445 -> 0.0009s4446-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE NOT VALID")4447 -> 0.0009s4448-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_config_id FOREIGN KEY (config_id) REFERENCES request_configs(id) ON DELETE CASCADE NOT VALID")4449 -> 0.0007s4450-- execute("ALTER TABLE stages ADD CONSTRAINT fk_new_stages_on_build_id FOREIGN KEY (build_id) REFERENCES builds(id) ON DELETE CASCADE NOT VALID")4451 -> 0.0008s4452-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_repository_id")4453 -> 0.0016s4454-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_commit_id")4455 -> 0.0011s4456-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_request_id")4457 -> 0.0012s4458-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_pull_request_id")4459 -> 0.0010s4460-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_branch_id")4461 -> 0.0010s4462-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_tag_id")4463 -> 0.0010s4464-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_config_id")4465 -> 0.0010s4466-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_repository_id")4467 -> 0.0011s4468-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_commit_id")4469 -> 0.0009s4470-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_stage_id")4471 -> 0.0009s4472-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_config_id")4473 -> 0.0009s4474-- execute("ALTER TABLE branches VALIDATE CONSTRAINT fk_new_branches_on_repository_id")4475 -> 0.0009s4476-- execute("ALTER TABLE tags VALIDATE CONSTRAINT fk_new_tags_on_repository_id")4477 -> 0.0008s4478-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_new_commits_on_repository_id")4479 -> 0.0009s4480-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_new_commits_on_branch_id")4481 -> 0.0008s4482-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_new_commits_on_tag_id")4483 -> 0.0008s4484-- execute("ALTER TABLE crons VALIDATE CONSTRAINT fk_new_crons_on_branch_id")4485 -> 0.0008s4486-- execute("ALTER TABLE job_configs VALIDATE CONSTRAINT fk_new_job_configs_on_repository_id")4487 -> 0.0008s4488-- execute("ALTER TABLE build_configs VALIDATE CONSTRAINT fk_new_build_configs_on_repository_id")4489 -> 0.0009s4490-- execute("ALTER TABLE pull_requests VALIDATE CONSTRAINT fk_new_pull_requests_on_repository_id")4491 -> 0.0008s4492-- execute("ALTER TABLE ssl_keys VALIDATE CONSTRAINT fk_new_ssl_keys_on_repository_id")4493 -> 0.0007s4494-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_commit_id")4495 -> 0.0009s4496-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_pull_request_id")4497 -> 0.0008s4498-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_branch_id")4499 -> 0.0008s4500-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_tag_id")4501 -> 0.0008s4502-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_config_id")4503 -> 0.0008s4504-- execute("ALTER TABLE stages VALIDATE CONSTRAINT fk_new_stages_on_build_id")4505 -> 0.0009s4506-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_repository_id")4507 -> 0.0010s4508-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_commit_id")4509 -> 0.0009s4510-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_request_id")4511 -> 0.0008s4512-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_pull_request_id")4513 -> 0.0009s4514-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_branch_id")4515 -> 0.0009s4516-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_tag_id")4517 -> 0.0008s4518-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_config_id")4519 -> 0.0008s4520-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_repository_id")4521 -> 0.0010s4522-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_commit_id")4523 -> 0.0008s4524-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_stage_id")4525 -> 0.0008s4526-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_config_id")4527 -> 0.0008s4528-- execute("ALTER TABLE branches DROP CONSTRAINT fk_branches_on_repository_id")4529 -> 0.0009s4530-- execute("ALTER TABLE tags DROP CONSTRAINT fk_tags_on_repository_id")4531 -> 0.0009s4532-- execute("ALTER TABLE commits DROP CONSTRAINT fk_commits_on_repository_id")4533 -> 0.0009s4534-- execute("ALTER TABLE commits DROP CONSTRAINT fk_commits_on_branch_id")4535 -> 0.0007s4536-- execute("ALTER TABLE commits DROP CONSTRAINT fk_commits_on_tag_id")4537 -> 0.0007s4538-- execute("ALTER TABLE crons DROP CONSTRAINT fk_crons_on_branch_id")4539 -> 0.0007s4540-- execute("ALTER TABLE job_configs DROP CONSTRAINT fk_job_configs_on_repository_id")4541 -> 0.0008s4542-- execute("ALTER TABLE build_configs DROP CONSTRAINT fk_build_configs_on_repository_id")4543 -> 0.0007s4544-- execute("ALTER TABLE pull_requests DROP CONSTRAINT fk_pull_requests_on_repository_id")4545 -> 0.0012s4546-- execute("ALTER TABLE ssl_keys DROP CONSTRAINT fk_ssl_keys_on_repository_id")4547 -> 0.0008s4548-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_commit_id")4549 -> 0.0009s4550-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_pull_request_id")4551 -> 0.0008s4552-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_branch_id")4553 -> 0.0008s4554-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_tag_id")4555 -> 0.0007s4556-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_config_id")4557 -> 0.0008s4558-- execute("ALTER TABLE stages DROP CONSTRAINT fk_stages_on_build_id")4559 -> 0.0008s4560-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_repository_id TO fk_builds_on_repository_id")4561 -> 0.0005s4562-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_commit_id TO fk_builds_on_commit_id")4563 -> 0.0004s4564-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_request_id TO fk_builds_on_request_id")4565 -> 0.0005s4566-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_pull_request_id TO fk_builds_on_pull_request_id")4567 -> 0.0004s4568-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_branch_id TO fk_builds_on_branch_id")4569 -> 0.0004s4570-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_tag_id TO fk_builds_on_tag_id")4571 -> 0.0004s4572-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_config_id TO fk_builds_on_config_id")4573 -> 0.0004s4574-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_repository_id TO fk_jobs_on_repository_id")4575 -> 0.0004s4576-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_commit_id TO fk_jobs_on_commit_id")4577 -> 0.0004s4578-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_stage_id TO fk_jobs_on_stage_id")4579 -> 0.0004s4580-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_config_id TO fk_jobs_on_config_id")4581 -> 0.0005s4582-- execute("ALTER TABLE branches RENAME CONSTRAINT fk_new_branches_on_repository_id TO fk_branches_on_repository_id")4583 -> 0.0004s4584-- execute("ALTER TABLE tags RENAME CONSTRAINT fk_new_tags_on_repository_id TO fk_tags_on_repository_id")4585 -> 0.0004s4586-- execute("ALTER TABLE commits RENAME CONSTRAINT fk_new_commits_on_repository_id TO fk_commits_on_repository_id")4587 -> 0.0004s4588-- execute("ALTER TABLE commits RENAME CONSTRAINT fk_new_commits_on_branch_id TO fk_commits_on_branch_id")4589 -> 0.0004s4590-- execute("ALTER TABLE commits RENAME CONSTRAINT fk_new_commits_on_tag_id TO fk_commits_on_tag_id")4591 -> 0.0004s4592-- execute("ALTER TABLE crons RENAME CONSTRAINT fk_new_crons_on_branch_id TO fk_crons_on_branch_id")4593 -> 0.0004s4594-- execute("ALTER TABLE job_configs RENAME CONSTRAINT fk_new_job_configs_on_repository_id TO fk_job_configs_on_repository_id")4595 -> 0.0003s4596-- execute("ALTER TABLE build_configs RENAME CONSTRAINT fk_new_build_configs_on_repository_id TO fk_build_configs_on_repository_id")4597 -> 0.0003s4598-- execute("ALTER TABLE pull_requests RENAME CONSTRAINT fk_new_pull_requests_on_repository_id TO fk_pull_requests_on_repository_id")4599 -> 0.0004s4600-- execute("ALTER TABLE ssl_keys RENAME CONSTRAINT fk_new_ssl_keys_on_repository_id TO fk_ssl_keys_on_repository_id")4601 -> 0.0004s4602-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_commit_id TO fk_requests_on_commit_id")4603 -> 0.0004s4604-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_pull_request_id TO fk_requests_on_pull_request_id")4605 -> 0.0004s4606-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_branch_id TO fk_requests_on_branch_id")4607 -> 0.0004s4608-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_tag_id TO fk_requests_on_tag_id")4609 -> 0.0004s4610-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_config_id TO fk_requests_on_config_id")4611 -> 0.0005s4612-- execute("ALTER TABLE stages RENAME CONSTRAINT fk_new_stages_on_build_id TO fk_stages_on_build_id")4613 -> 0.0004s4614== 20190718092750 AddDeleteCascadeToForeignKeys: migrated (0.0869s) ===========4616== 20190718100426 UpdateSoftDeleteProcedure: migrating ========================4617-- execute("DROP FUNCTION IF EXISTS soft_delete_repo_data(bigint);\nCREATE FUNCTION soft_delete_repo_data(r_id bigint) RETURNS void AS $$\nDECLARE\n request_raw_config_ids bigint[];\n request_raw_configuration_ids bigint[];\n request_yaml_config_ids bigint[];\n request_config_ids bigint[];\n tag_ids bigint[];\n ssl_key_ids bigint[];\n build_config_ids bigint[];\n job_config_ids bigint[];\n build_ids bigint[];\n pull_request_ids bigint[];\n commit_ids bigint[];\n request_ids bigint[];\n request_payload_ids bigint[];\n stage_ids bigint[];\n job_ids bigint[];\nBEGIN\n SELECT INTO job_ids array_agg(id) FROM jobs WHERE repository_id = r_id;\n SELECT INTO stage_ids array_agg(id) FROM stages WHERE build_id IN (SELECT id FROM builds WHERE repository_id = r_id);\n SELECT INTO request_payload_ids array_agg(id) FROM request_payloads WHERE request_id IN (SELECT id FROM requests WHERE repository_id = r_id);\n SELECT INTO request_ids array_agg(id) FROM requests WHERE repository_id = r_id;\n SELECT INTO commit_ids array_agg(id) FROM commits WHERE repository_id = r_id;\n SELECT INTO pull_request_ids array_agg(id) FROM pull_requests WHERE repository_id = r_id;\n SELECT INTO build_ids array_agg(id) FROM builds WHERE repository_id = r_id;\n SELECT INTO job_config_ids array_agg(id) FROM job_configs WHERE repository_id = r_id;\n SELECT INTO build_config_ids array_agg(id) FROM build_configs WHERE repository_id = r_id;\n SELECT INTO ssl_key_ids array_agg(id) FROM ssl_keys WHERE repository_id = r_id;\n SELECT INTO tag_ids array_agg(id) FROM tags WHERE repository_id = r_id;\n SELECT INTO request_config_ids array_agg(id) FROM request_configs WHERE repository_id = r_id;\n SELECT INTO request_yaml_config_ids array_agg(id) FROM request_yaml_configs WHERE repository_id = r_id;\n SELECT INTO request_raw_configuration_ids array_agg(id) FROM request_raw_configurations WHERE request_id = ANY(request_ids);\n SELECT INTO request_raw_config_ids array_agg(id) FROM request_raw_configs WHERE id IN (SELECT request_raw_config_id FROM request_raw_configurations WHERE request_id = ANY(request_ids));\n\n INSERT INTO deleted_jobs SELECT * FROM jobs WHERE id = ANY(job_ids);\n INSERT INTO deleted_stages SELECT * FROM stages WHERE id = ANY(stage_ids);\n INSERT INTO deleted_request_payloads SELECT * FROM request_payloads WHERE id = ANY(request_payload_ids);\n INSERT INTO deleted_requests SELECT * FROM requests WHERE id = ANY(request_ids);\n INSERT INTO deleted_commits SELECT * FROM commits WHERE id = ANY(commit_ids);\n INSERT INTO deleted_pull_requests SELECT * FROM pull_requests WHERE id = ANY(pull_request_ids);\n INSERT INTO deleted_builds SELECT * FROM builds WHERE id = ANY(build_ids);\n INSERT INTO deleted_job_configs SELECT * FROM job_configs WHERE id = ANY(job_config_ids);\n INSERT INTO deleted_build_configs SELECT * FROM build_configs WHERE id = ANY(build_config_ids);\n INSERT INTO deleted_ssl_keys SELECT * FROM ssl_keys WHERE id = ANY(ssl_key_ids);\n INSERT INTO deleted_tags SELECT * FROM tags WHERE id = ANY(tag_ids);\n INSERT INTO deleted_request_configs SELECT * FROM request_configs WHERE id = ANY(request_config_ids);\n INSERT INTO deleted_request_yaml_configs SELECT * FROM request_yaml_configs WHERE id = ANY(request_yaml_config_ids);\n INSERT INTO deleted_request_raw_configurations SELECT * FROM request_raw_configurations WHERE id = ANY(request_raw_configuration_ids);\n INSERT INTO deleted_request_raw_configs SELECT * FROM request_raw_configs WHERE id = ANY(request_raw_config_ids);\n\n DELETE FROM jobs WHERE id = ANY(job_ids);\n DELETE FROM stages WHERE id = ANY(stage_ids);\n DELETE FROM request_payloads WHERE id = ANY(request_payload_ids);\n DELETE FROM requests WHERE id = ANY(request_ids);\n DELETE FROM commits WHERE id = ANY(commit_ids);\n DELETE FROM pull_requests WHERE id = ANY(pull_request_ids);\n DELETE FROM builds WHERE id = ANY(build_ids);\n DELETE FROM job_configs WHERE id = ANY(job_config_ids);\n DELETE FROM build_configs WHERE id = ANY(build_config_ids);\n DELETE FROM ssl_keys WHERE id = ANY(ssl_key_ids);\n DELETE FROM tags WHERE id = ANY(tag_ids);\n DELETE FROM request_configs WHERE id = ANY(request_config_ids);\n DELETE FROM request_yaml_configs WHERE id = ANY(request_yaml_config_ids);\n DELETE FROM request_raw_configurations WHERE id = ANY(request_raw_configuration_ids);\n DELETE FROM request_raw_configs WHERE id = ANY(request_raw_config_ids);\nEND;\n$$ LANGUAGE plpgsql;\n")4618 -> 0.0025s4619== 20190718100426 UpdateSoftDeleteProcedure: migrated (0.0029s) ===============4621== 20190725103113 UpdateSoftDelete: migrating =================================4622-- execute("create table deleted_request_yaml_configs (like request_yaml_configs)")4623 -> 0.0034s4624-- execute("DROP FUNCTION IF EXISTS soft_delete_repo_data(bigint);\nCREATE FUNCTION soft_delete_repo_data(r_id bigint) RETURNS void AS $$\nDECLARE\n request_raw_config_ids bigint[];\n request_raw_configuration_ids bigint[];\n request_yaml_config_ids bigint[];\n request_config_ids bigint[];\n tag_ids bigint[];\n ssl_key_ids bigint[];\n build_config_ids bigint[];\n job_config_ids bigint[];\n build_ids bigint[];\n pull_request_ids bigint[];\n commit_ids bigint[];\n request_ids bigint[];\n request_payload_ids bigint[];\n stage_ids bigint[];\n job_ids bigint[];\nBEGIN\n SELECT INTO job_ids array_agg(id) FROM jobs WHERE repository_id = r_id;\n SELECT INTO stage_ids array_agg(id) FROM stages WHERE build_id IN (SELECT id FROM builds WHERE repository_id = r_id);\n SELECT INTO request_payload_ids array_agg(id) FROM request_payloads WHERE request_id IN (SELECT id FROM requests WHERE repository_id = r_id);\n SELECT INTO request_ids array_agg(id) FROM requests WHERE repository_id = r_id;\n SELECT INTO commit_ids array_agg(id) FROM commits WHERE repository_id = r_id;\n SELECT INTO pull_request_ids array_agg(id) FROM pull_requests WHERE repository_id = r_id;\n SELECT INTO build_ids array_agg(id) FROM builds WHERE repository_id = r_id;\n SELECT INTO job_config_ids array_agg(id) FROM job_configs WHERE repository_id = r_id;\n SELECT INTO build_config_ids array_agg(id) FROM build_configs WHERE repository_id = r_id;\n SELECT INTO ssl_key_ids array_agg(id) FROM ssl_keys WHERE repository_id = r_id;\n SELECT INTO tag_ids array_agg(id) FROM tags WHERE repository_id = r_id;\n SELECT INTO request_config_ids array_agg(id) FROM request_configs WHERE repository_id = r_id;\n SELECT INTO request_yaml_config_ids array_agg(id) FROM request_yaml_configs WHERE repository_id = r_id;\n SELECT INTO request_raw_configuration_ids array_agg(id) FROM request_raw_configurations WHERE request_id = ANY(request_ids);\n SELECT INTO request_raw_config_ids array_agg(id) FROM request_raw_configs WHERE id IN (SELECT request_raw_config_id FROM request_raw_configurations WHERE request_id = ANY(request_ids));\n\n INSERT INTO deleted_jobs SELECT * FROM jobs WHERE id = ANY(job_ids);\n INSERT INTO deleted_stages SELECT * FROM stages WHERE id = ANY(stage_ids);\n INSERT INTO deleted_request_payloads SELECT * FROM request_payloads WHERE id = ANY(request_payload_ids);\n INSERT INTO deleted_requests SELECT * FROM requests WHERE id = ANY(request_ids);\n INSERT INTO deleted_commits SELECT * FROM commits WHERE id = ANY(commit_ids);\n INSERT INTO deleted_pull_requests SELECT * FROM pull_requests WHERE id = ANY(pull_request_ids);\n INSERT INTO deleted_builds SELECT * FROM builds WHERE id = ANY(build_ids);\n INSERT INTO deleted_job_configs SELECT * FROM job_configs WHERE id = ANY(job_config_ids);\n INSERT INTO deleted_build_configs SELECT * FROM build_configs WHERE id = ANY(build_config_ids);\n INSERT INTO deleted_ssl_keys SELECT * FROM ssl_keys WHERE id = ANY(ssl_key_ids);\n INSERT INTO deleted_tags SELECT * FROM tags WHERE id = ANY(tag_ids);\n INSERT INTO deleted_request_configs SELECT * FROM request_configs WHERE id = ANY(request_config_ids);\n INSERT INTO deleted_request_yaml_configs SELECT * FROM request_yaml_configs WHERE id = ANY(request_yaml_config_ids);\n INSERT INTO deleted_request_raw_configurations SELECT * FROM request_raw_configurations WHERE id = ANY(request_raw_configuration_ids);\n INSERT INTO deleted_request_raw_configs SELECT * FROM request_raw_configs WHERE id = ANY(request_raw_config_ids);\n\n DELETE FROM jobs WHERE id = ANY(job_ids);\n DELETE FROM stages WHERE id = ANY(stage_ids);\n DELETE FROM request_payloads WHERE id = ANY(request_payload_ids);\n DELETE FROM requests WHERE id = ANY(request_ids);\n DELETE FROM commits WHERE id = ANY(commit_ids);\n DELETE FROM pull_requests WHERE id = ANY(pull_request_ids);\n DELETE FROM builds WHERE id = ANY(build_ids);\n DELETE FROM job_configs WHERE id = ANY(job_config_ids);\n DELETE FROM build_configs WHERE id = ANY(build_config_ids);\n DELETE FROM ssl_keys WHERE id = ANY(ssl_key_ids);\n DELETE FROM tags WHERE id = ANY(tag_ids);\n DELETE FROM request_configs WHERE id = ANY(request_config_ids);\n DELETE FROM request_yaml_configs WHERE id = ANY(request_yaml_config_ids);\n DELETE FROM request_raw_configurations WHERE id = ANY(request_raw_configuration_ids);\n DELETE FROM request_raw_configs WHERE id = ANY(request_raw_config_ids);\nEND;\n$$ LANGUAGE plpgsql;\n")4625 -> 0.0021s4626== 20190725103113 UpdateSoftDelete: migrated (0.0059s) ========================4628== 20190725105934 AddOrgIdToConfigs: migrating ================================4629-- add_column(:job_configs, :org_id, :bigint)4630 -> 0.0013s4631-- add_column(:deleted_job_configs, :org_id, :bigint)4632 -> 0.0012s4633-- add_column(:build_configs, :org_id, :bigint)4634 -> 0.0012s4635-- add_column(:deleted_build_configs, :org_id, :bigint)4636 -> 0.0010s4637-- add_column(:request_configs, :org_id, :bigint)4638 -> 0.0011s4639-- add_column(:deleted_request_configs, :org_id, :bigint)4640 -> 0.0011s4641-- add_column(:request_yaml_configs, :org_id, :bigint)4642 -> 0.0011s4643-- add_column(:deleted_request_yaml_configs, :org_id, :bigint)4644 -> 0.0010s4645-- add_column(:request_payloads, :org_id, :bigint)4646 -> 0.0011s4647-- add_column(:deleted_request_payloads, :org_id, :bigint)4648 -> 0.0011s4649-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_job_configs_on_org_id ON job_configs (org_id)")4650 -> 0.0037s4651-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_build_configs_on_org_id ON build_configs (org_id)")4652 -> 0.0036s4653-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_configs_on_org_id ON request_configs (org_id)")4654 -> 0.0036s4655-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_yaml_configs_on_org_id ON request_yaml_configs (org_id)")4656 -> 0.0036s4657-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_payloads_on_org_id ON request_payloads (org_id)")4658 -> 0.0037s4659== 20190725105934 AddOrgIdToConfigs: migrated (0.0302s) =======================4661== 20190729105934 AddOrgAndComIdsToRawConfigs: migrating ======================4662-- add_column(:request_raw_configs, :org_id, :bigint)4663 -> 0.0013s4664-- add_column(:request_raw_configurations, :org_id, :bigint)4665 -> 0.0034s4666-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_raw_configs_on_org_id ON request_raw_configs (org_id)")4667 -> 0.0033s4668-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_raw_configurations_on_org_id ON request_raw_configurations (org_id)")4669 -> 0.0033s4670== 20190729105934 AddOrgAndComIdsToRawConfigs: migrated (0.0115s) =============4672== 20190801120510 AddMoreDeletedTables: migrating =============================4673-- execute("create table if not exists deleted_request_raw_configs (like request_raw_configs)")4674 -> 0.0028s4675-- execute("create table if not exists deleted_request_raw_configurations (like request_raw_configurations)")4676 -> 0.0023s4677-- execute("DROP FUNCTION IF EXISTS soft_delete_repo_data(bigint);\nCREATE FUNCTION soft_delete_repo_data(r_id bigint) RETURNS void AS $$\nDECLARE\n request_raw_config_ids bigint[];\n request_raw_configuration_ids bigint[];\n request_yaml_config_ids bigint[];\n request_config_ids bigint[];\n tag_ids bigint[];\n ssl_key_ids bigint[];\n build_config_ids bigint[];\n job_config_ids bigint[];\n build_ids bigint[];\n pull_request_ids bigint[];\n commit_ids bigint[];\n request_ids bigint[];\n request_payload_ids bigint[];\n stage_ids bigint[];\n job_ids bigint[];\nBEGIN\n SELECT INTO job_ids array_agg(id) FROM jobs WHERE repository_id = r_id;\n SELECT INTO stage_ids array_agg(id) FROM stages WHERE build_id IN (SELECT id FROM builds WHERE repository_id = r_id);\n SELECT INTO request_payload_ids array_agg(id) FROM request_payloads WHERE request_id IN (SELECT id FROM requests WHERE repository_id = r_id);\n SELECT INTO request_ids array_agg(id) FROM requests WHERE repository_id = r_id;\n SELECT INTO commit_ids array_agg(id) FROM commits WHERE repository_id = r_id;\n SELECT INTO pull_request_ids array_agg(id) FROM pull_requests WHERE repository_id = r_id;\n SELECT INTO build_ids array_agg(id) FROM builds WHERE repository_id = r_id;\n SELECT INTO job_config_ids array_agg(id) FROM job_configs WHERE repository_id = r_id;\n SELECT INTO build_config_ids array_agg(id) FROM build_configs WHERE repository_id = r_id;\n SELECT INTO ssl_key_ids array_agg(id) FROM ssl_keys WHERE repository_id = r_id;\n SELECT INTO tag_ids array_agg(id) FROM tags WHERE repository_id = r_id;\n SELECT INTO request_config_ids array_agg(id) FROM request_configs WHERE repository_id = r_id;\n SELECT INTO request_yaml_config_ids array_agg(id) FROM request_yaml_configs WHERE repository_id = r_id;\n SELECT INTO request_raw_configuration_ids array_agg(id) FROM request_raw_configurations WHERE request_id = ANY(request_ids);\n SELECT INTO request_raw_config_ids array_agg(id) FROM request_raw_configs WHERE id IN (SELECT request_raw_config_id FROM request_raw_configurations WHERE request_id = ANY(request_ids));\n\n INSERT INTO deleted_jobs SELECT * FROM jobs WHERE id = ANY(job_ids);\n INSERT INTO deleted_stages SELECT * FROM stages WHERE id = ANY(stage_ids);\n INSERT INTO deleted_request_payloads SELECT * FROM request_payloads WHERE id = ANY(request_payload_ids);\n INSERT INTO deleted_requests SELECT * FROM requests WHERE id = ANY(request_ids);\n INSERT INTO deleted_commits SELECT * FROM commits WHERE id = ANY(commit_ids);\n INSERT INTO deleted_pull_requests SELECT * FROM pull_requests WHERE id = ANY(pull_request_ids);\n INSERT INTO deleted_builds SELECT * FROM builds WHERE id = ANY(build_ids);\n INSERT INTO deleted_job_configs SELECT * FROM job_configs WHERE id = ANY(job_config_ids);\n INSERT INTO deleted_build_configs SELECT * FROM build_configs WHERE id = ANY(build_config_ids);\n INSERT INTO deleted_ssl_keys SELECT * FROM ssl_keys WHERE id = ANY(ssl_key_ids);\n INSERT INTO deleted_tags SELECT * FROM tags WHERE id = ANY(tag_ids);\n INSERT INTO deleted_request_configs SELECT * FROM request_configs WHERE id = ANY(request_config_ids);\n INSERT INTO deleted_request_yaml_configs SELECT * FROM request_yaml_configs WHERE id = ANY(request_yaml_config_ids);\n INSERT INTO deleted_request_raw_configurations SELECT * FROM request_raw_configurations WHERE id = ANY(request_raw_configuration_ids);\n INSERT INTO deleted_request_raw_configs SELECT * FROM request_raw_configs WHERE id = ANY(request_raw_config_ids);\n\n DELETE FROM jobs WHERE id = ANY(job_ids);\n DELETE FROM stages WHERE id = ANY(stage_ids);\n DELETE FROM request_payloads WHERE id = ANY(request_payload_ids);\n DELETE FROM requests WHERE id = ANY(request_ids);\n DELETE FROM commits WHERE id = ANY(commit_ids);\n DELETE FROM pull_requests WHERE id = ANY(pull_request_ids);\n DELETE FROM builds WHERE id = ANY(build_ids);\n DELETE FROM job_configs WHERE id = ANY(job_config_ids);\n DELETE FROM build_configs WHERE id = ANY(build_config_ids);\n DELETE FROM ssl_keys WHERE id = ANY(ssl_key_ids);\n DELETE FROM tags WHERE id = ANY(tag_ids);\n DELETE FROM request_configs WHERE id = ANY(request_config_ids);\n DELETE FROM request_yaml_configs WHERE id = ANY(request_yaml_config_ids);\n DELETE FROM request_raw_configurations WHERE id = ANY(request_raw_configuration_ids);\n DELETE FROM request_raw_configs WHERE id = ANY(request_raw_config_ids);\nEND;\n$$ LANGUAGE plpgsql;\n")4678 -> 0.0014s4679== 20190801120510 AddMoreDeletedTables: migrated (0.0067s) ====================4681== 20190815152336 AddComIdToMoreTables: migrating =============================4682-- add_column(:request_configs, :com_id, :bigint)4683 -> 0.0011s4684-- add_column(:request_yaml_configs, :com_id, :bigint)4685 -> 0.0010s4686-- add_column(:deleted_request_configs, :com_id, :bigint)4687 -> 0.0010s4688-- add_column(:deleted_request_yaml_configs, :com_id, :bigint)4689 -> 0.0009s4690-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_configs_on_com_id ON request_configs (com_id)")4691 -> 0.0036s4692-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_yaml_configs_on_com_id ON request_yaml_configs (com_id)")4693 -> 0.0035s4694== 20190815152336 AddComIdToMoreTables: migrated (0.0115s) ====================4696== 20190815164320 AddComIdToBuildConfigs: migrating ===========================4697-- add_column(:build_configs, :com_id, :bigint)4698 -> 0.0079s4699-- add_column(:deleted_build_configs, :com_id, :bigint)4700 -> 0.0011s4701-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_build_configs_on_com_id ON build_configs (com_id)")4702 -> 0.0037s4703== 20190815164320 AddComIdToBuildConfigs: migrated (0.0130s) ==================4705== 20190815172205 AddComIdToJobConfigs: migrating =============================4706-- add_column(:job_configs, :com_id, :bigint)4707 -> 0.0014s4708-- add_column(:deleted_job_configs, :com_id, :bigint)4709 -> 0.0012s4710-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_job_configs_on_com_id ON job_configs (com_id)")4711 -> 0.0038s4712== 20190815172205 AddComIdToJobConfigs: migrated (0.0066s) ====================4714== 20190819082558 AddVcsIdToUser: migrating ===================================4715-- add_column(:users, :vcs_id, :string, {:default=>nil})4716 -> 0.0017s4717-- execute("CREATE INDEX CONCURRENTLY index_users_on_vcs_id_and_vcs_type ON users (vcs_id, vcs_type);")4718 -> 0.0038s4719== 20190819082558 AddVcsIdToUser: migrated (0.0057s) ==========================4721== 20190819082559 AddVcsIdToRepository: migrating =============================4722-- add_column(:repositories, :vcs_id, :string, {:default=>nil})4723 -> 0.0018s4724-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_vcs_id_and_vcs_type ON repositories (vcs_id, vcs_type);")4725 -> 0.0038s4726== 20190819082559 AddVcsIdToRepository: migrated (0.0058s) ====================4728== 20190820082431 AddVcsIdToOrganization: migrating ===========================4729-- add_column(:organizations, :vcs_id, :string, {:default=>nil})4730 -> 0.0016s4731-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_vcs_id_and_vcs_type ON organizations (vcs_id, vcs_type);")4732 -> 0.0039s4733== 20190820082431 AddVcsIdToOrganization: migrated (0.0056s) ==================4735== 20190913092543 CopyVcsIdForRepository: migrating ===========================4736-- select_value("SELECT id FROM repositories ORDER BY id DESC LIMIT 1")4737 -> 0.0009s4738-- execute("UPDATE \"repositories\" SET vcs_id = github_id WHERE id BETWEEN 0 AND 5000")4739 -> 0.0010s4740== 20190913092543 CopyVcsIdForRepository: migrated (0.0025s) ==================4742== 20190913092554 CopyVcsIdForUser: migrating =================================4743-- select_value("SELECT id FROM users ORDER BY id DESC LIMIT 1")4744 -> 0.0008s4745-- execute("UPDATE \"users\" SET vcs_id = github_id WHERE id BETWEEN 0 AND 5000")4746 -> 0.0009s4747== 20190913092554 CopyVcsIdForUser: migrated (0.0023s) ========================4749== 20190913092565 CopyVcsIdForOrganization: migrating =========================4750-- select_value("SELECT id FROM organizations ORDER BY id DESC LIMIT 1")4751 -> 0.0007s4752-- execute("UPDATE \"organizations\" SET vcs_id = github_id WHERE id BETWEEN 0 AND 5000")4753 -> 0.0009s4754== 20190913092565 CopyVcsIdForOrganization: migrated (0.0022s) ================4756== 20190920160300 MessagesAddTypeSourceLine: migrating ========================4757-- add_column(:messages, :type, :string, {:default=>nil})4758 -> 0.0017s4759-- add_column(:messages, :src, :string, {:default=>nil})4760 -> 0.0016s4761-- add_column(:messages, :line, :integer, {:default=>nil})4762 -> 0.0016s4763== 20190920160300 MessagesAddTypeSourceLine: migrated (0.0051s) ===============4765== 20191112000000 ReposAddFork: migrating =====================================4766-- add_column(:repositories, :fork, :boolean, {:default=>nil})4767 -> 0.0027s4768== 20191112000000 ReposAddFork: migrated (0.0028s) ============================4770== 20191112172015 AddVcsIndexToRepositories: migrating ========================4771-- add_index(:repositories, [:vcs_type, :vcs_id], {:algorithm=>:concurrently})4772 -> 0.0042s4773== 20191112172015 AddVcsIndexToRepositories: migrated (0.0042s) ===============4775== 20191112172332 AddVcsIndexToUsers: migrating ===============================4776-- add_index(:users, [:vcs_type, :vcs_id], {:algorithm=>:concurrently})4777 -> 0.0039s4778== 20191112172332 AddVcsIndexToUsers: migrated (0.0040s) ======================4780== 20191219091445 AddHeadRepoVcsIdToPullRequest: migrating ====================4781-- add_column(:pull_requests, :head_repo_vcs_id, :string, {:default=>nil})4782 -> 0.0018s4783-- execute("CREATE INDEX CONCURRENTLY index_pull_requests_on_head_repo_vcs_id ON pull_requests (head_repo_vcs_id);")4784 -> 0.0041s4785== 20191219091445 AddHeadRepoVcsIdToPullRequest: migrated (0.0061s) ===========4787== 20191219091446 AddHeadRepoVcsIdToDeletedPullRequest: migrating =============4788-- add_column(:deleted_pull_requests, :head_repo_vcs_id, :string, {:default=>nil})4789 -> 0.0015s4790-- execute("CREATE INDEX CONCURRENTLY index_deleted_pull_requests_on_head_repo_vcs_id ON deleted_pull_requests (head_repo_vcs_id);")4791 -> 0.0036s4792== 20191219091446 AddHeadRepoVcsIdToDeletedPullRequest: migrated (0.0052s) ====4794== 20200122000000 AddConfigsJson: migrating ===================================4795-- add_column(:request_configs, :config_json, :json)4796 -> 0.0011s4797-- add_column(:build_configs, :config_json, :json)4798 -> 0.0006s4799-- add_column(:job_configs, :config_json, :json)4800 -> 0.0013s4801-- add_column(:deleted_request_configs, :config_json, :json)4802 -> 0.0006s4803-- add_column(:deleted_build_configs, :config_json, :json)4804 -> 0.0006s4805-- add_column(:deleted_job_configs, :config_json, :json)4806 -> 0.0006s4807== 20200122000000 AddConfigsJson: migrated (0.0052s) ==========================4809== 20200127000000 DropJobConfigsGpu: migrating ================================4810-- execute("DROP MATERIALIZED VIEW job_configs_gpu\n")4811 -> 0.0010s4812== 20200127000000 DropJobConfigsGpu: migrated (0.0011s) =======================4814== 20200127000001 RenameConfigsJson: migrating ================================4815-- remove_column(:request_configs, :config)4816 -> 0.0009s4817-- rename_column(:request_configs, :config_json, :config)4818 -> 0.0028s4819-- remove_column(:build_configs, :config)4820 -> 0.0004s4821-- rename_column(:build_configs, :config_json, :config)4822 -> 0.0032s4823-- remove_column(:job_configs, :config)4824 -> 0.0005s4825-- rename_column(:job_configs, :config_json, :config)4826 -> 0.0033s4827-- remove_column(:deleted_request_configs, :config)4828 -> 0.0005s4829-- rename_column(:deleted_request_configs, :config_json, :config)4830 -> 0.0012s4831-- remove_column(:deleted_build_configs, :config)4832 -> 0.0005s4833-- rename_column(:deleted_build_configs, :config_json, :config)4834 -> 0.0011s4835-- remove_column(:deleted_job_configs, :config)4836 -> 0.0006s4837-- rename_column(:deleted_job_configs, :config_json, :config)4838 -> 0.0011s4839== 20200127000001 RenameConfigsJson: migrated (0.0170s) =======================4841== 20200214144655 AddIndexToJobVersionsOnJobId: migrating =====================4842-- add_index(:job_versions, :job_id, {:algorithm=>:concurrently})4843 -> 0.0038s4844== 20200214144655 AddIndexToJobVersionsOnJobId: migrated (0.0040s) ============4846== 20200225085734 AddVcsSlugToRepository: migrating ===========================4847-- add_column(:repositories, :vcs_slug, :string, {:default=>nil})4848 -> 0.0018s4849== 20200225085734 AddVcsSlugToRepository: migrated (0.0019s) ==================4851== 20200227085734 AddVcsSourceHostToRepository: migrating =====================4852-- add_column(:repositories, :vcs_source_host, :string, {:default=>nil})4853 -> 0.0060s4854== 20200227085734 AddVcsSourceHostToRepository: migrated (0.0060s) ============4856== 20200227085736 AddVcsIndexes: migrating ====================================4857-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_slug_or_on_lower_owner_name ON repositories (LOWER(vcs_slug), LOWER(owner_name), LOWER(name), LOWER(vcs_type)) WHERE invalidated_at IS NULL")4858 -> 0.0040s4859== 20200227085736 AddVcsIndexes: migrated (0.0040s) ===========================4861== 20200227085737 AddRepositoryNameAndSlugIndex: migrating ====================4862-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_slug_or_names ON repositories (vcs_slug, owner_name, name) WHERE invalidated_at IS NULL")4863 -> 0.0039s4864== 20200227085737 AddRepositoryNameAndSlugIndex: migrated (0.0040s) ===========4866== 20200227085742 AddPullRequestSourceData: migrating =========================4867-- add_column(:pull_requests, :base_repo_slug, :string, {:default=>nil})4868 -> 0.0013s4869-- add_column(:pull_requests, :base_repo_vcs_id, :string, {:default=>nil})4870 -> 0.0012s4871-- add_column(:pull_requests, :base_ref, :string, {:default=>nil})4872 -> 0.0011s4873-- add_column(:deleted_pull_requests, :base_repo_slug, :string, {:default=>nil})4874 -> 0.0011s4875-- add_column(:deleted_pull_requests, :base_repo_vcs_id, :string, {:default=>nil})4876 -> 0.0011s4877-- add_column(:deleted_pull_requests, :base_ref, :string, {:default=>nil})4878 -> 0.0011s4879== 20200227085742 AddPullRequestSourceData: migrated (0.0072s) ================4881== 20200312184018 AddUserUtmParamsTable: migrating ============================4882-- create_table(:user_utm_params)4883 -> 0.0072s4884== 20200312184018 AddUserUtmParamsTable: migrated (0.0073s) ===================4886== 20200316085738 AddRepositoryVcsSlugIndex: migrating ========================4887-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_vcs_slug ON repositories (LOWER(vcs_slug))")4888 -> 0.0035s4889-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_vcs_slug_valid ON repositories (LOWER(vcs_slug)) WHERE invalidated_at IS NULL")4890 -> 0.0037s4891== 20200316085738 AddRepositoryVcsSlugIndex: migrated (0.0073s) ===============4893== 20200325115329 AddMultipleJobStateIndexesOrderByNewest: migrating ==========4894-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_booting_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc) where state = 'booting'")4895 -> 0.0039s4896-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_canceled_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc) where state = 'canceled'")4897 -> 0.0037s4898-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_created_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc) where state = 'created'")4899 -> 0.0035s4900-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_errored_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc) where state = 'errored'")4901 -> 0.0037s4902-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_failed_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc) where state = 'failed'")4903 -> 0.0036s4904-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_passed_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc) where state = 'passed'")4905 -> 0.0038s4906-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_queued_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc) where state = 'queued'")4907 -> 0.0035s4908-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_received_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc) where state = 'received'")4909 -> 0.0036s4910-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_started_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc) where state = 'started'")4911 -> 0.0034s4912== 20200325115329 AddMultipleJobStateIndexesOrderByNewest: migrated (0.0330s) =4914== 20200325130013 AddFunctionMostRecentJobIdsForUserRepositoriesByStates: migrating4915-- execute("\n CREATE OR REPLACE FUNCTION\n most_recent_job_ids_for_user_repositories_by_states(uid int, states varchar default '') RETURNS table (id bigint) AS\n $BODY$\n DECLARE\n rid int;\n BEGIN\n SET LOCAL work_mem = '16MB';\n IF states <> '' THEN\n RETURN QUERY WITH matrix AS (\n SELECT repository_id, replace(replace(job_state::varchar, '(', ''), ')', '') as job_state\n FROM permissions p\n CROSS JOIN (\n SELECT unnest(regexp_split_to_array(states, ','))\n ) AS job_state\n WHERE p.user_id = uid\n )\n SELECT recent.id\n FROM matrix m\n CROSS JOIN LATERAL (\n SELECT job_id AS id, repository_id\n FROM most_recent_job_ids_for_repository_by_state(m.repository_id, m.job_state::varchar)\n ) AS recent\n ORDER BY id desc;\n ELSE\n for rid in\n SELECT repository_id\n FROM permissions\n WHERE user_id = uid\n LOOP\n RETURN QUERY select j.id from jobs j where repository_id = rid order by j.id desc limit 100;\n END LOOP;\n END IF;\n END\n $BODY$\n LANGUAGE plpgsql;\n ")4916 -> 0.0010s4917== 20200325130013 AddFunctionMostRecentJobIdsForUserRepositoriesByStates: migrated (0.0011s)4919== 20200330110527 AddFunctionMostRecentJobIdsForRepositoryByState: migrating ==4920-- execute("\n CREATE OR REPLACE FUNCTION\n most_recent_job_ids_for_repository_by_state(rid int, st varchar) RETURNS table (job_id bigint, repository_id int) AS\n $BODY$\n DECLARE\n BEGIN\n RETURN QUERY select j.id, j.repository_id from jobs j where j.repository_id = rid and j.state = st order by j.id desc limit 100;\n END\n $BODY$\n LANGUAGE plpgsql;\n ")4921 -> 0.0007s4922== 20200330110527 AddFunctionMostRecentJobIdsForRepositoryByState: migrated (0.0007s)4924== 20200406121218 AddIndexJobsOnRepositoryIdOrderByNewest: migrating ==========4925-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc)")4926 -> 0.0036s4927== 20200406121218 AddIndexJobsOnRepositoryIdOrderByNewest: migrated (0.0036s) =4929== 20200424000000 RequestRawConfigurationsAddMergeMode: migrating =============4930-- add_column(:request_raw_configurations, :merge_mode, :string, {:default=>nil})4931 -> 0.0011s4932-- add_column(:deleted_request_raw_configurations, :merge_mode, :string, {:default=>nil})4933 -> 0.0014s4934== 20200424000000 RequestRawConfigurationsAddMergeMode: migrated (0.0026s) ====4936== 20200527123653 AddColumnPriorityToTableJobsAndDeletedJobs: migrating =======4937-- add_column(:jobs, :priority, :integer, {:default=>nil})4938 -> 0.0012s4939-- add_column(:deleted_jobs, :priority, :integer, {:default=>nil})4940 -> 0.0012s4941== 20200527123653 AddColumnPriorityToTableJobsAndDeletedJobs: migrated (0.0025s)4943== 20200928143126 AddBuildTriggerPermissions: migrating =======================4944-- add_column(:memberships, :build_permission, :boolean, {:default=>nil})4945 -> 0.0011s4946-- add_column(:permissions, :build, :boolean, {:default=>nil})4947 -> 0.0011s4948== 20200928143126 AddBuildTriggerPermissions: migrated (0.0022s) ==============4950== 20202427123653 AddColumnHasLocalRegistrationToTableSubscriptions: migrating4951-- add_column(:subscriptions, :has_local_registration, :boolean, {:default=>nil})4952 -> 0.0012s4953== 20202427123653 AddColumnHasLocalRegistrationToTableSubscriptions: migrated (0.0012s)4955== 20210203130200 CreateBuildBackupsTable: migrating ==========================4956-- create_table(:build_backups, {:id=>:integer})4957 -> 0.0052s4958== 20210203130200 CreateBuildBackupsTable: migrated (0.0053s) =================4960== 20210203143155 AddConfirmationFieldsToUser: migrating ======================4961-- add_column(:users, :confirmed_at, :timestamp, {:precision=>nil})4962 -> 0.0009s4963-- add_column(:users, :token_expires_at, :timestamp, {:precision=>nil})4964 -> 0.0009s4965-- add_column(:users, :confirmation_token, :string)4966 -> 0.0009s4967-- add_index(:users, :confirmation_token)4968 -> 0.0024s4969== 20210203143155 AddConfirmationFieldsToUser: migrated (0.0053s) =============4971== 20210203143406 ConfirmCurrentUsers: migrating ==============================4972== 20210203143406 ConfirmCurrentUsers: migrated (0.0000s) =====================4974== 20210614140633 AddServerTypeToRepositories: migrating ======================4975-- add_column(:repositories, :server_type, :string, {:limit=>20})4976 -> 0.0007s4977== 20210614140633 AddServerTypeToRepositories: migrated (0.0008s) =============4979== 20220610092916 MostRecentJobIdsForUserRepositoriesByStatesLw: migrating ====4980-- execute("\n CREATE OR REPLACE FUNCTION\n most_recent_job_ids_for_user_repositories_by_states_lw(uid int, states varchar default '') RETURNS table (id bigint)\n LANGUAGE plpgsql\n AS $$\n DECLARE\n rid int;\n BEGIN\n SET LOCAL work_mem = '16MB';\n IF states <> '' THEN\n for rid in\n SELECT repository_id\n FROM permissions\n WHERE user_id = uid\n LOOP\n RETURN QUERY select j.id from jobs j where repository_id = rid and state in (SELECT unnest(regexp_split_to_array(states, ','))) order by j.id desc limit 100;\n END LOOP;\n ELSE\n for rid in\n SELECT repository_id\n FROM permissions\n WHERE user_id = uid\n LOOP\n RETURN QUERY select j.id from jobs j where repository_id = rid order by j.id desc limit 100;\n END LOOP;\n END IF;\n END\n $$;\n ")4981 -> 0.0009s4982== 20220610092916 MostRecentJobIdsForUserRepositoriesByStatesLw: migrated (0.0009s)4984== 20220621151453 AddColumnRestartedByToTableJobs: migrating ==================4985-- add_column(:jobs, :restarted_by, :integer, {:default=>nil})4986 -> 0.0010s4987-- add_column(:deleted_jobs, :restarted_by, :integer, {:default=>nil})4988 -> 0.0007s4989== 20220621151453 AddColumnRestartedByToTableJobs: migrated (0.0018s) =========4991== 20220722162400 CreateAuditsTable: migrating ================================4992-- create_table(:audits)4993 -> 0.0055s4994== 20220722162400 CreateAuditsTable: migrated (0.0055s) =======================4996== 20220825140522 CreateCustomKeysTable: migrating ============================4997-- create_table(:custom_keys)4998 -> 0.0053s4999== 20220825140522 CreateCustomKeysTable: migrated (0.0054s) ===================5001== 20220905144600 AddScanFailedAtToRepositories: migrating ====================5002-- add_column(:repositories, :scan_failed_at, :timestamp)5003 -> 0.0008s5004== 20220905144600 AddScanFailedAtToRepositories: migrated (0.0009s) ===========5006== 20221214171030 AddPurposeColumnToTokens: migrating =========================5007-- add_column(:tokens, :purpose, :integer, {:limit=>4, :default=>0})5008 -> 0.0010s5009== 20221214171030 AddPurposeColumnToTokens: migrated (0.0010s) ================5011== 20230208161446 AddCloneUrlToRepositories: migrating ========================5012-- add_column(:repositories, :clone_url, :string)5013 -> 0.0007s5014== 20230208161446 AddCloneUrlToRepositories: migrated (0.0008s) ===============5016== 20230505055250 RolifyCreateRoles: migrating ================================5017-- create_table(:roles)5018 -> 0.0073s5019-- create_table(:role_names)5020 -> 0.0047s5021-- create_table(:users_roles, {:id=>false})5022 -> 0.0044s5023-- add_index(:roles, :name)5024 -> 0.0019s5025-- add_index(:role_names, :name)5026 -> 0.0018s5027-- add_index(:roles, [:name, :resource_type, :resource_id])5028 -> 0.0021s5029-- add_index(:users_roles, [:user_id, :role_id])5030 -> 0.0019s5031== 20230505055250 RolifyCreateRoles: migrated (0.0243s) =======================5033== 20230505060110 CreatePolicies: migrating ===================================5034-- create_table(:policy_permissions)5035 -> 0.0057s5036-- create_table(:role_permissions, {:id=>false})5037 -> 0.0045s5038-- add_index(:policy_permissions, :name)5039 -> 0.0020s5040-- add_index(:role_permissions, [:role_name_id, :policy_permission_id])5041 -> 0.0017s5042== 20230505060110 CreatePolicies: migrated (0.0141s) ==========================5044== 20230713115855 CreatePermissionsSync: migrating ============================5045-- create_table(:permissions_syncs)5046 -> 0.0088s5047== 20230713115855 CreatePermissionsSync: migrated (0.0088s) ===================5049== 20231005111642 CreatePermissionsIndex: migrating ===========================5050-- add_index(:permissions_syncs, [:user_id, :resource_type, :resource_id], {:name=>"index_permissions_syncs_on_user_and_resource"})5051 -> 0.0022s5052-- add_index(:role_names, :role_type)5053 -> 0.0018s5054== 20231005111642 CreatePermissionsIndex: migrated (0.0040s) ==================5056== 20240823085523 AddVmsizeToJobs: migrating ==================================5057-- add_column(:jobs, :vm_size, :string)5058 -> 0.0008s5059-- add_column(:deleted_jobs, :vm_size, :string)5060 -> 0.0005s5061== 20240823085523 AddVmsizeToJobs: migrated (0.0013s) =========================5063 sets unique_number on INSERT5064 does not set unique_number on INSERT if 0 is given as a value5065 sets unique_number on UPDATE5066 does not set unique_number on UPDATE if unique_number is 05068set_updated_at trigger5069 jobs5070 sets updated_at on INSERT5071 sets updated_at on UPDATE5072 works also for new columns5073 builds5074 sets updated_at on INSERT5075 sets updated_at on UPDATE5076 works also for new columns5078soft delete repo5079 ensure that soft delete tables have the same fields that the originals5080 soft deleting a repo moves all of the related data to deleted_* tables5082Rake tasks5083 rake db:create5084 migrates the main db5085 rake db:schema:load5086 loads the main schema5088Deprecation Warnings:5090Using `should` from rspec-expectations' old `:should` syntax without explicitly enabling the syntax is deprecated. Use the new `:expect` syntax or explicitly enable `:should` with `config.expect_with(:rspec) { |c| c.syntax = :should }` instead. Called from /home/travis/build/travis-ci/travis-migrations/spec/soft_delete_repo_spec.rb:118:in `block (2 levels) in <top (required)>'.5093If you need more of the backtrace for any of these deprecations to5094identify where to make the necessary changes, you can configure5095`config.raise_errors_for_deprecations!`, and it will turn the5096deprecation warnings into errors, giving you the full backtrace.50981 deprecation warning total5100Finished in 39.58 seconds (files took 0.37417 seconds to load)510119 examples, 0 failures5103The command "bundle exec rspec spec" exited with 0.after_success5108<internal:/home/travis/.rvm/rubies/ruby-3.2.2/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require': cannot load such file -- s3 (LoadError)5109 from <internal:/home/travis/.rvm/rubies/ruby-3.2.2/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'5110 from script/upload_structure.rb:5:in `<main>'5112Done. Your build exited with 0.