AMD64
Ruby: 3.2.2
Git
Scroll to End of Log
0.00s0.14s0.09s0.07sTopworker_info1Worker information2hostname: 7fd632bd-55c6-4281-b66e-b914a9db2e15@1.worker-n2-com-779d777f7b-nfhng.gce-production-13version: 6.2.22 https://github.com/travis-ci/worker/tree/858cb91994a513269f2fe9782c15fc113e9662314instance: travis-job-dec677f5-3b18-434e-b118-a4b8f8452ca3 travis-ci-sardonyx-xenial-1684402799-0876f6f0 (via amqp)5startup: 6.365350403ssystem_info7Build system information8Build language: ruby9Build dist: xenial10Build id: 27045571111Job id: 62167059912Runtime kernel version: 4.15.0-1098-gcp13travis-build version: 22cc7fd414Build image provisioning date and time15Thu May 18 10:07:51 UTC 202316Operating System Details17Distributor ID: Ubuntu18Description: Ubuntu 16.04.7 LTS19Release: 16.0420Codename: xenial21Systemd Version22systemd 22923Cookbooks Version24d19e5ff https://github.com/travis-ci/travis-cookbooks/tree/d19e5ff25git version26git version 2.40.127bash version28GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)29gcc version30gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 2016060931docker version32Client: Docker Engine - Community33 Version: 20.10.734 API version: 1.4135 Go version: go1.13.1536 Git commit: f0df35037 Built: Wed Jun 2 11:56:47 202138 OS/Arch: linux/amd6439 Context: default40 Experimental: true42Server: Docker Engine - Community43 Engine:44 Version: 20.10.745 API version: 1.41 (minimum version 1.12)46 Go version: go1.13.1547 Git commit: b0f5bc348 Built: Wed Jun 2 11:54:58 202149 OS/Arch: linux/amd6450 Experimental: false51 containerd:52 Version: 1.4.653 GitCommit: d71fcd7d8303cbf684402823e425e9dd2e99285d54 runc:55 Version: 1.0.0-rc9556 GitCommit: b9ee9c6314599f1b4a7f497e1f1f856fe433d3b757 docker-init:58 Version: 0.19.059 GitCommit: de40ad060clang version61clang version 7.0.0 (tags/RELEASE_700/final)62jq version63jq-1.664bats version65Bats 0.4.066shellcheck version670.7.268shfmt version69v3.2.170ccache version713.2.472cmake version73cmake version 3.26.374heroku version75heroku/8.1.3 linux-x64 node-v16.19.076imagemagick version77Version: ImageMagick 6.8.9-9 Q16 x86_64 2020-12-04 http://www.imagemagick.org78md5deep version794.480mercurial version81version 5.9.382mysql version83mysql Ver 14.14 Distrib 5.7.33, for Linux (x86_64) using EditLine wrapper84openssl version85OpenSSL 1.0.2g 1 Mar 201686packer version871.7.588postgresql client version89psql (PostgreSQL) 10.17 (Ubuntu 10.17-1.pgdg16.04+1)90ragel version91Ragel State Machine Compiler version 6.8 Feb 201392sudo version931.8.1694gzip version95gzip 1.696zip version97Zip 3.098vim version99VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Oct 13 2020 16:04:38)100iptables version101iptables v1.6.0102curl version103curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3104wget version105GNU Wget 1.17.1 built on linux-gnu.106rsync version107rsync version 3.1.1 protocol version 31108gimme version109v1.5.4110nvm version1110.39.3112perlbrew version113/home/travis/perl5/perlbrew/bin/perlbrew - App::perlbrew/0.95114phpenv version115rbenv 1.2.0116rvm version117rvm 1.29.12 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]118default ruby version119ruby 2.7.6p219 (2022-04-12 revision c9c2245c0a) [x86_64-linux]120default python version121Python 3.7.13122CouchDB version123couchdb 1.6.1124ElasticSearch version1257.16.3126Installed Firefox version127firefox 63.0.1128MongoDB version129MongoDB 4.4.21130PhantomJS version1312.1.1132Pre-installed PostgreSQL versions1339.4.261349.5.251359.6.22136Redis version137redis-server 6.0.6138Pre-installed Go versions1391.18.4140ant version141Apache Ant(TM) version 1.9.6 compiled on July 20 2018142mvn version143Apache Maven 3.8.8 (4c87b05d9aedce574290d1acc98575ed5eb6cd39)144gradle version145Gradle 7.5.1!146lein version147Leiningen 2.10.0 on Java 11.0.15.1 OpenJDK 64-Bit Server VM148Pre-installed Node.js versions149v10.24.1150v12.22.12151v14.21.3152v16.15153v16.16.0154v16.20.0155v18.16.0156v4.9.1157v6.17.1158v8.17.0159phpenv versions160 system161 7.4162* 7.4.30 (set by /home/travis/.phpenv/version)163 hhvm-stable164 hhvm165composer --version166Composer version 2.3.7 2022-06-06 16:43:28167Pre-installed Ruby versions168ruby-2.7.6169ruby-3.0.4170ruby-3.1.21730.00s0.02s0.00s0.01s0.30s0.00s0.00s0.00s0.01s0.00s0.09s0.00s0.92s0.00s0.13s6.03s0.00s3.66s0.00s2.55sdocker_mtu_and_registry_mirrorsresolvconfsnap174Installing 1 Snaps1762024-05-14T12:43:30Z INFO Waiting for automatic snapd restart...177core 16-2.61.2 from Canonical* installed179docker (beta) 24.0.5 from Canonical** installed181Name Version Rev Tracking Publisher Notes182core 16-2.61.2 16928 latest/stable canonical** core183core22 20240408 1380 latest/stable canonical** base184docker 24.0.5 2915 latest/beta canonical** -git.checkout1900.01s0.71s$ git clone --depth=50 https://github.com/travis-ci/travis-migrations.git travis-ci/travis-migrations191Cloning into 'travis-ci/travis-migrations'...192$ cd travis-ci/travis-migrations194From https://github.com/travis-ci/travis-migrations195 * branch refs/pull/290/merge -> FETCH_HEAD196$ git checkout -qf FETCH_HEAD1980.01s199Setting environment variables from repository settings200$ export QUAY_ROBOT_HANDLE=[secure]201$ export QUAY_ROBOT_TOKEN=[secure]202$ export ARTIFACTS_BUCKET=travis-migrations-structure-dumps203$ export ARTIFACTS_SECRET=[secure]204$ export ARTIFACTS_KEY=[secure]rvm207Downloading https://get.rvm.io208Downloading https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer.asc209Verifying /home/travis/.rvm/archives/rvm-installer.asc210gpg: Signature made Tue 21 Feb 2023 11:35:16 PM UTC using RSA key ID 39499BDB211gpg: Good signature from "Piotr Kuczynski <piotr.kuczynski@gmail.com>" [unknown]212gpg: WARNING: This key is not certified with a trusted signature!213gpg: There is no indication that the signature belongs to the owner.214Primary key fingerprint: 7D2B AF1C F37B 13E2 069D 6956 105B D0E7 3949 9BDB215GPG verified '/home/travis/.rvm/archives/rvm-installer'216Downloading https://github.com/rvm/rvm/archive/master.tar.gz217Upgrading the RVM installation in /home/travis/.rvm/218 RVM PATH line found in /home/travis/.mkshrc /home/travis/.profile /home/travis/.zshrc.219 RVM PATH line not found for Bash, rerun this command with '--auto-dotfiles' flag to fix it.220 RVM sourcing line found in /home/travis/.profile /home/travis/.bashrc /home/travis/.zlogin.221Upgrade of RVM in /home/travis/.rvm/ is complete.223<warn>Thanks for installing RVM 🙏</warn>224Please consider donating to our open collective to help us maintain RVM.226👉 Donate: <code>https://opencollective.com/rvm/donate</code>229RVM reloaded!231curl: (22) The requested URL returned error: 404 Not Found232Required ruby-3.2.2 is not installed - installing.233curl: (22) The requested URL returned error: 404 Not Found234Searching for binary rubies, this might take some time.235Found remote file https://rubies.travis-ci.org/ubuntu/16.04/x86_64/ruby-3.2.2.tar.bz2236Checking requirements for ubuntu.237Requirements installation successful.238ruby-3.2.2 - #configure239ruby-3.2.2 - #download240 % Total % Received % Xferd Average Speed Time Time Time Current241 Dload Upload Total Spent Left Speed242 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0243100 27.9M 100 27.9M 0 0 13.6M 0 0:00:02 0:00:02 --:--:-- 26.9M244No checksum for downloaded archive, recording checksum in user configuration.245ruby-3.2.2 - #validate archive246ruby-3.2.2 - #extract247ruby-3.2.2 - #validate binary248ruby-3.2.2 - #setup249ruby-3.2.2 - #gemset created /home/travis/.rvm/gems/ruby-3.2.2@global250ruby-3.2.2 - #importing gemset /home/travis/.rvm/gemsets/global.gems..................................253ruby-3.2.2 - #gemset created /home/travis/.rvm/gems/ruby-3.2.2256Using /home/travis/.rvm/gems/ruby-3.2.2258$ export BUNDLE_GEMFILE=$PWD/Gemfilecache.1259Setting up build cache260$ export CASHER_DIR=${TRAVIS_HOME}/.casher263fetching PR.290/cache--linux-xenial-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855--rvm-3.2.2--gemfile-Gemfile.tgz264fetching PR.290/cache-linux-xenial-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855--rvm-3.2.2--gemfile-Gemfile.tgz265fetching PR.290/cache--rvm-3.2.2--gemfile-Gemfile.tgz266fetching master/cache--linux-xenial-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855--rvm-3.2.2--gemfile-Gemfile.tgz267found cache269creating directory /home/travis/build/travis-ci/travis-migrations/vendor/bundleruby.versions272$ ruby --version273ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]274$ rvm --version275rvm 1.29.12-next (master) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]276$ bundle --version277Bundler version 2.4.10278$ gem --version2793.4.10install.bundler285[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 flag286Bundler 2.4.10 is running, but your lockfile was generated with 2.4.14. Installing Bundler 2.4.14 and restarting using that version.287Fetching gem metadata from https://rubygems.org/.288Fetching bundler 2.4.14289Installing bundler 2.4.14290[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 flag291Using rake 13.0.6292Using concurrent-ruby 1.2.2293Using i18n 1.14.1294Using minitest 5.18.1295Using tzinfo 2.0.6296Using activesupport 7.0.6297Using builder 3.2.4298Using erubi 1.12.0299Using racc 1.7.1300Using nokogiri 1.15.2 (x86_64-linux)301Using rails-dom-testing 2.1.1302Using crass 1.0.6303Using loofah 2.21.3304Using rails-html-sanitizer 1.6.0305Using actionview 7.0.6306Using rack 2.2.7307Using rack-test 2.1.0308Using actionpack 7.0.6309Using nio4r 2.5.9310Using websocket-extensions 0.1.5311Using websocket-driver 0.7.5312Using actioncable 7.0.6313Using globalid 1.1.0314Using activejob 7.0.6315Using activemodel 7.0.6316Using activerecord 7.0.6317Using marcel 1.0.2318Using mini_mime 1.1.2319Using activestorage 7.0.6320Using date 3.3.3321Using timeout 0.4.0322Using net-protocol 0.2.1323Using net-imap 0.3.6324Using net-pop 0.1.2325Using net-smtp 0.3.3326Using mail 2.8.1327Using actionmailbox 7.0.6328Using actionmailer 7.0.6329Using actiontext 7.0.6330Using ansi 1.5.0331Using ast 2.4.2332Using aws-eventstream 1.2.0333Using aws-partitions 1.783.0334Using aws-sigv4 1.6.0335Using jmespath 1.6.2336Using aws-sdk-core 3.176.1337Using aws-sdk-kms 1.68.0338Using aws-sdk-s3 1.127.0339Using bundler 2.4.14340Using colored 1.2341Using diff-lcs 1.5.0342Using docile 1.4.0343Using json 2.6.3344Using language_server-protocol 3.17.0.3345Using method_source 1.0.0346Using parallel 1.23.0347Using parser 3.2.2.3348Using pg 1.5.3349Using thor 1.2.2350Using zeitwerk 2.6.8351Using railties 7.0.6352Using rails 7.0.6353Using rainbow 3.1.1354Using rake-notes 0.2.2355Using regexp_parser 2.8.1356Using rexml 3.2.5357Using routes 0.2.0358Using rspec-support 3.12.1359Using rspec-core 3.12.2360Using rspec-expectations 3.12.3361Using rspec-mocks 3.12.5362Using rspec 3.12.0363Using rubocop-ast 1.29.0364Using ruby-progressbar 1.13.0365Using unicode-display_width 2.4.2366Using rubocop 1.54.1367Using rubocop-capybara 2.18.0368Using rubocop-factory_bot 2.23.1369Using rubocop-performance 1.18.0370Using rubocop-rspec 2.22.0371Using simplecov-html 0.12.3372Using simplecov_json_formatter 0.1.4373Using simplecov 0.22.0374Using terminal-table 3.0.2375Using simplecov-console 0.9.1376Bundle complete! 12 Gemfile dependencies, 85 gems now installed.377Bundled gems are installed into `./vendor/bundle`before_script.1before_script.2383Repo counts384 before aggregation385 after aggregating per repo386 after aggregating all counts387 does not raise if repos are missing388 does not raise if builds are deleted before stages390set_updated_at trigger391Dropped database 'travis_test'392Created database 'travis_test'393== 201207261749 CreatePlans: migrating ========================================394-- create_table(:plans, {:id=>:integer})395 -> 0.0022s396== 201207261749 CreatePlans: migrated (0.0023s) ===============================398== 20101126174706 CreateRepositories: migrating ===============================399-- create_table(:repositories, {:id=>:integer})400 -> 0.0019s401== 20101126174706 CreateRepositories: migrated (0.0020s) ======================403== 20101126174715 CreateBuilds: migrating =====================================404-- create_table(:builds, {:id=>:integer})405 -> 0.0025s406== 20101126174715 CreateBuilds: migrated (0.0026s) ============================408== 20110109130532 DeviseCreateUsers: migrating ================================409-- create_table(:users, {:id=>:integer})410 -> 0.0019s411-- add_index(:users, :login, {:unique=>true})412 -> 0.0008s413== 20110109130532 DeviseCreateUsers: migrated (0.0027s) =======================415== 20110116155100 RepositoriesAddUsername: migrating ==========================416-- change_table(:repositories)417 -> 0.0007s418== 20110116155100 RepositoriesAddUsername: migrated (0.0007s) =================420== 20110130102621 CreateTokens: migrating =====================================421-- create_table(:tokens, {:id=>:integer})422 -> 0.0018s423== 20110130102621 CreateTokens: migrated (0.0018s) ============================425== 20110301071656 AddBuildParentIdAndConfiguration: migrating =================426-- change_table(:builds)427 -> 0.0010s428-- change_column(:builds, :number, :string)429 -> 0.0019s430-- add_index(:builds, :repository_id)431 -> 0.0005s432-- add_index(:builds, :parent_id)433 -> 0.0004s434== 20110301071656 AddBuildParentIdAndConfiguration: migrated (0.0039s) ========436== 20110316174721 RepositoriesDenormalizeLastBuildAttributes: migrating =======437-- change_table(:repositories)438 -> 0.0020s439== 20110316174721 RepositoriesDenormalizeLastBuildAttributes: migrated (0.0021s)441== 20110321075539 RepositoriesAddOwnerNameAndOwnerEmail: migrating ============442-- change_table(:repositories)443 -> 0.0014s444-- remove_column(:repositories, :username)445 -> 0.0004s446== 20110321075539 RepositoriesAddOwnerNameAndOwnerEmail: migrated (0.0019s) ===448== 20110411171936 CreateHistoriesTable: migrating =============================449-- create_table(:histories, {:id=>:integer})450 -> 0.0020s451-- add_index(:histories, [:item, :table, :month, :year])452 -> 0.0007s453== 20110411171936 CreateHistoriesTable: migrated (0.0027s) ====================455== 20110411171937 RenameHistoriesToRailsAdminHistories: migrating =============456-- remove_index(:histories, nil, {:name=>:index_histories_on_item_and_table_and_month_and_year})457 -> 0.0004s458-- rename_table(:histories, :rails_admin_histories)459 -> 0.0033s460-- add_index("rails_admin_histories", ["item", "table", "month", "year"], {:name=>"index_histories_on_item_and_table_and_month_and_year"})461 -> 0.0006s462== 20110411171937 RenameHistoriesToRailsAdminHistories: migrated (0.0056s) ====464== 20110411172518 AddAdminFlagToUser: migrating ===============================465-- change_table(:users)466 -> 0.0023s467== 20110411172518 AddAdminFlagToUser: migrated (0.0024s) ======================469== 20110413101057 BuildsAddRef: migrating =====================================470-- change_table(:builds)471 -> 0.0010s472== 20110413101057 BuildsAddRef: migrated (0.0010s) ============================474== 20110414131100 BuildsAddGithubPayload: migrating ===========================475-- change_table(:builds)476 -> 0.0006s477== 20110414131100 BuildsAddGithubPayload: migrated (0.0006s) ==================479== 20110503150504 AddGithubIdToUsersTable: migrating ==========================480-- add_column(:users, :github_id, :integer)481 -> 0.0006s482-- add_index(:users, :github_id)483 -> 0.0005s484== 20110503150504 AddGithubIdToUsersTable: migrated (0.0011s) =================486== 20110523012243 RepositoriesChangeOwnerEmailType: migrating =================487-- change_column(:repositories, :owner_email, :text)488 -> 0.0006s489== 20110523012243 RepositoriesChangeOwnerEmailType: migrated (0.0006s) ========491== 20110611203537 AddGithubOauthTokenToUser: migrating ========================492-- add_column(:users, :github_oauth_token, :string)493 -> 0.0007s494-- add_index(:users, :github_oauth_token)495 -> 0.0005s496== 20110611203537 AddGithubOauthTokenToUser: migrated (0.0013s) ===============498== 20110613210252 AddCompareUrlToBuild: migrating =============================499-- add_column(:builds, :compare_url, :string)500 -> 0.0006s501== 20110613210252 AddCompareUrlToBuild: migrated (0.0006s) ====================503== 20110615152003 BuildsRemoveJobId: migrating ================================504-- change_table(:builds)505 -> 0.0006s506== 20110615152003 BuildsRemoveJobId: migrated (0.0006s) =======================508== 20110616211744 BuildRemoveLastBuiltAt: migrating ===========================509-- change_table(:repositories)510 -> 0.0006s511== 20110616211744 BuildRemoveLastBuiltAt: migrated (0.0006s) ==================513== 20110617114728 AddMissingIndexes: migrating ================================514-- add_index(:repositories, :last_build_started_at)515 -> 0.0008s516-- add_index(:repositories, [:owner_name, :name])517 -> 0.0005s518-- add_index(:builds, [:repository_id, :parent_id, :started_at])519 -> 0.0005s520== 20110617114728 AddMissingIndexes: migrated (0.0019s) =======================522== 20110619100906 AddActiveToRepositories: migrating ==========================523-- add_column(:repositories, :is_active, :boolean)524 -> 0.0006s525== 20110619100906 AddActiveToRepositories: migrated (0.0006s) =================527== 20110729094426 StoreTokenInBuild: migrating ================================528-- add_column(:builds, :token, :string)529 -> 0.0006s530== 20110729094426 StoreTokenInBuild: migrated (0.0006s) =======================532== 20110801161819 CreateRequestsCommitsAndTasks: migrating ====================533-- change_table(:builds)534 -> 0.0015s535-- create_table(:commits, {:force=>true, :id=>:integer})536 -> 0.0020s537-- create_table(:requests, {:force=>true, :id=>:integer})538 -> 0.0020s539-- create_table(:tasks, {:force=>true, :id=>:integer})540 -> 0.0026s541-- add_index(:commits, :commit)542 -> 0.0005s543-- add_index(:builds, :commit)544 -> 0.0005s545-- add_index(:requests, :commit)546 -> 0.0004s547-- add_index(:tasks, :commit)548 -> 0.0004s549-- execute("UPDATE requests SET commit_id = (SELECT commits.id FROM commits WHERE commits.commit = requests.commit LIMIT 1)")550 -> 0.0006s551-- execute("UPDATE tasks SET commit_id = (SELECT commits.id FROM commits WHERE commits.commit = tasks.commit LIMIT 1)")552 -> 0.0004s553-- execute("DELETE FROM builds WHERE parent_id IS NOT NULL")554 -> 0.0005s555-- execute("UPDATE builds SET request_id = (SELECT requests.id FROM requests WHERE requests.commit = builds.commit LIMIT 1)")556 -> 0.0004s557-- execute("UPDATE builds SET commit_id = (SELECT commits.id FROM commits WHERE commits.commit = builds.commit LIMIT 1)")558 -> 0.0004s559-- execute("CREATE SEQUENCE shared_builds_tasks_seq CACHE 30")560 -> 0.0005s561-- execute("ALTER TABLE builds ALTER COLUMN id TYPE BIGINT")562 -> 0.0024s563-- execute("ALTER TABLE builds ALTER COLUMN id SET DEFAULT nextval('shared_builds_tasks_seq')")564 -> 0.0004s565-- execute("ALTER TABLE tasks ALTER COLUMN id TYPE BIGINT")566 -> 0.0019s567-- execute("ALTER TABLE tasks ALTER COLUMN id SET DEFAULT nextval('shared_builds_tasks_seq')")568 -> 0.0004s569-- select_value("SELECT max(id) FROM commits")570 -> 0.0005s571-- execute("SELECT setval('commits_id_seq', 1)")572 -> 0.0003s573-- select_value("SELECT max(id) FROM requests")574 -> 0.0004s575-- execute("SELECT setval('requests_id_seq', 1)")576 -> 0.0002s577-- select_value("SELECT max(id) FROM tasks")578 -> 0.0005s579-- execute("SELECT setval('tasks_id_seq', 1)")580 -> 0.0002s581-- remove_column(:builds, :parent_id)582 -> 0.0005s583-- remove_column(:builds, :commit)584 -> 0.0004s585-- remove_column(:requests, :commit)586 -> 0.0003s587-- remove_column(:tasks, :commit)588 -> 0.0003s589== 20110801161819 CreateRequestsCommitsAndTasks: migrated (0.0221s) ===========591== 20110805030147 RepositoryRenameIsActiveToActive: migrating =================592-- rename_column(:repositories, :is_active, :active)593 -> 0.0217s594== 20110805030147 RepositoryRenameIsActiveToActive: migrated (0.0218s) ========596== 20110819232908 TasksAddTags: migrating =====================================597-- add_column(:tasks, :tags, :text)598 -> 0.0012s599== 20110819232908 TasksAddTags: migrated (0.0013s) ============================601== 20110911204538 CacheOneNumberForSharedBuildsTasksSequence: migrating =======602-- execute("ALTER SEQUENCE shared_builds_tasks_seq CACHE 1 NO MAXVALUE NO CYCLE")603 -> 0.0006s604== 20110911204538 CacheOneNumberForSharedBuildsTasksSequence: migrated (0.0006s)606== 20111107134436 RenameTasksToJobs: migrating ================================607-- rename_table(:tasks, :jobs)608 -> 0.0045s609-- execute("UPDATE jobs SET type = 'Job::Test' WHERE type = 'Task::Test'")610 -> 0.0007s611-- execute("UPDATE jobs SET type = 'Job::Configure' WHERE type = 'Task::Configure'")612 -> 0.0005s613== 20111107134436 RenameTasksToJobs: migrated (0.0058s) =======================615== 20111107134437 CreateArtifacts: migrating ==================================616-- create_table(:artifacts, {:id=>:integer})617 -> 0.0060s618-- execute("UPDATE artifacts SET job_id = id")619 -> 0.0005s620-- execute("select setval('artifacts_id_seq', (select max(id) + 1 from artifacts));")621 -> 0.0005s622-- add_index(:artifacts, [:type, :job_id])623 -> 0.0007s624== 20111107134437 CreateArtifacts: migrated (0.0079s) =========================626== 20111107134438 CreateWorkers: migrating ====================================627-- create_table(:workers, {:id=>:integer})628 -> 0.0059s629-- add_index(:workers, [:name, :host])630 -> 0.0008s631== 20111107134438 CreateWorkers: migrated (0.0068s) ===========================633== 20111107134439 JobsAddRetries: migrating ===================================634-- change_table(:jobs)635 -> 0.0061s636== 20111107134439 JobsAddRetries: migrated (0.0061s) ==========================638== 20111107134440 RemoveRailsAdmin: migrating =================================639-- drop_table(:rails_admin_histories)640 -> 0.0029s641== 20111107134440 RemoveRailsAdmin: migrated (0.0029s) ========================643== 20111128235043 AddIndexesToJobs: migrating =================================644-- add_index(:jobs, [:queue, :state])645 -> 0.0031s646== 20111128235043 AddIndexesToJobs: migrated (0.0031s) ========================648== 20111129014329 AddRepositoryIdIndexToJobs: migrating =======================649-- add_index(:jobs, :repository_id)650 -> 0.0028s651== 20111129014329 AddRepositoryIdIndexToJobs: migrated (0.0029s) ==============653== 20111129022625 AddOwnerAndTypeIndexToJobs: migrating =======================654-- add_index(:jobs, [:type, :owner_id, :owner_type])655 -> 0.0032s656== 20111129022625 AddOwnerAndTypeIndexToJobs: migrated (0.0033s) ==============658== 20111201113500 WorkersAddPayloadAndLastError: migrating ====================659-- change_table(:workers)660 -> 0.0040s661== 20111201113500 WorkersAddPayloadAndLastError: migrated (0.0041s) ===========663== 20111203002341 RepositoriesAddDescriptionAndLastLanguage: migrating ========664-- change_table(:repositories)665 -> 0.0044s666-- change_table(:builds)667 -> 0.0013s668== 20111203002341 RepositoriesAddDescriptionAndLastLanguage: migrated (0.0058s)670== 20111203221720 BuildsAddArchivedAt: migrating ==============================671-- change_table(:builds)672 -> 0.0030s673== 20111203221720 BuildsAddArchivedAt: migrated (0.0031s) =====================675== 20111207093700 MimicProductionDb: migrating ================================676-- column_exists?(:users, :oauth2_uid, :integer)677 -> 0.0044s678-- column_exists?(:users, :oauth2_token, :string)679 -> 0.0019s680-- column_exists?(:repositories, :user_id, :integer)681 -> 0.0023s682== 20111207093700 MimicProductionDb: migrated (0.0087s) =======================684== 20111212103859 BuildsAddDuration: migrating ================================685-- change_table(:builds)686 -> 0.0031s687== 20111212103859 BuildsAddDuration: migrated (0.0032s) =======================689== 20111212112411 RepositoriesAddLastBuildDuration: migrating =================690-- change_table(:repositories)691 -> 0.0029s692== 20111212112411 RepositoriesAddLastBuildDuration: migrated (0.0030s) ========694== 20111214173922 CreateSslKeys: migrating ====================================695-- create_table(:ssl_keys, {:id=>:integer})696 -> 0.0057s697-- add_index("ssl_keys", ["repository_id"], {:name=>"index_ssl_key_on_repository_id"})698 -> 0.0006s699== 20111214173922 CreateSslKeys: migrated (0.0065s) ===========================701== 20120114125404 AddAllowFailureToJobs: migrating ============================702-- add_column(:jobs, :allow_failure, :boolean, {:default=>false})703 -> 0.0061s704== 20120114125404 AddAllowFailureToJobs: migrated (0.0062s) ===================706== 20120216133223 AddPullRequestFieldsToRequest: migrating ====================707-- add_column(:requests, :event_type, :string)708 -> 0.0017s709-- add_column(:requests, :comments_url, :string)710 -> 0.0011s711-- add_column(:requests, :base_commit, :string)712 -> 0.0011s713-- add_column(:requests, :head_commit, :string)714 -> 0.0010s715== 20120216133223 AddPullRequestFieldsToRequest: migrated (0.0050s) ===========717== 20120222082522 AddGravatarIdToUsers: migrating =============================718-- add_column(:users, :gravatar_id, :string)719 -> 0.0025s720== 20120222082522 AddGravatarIdToUsers: migrated (0.0025s) ====================722== 20120301131209 OrganizationsCreate: migrating ==============================723-- create_table(:organizations, {:id=>:integer})724 -> 0.0057s725== 20120301131209 OrganizationsCreate: migrated (0.0057s) =====================727== 20120304000502 JobsRenameOwnerToSource: migrating ==========================728-- change_table(:jobs)729 -> 0.0101s730== 20120304000502 JobsRenameOwnerToSource: migrated (0.0102s) =================732== 20120304000503 RepositoriesAddOwner: migrating =============================733-- change_table(:repositories)734 -> 0.0043s735== 20120304000503 RepositoriesAddOwner: migrated (0.0044s) ====================737== 20120304000504 BuildsAddOwner: migrating ===================================738-- change_table(:builds)739 -> 0.0037s740== 20120304000504 BuildsAddOwner: migrated (0.0038s) ==========================742== 20120304000505 JobsAddOwner: migrating =====================================743-- change_table(:jobs)744 -> 0.0040s745== 20120304000505 JobsAddOwner: migrated (0.0041s) ============================747== 20120304000506 RequestsAddOwner: migrating =================================748-- change_table(:requests)749 -> 0.0037s750== 20120304000506 RequestsAddOwner: migrated (0.0038s) ========================752== 20120311234933 AddLocaleToUser: migrating ==================================753-- add_column(:users, :locale, :string)754 -> 0.0020s755== 20120311234933 AddLocaleToUser: migrated (0.0021s) =========================757== 20120316123726 CreateMemberships: migrating ================================758-- create_table(:memberships, {:id=>:integer})759 -> 0.0024s760== 20120316123726 CreateMemberships: migrated (0.0024s) =======================762== 20120319170001 RepositoriesAddPrivate: migrating ===========================763-- change_table(:repositories)764 -> 0.0039s765== 20120319170001 RepositoriesAddPrivate: migrated (0.0039s) ==================767== 20120324104051 CreateUrls: migrating =======================================768-- create_table(:urls, {:id=>:integer})769 -> 0.0029s770== 20120324104051 CreateUrls: migrated (0.0029s) ==============================772== 20120505165100 CopyStatusToResult: migrating ===============================773-- add_column(:builds, :result, :integer)774 -> 0.0008s775-- add_column(:jobs, :result, :integer)776 -> 0.0005s777-- add_column(:repositories, :last_build_result, :integer)778 -> 0.0005s779Executing: UPDATE builds SET result = status;780Executing: UPDATE jobs SET result = status;781Executing: UPDATE repositories SET last_build_result = last_build_status;782== 20120505165100 CopyStatusToResult: migrated (0.0034s) ======================784== 20120511171900 RequestsAddIndexOnHeadCommit: migrating =====================785-- add_index(:requests, :head_commit)786 -> 0.0010s787== 20120511171900 RequestsAddIndexOnHeadCommit: migrated (0.0010s) ============789== 20120521174400 CreatePermissions: migrating ================================790-- create_table(:permissions, {:id=>:integer})791 -> 0.0082s792-- add_index(:permissions, :user_id)793 -> 0.0027s794-- add_index(:permissions, :repository_id)795 -> 0.0018s796== 20120521174400 CreatePermissions: migrated (0.0133s) =======================798== 20120527235800 BuildsAddPreviousResult: migrating ==========================799-- change_table(:builds)800 -> 0.0033s801== 20120527235800 BuildsAddPreviousResult: migrated (0.0033s) =================803== 20120702111126 CreateSubscriptions: migrating ==============================804-- create_table(:subscriptions, {:id=>:integer})805 -> 0.0078s806== 20120702111126 CreateSubscriptions: migrated (0.0079s) =====================808== 20120703114226 AddBillingEmailCreditCardDataToSubscriptions: migrating =====809-- change_table(:subscriptions)810 -> 0.0068s811== 20120703114226 AddBillingEmailCreditCardDataToSubscriptions: migrated (0.0068s)813== 20120713140816 AddSyncInfoToUser: migrating ================================814-- add_column(:users, :in_sync, :boolean)815 -> 0.0035s816-- add_column(:users, :synced_at, :timestamp)817 -> 0.0011s818== 20120713140816 AddSyncInfoToUser: migrated (0.0047s) =======================820== 20120713153215 RenameInSyncToIsSyncing: migrating ==========================821-- rename_column(:users, :in_sync, :is_syncing)822 -> 0.0077s823== 20120713153215 RenameInSyncToIsSyncing: migrated (0.0077s) =================825== 20120725005300 AddQueueToWorkers: migrating ================================826-- add_column(:workers, :queue, :string)827 -> 0.0033s828== 20120725005300 AddQueueToWorkers: migrated (0.0033s) =======================830== 20120727151900 AddJobsIndexOnStateOwnerTypeOwnerId: migrating ==============831-- add_index(:jobs, ["state", "owner_id", "owner_type"], {:name=>"index_jobs_on_state_owner_type_owner_id"})832 -> 0.0035s833== 20120727151900 AddJobsIndexOnStateOwnerTypeOwnerId: migrated (0.0036s) =====835== 20120731005301 AddQueuedAtToJobs: migrating ================================836-- add_column(:jobs, :queued_at, :timestamp, {:precision=>nil})837 -> 0.0029s838== 20120731005301 AddQueuedAtToJobs: migrated (0.0030s) =======================840== 20120731074000 AddAmountToPlans: migrating =================================841-- change_table(:plans)842 -> 0.0031s843== 20120731074000 AddAmountToPlans: migrated (0.0032s) ========================845== 20120802001001 AddPushAndPullToPermissions: migrating ======================846-- add_column(:permissions, :push, :boolean, {:default=>false})847 -> 0.0067s848-- add_column(:permissions, :pull, :boolean, {:default=>false})849 -> 0.0027s850-- change_column_default(:permissions, :admin, false)851 -> 0.0038s852== 20120802001001 AddPushAndPullToPermissions: migrated (0.0134s) =============854== 20120803164000 CreateInvoices: migrating ===================================855-- create_table(:invoices, {:id=>:integer})856 -> 0.0060s857== 20120803164000 CreateInvoices: migrated (0.0061s) ==========================859== 20120803182300 AddInvoiceIdToInvoices: migrating ===========================860-- change_table(:invoices)861 -> 0.0034s862== 20120803182300 AddInvoiceIdToInvoices: migrated (0.0035s) ==================864== 20120804122700 AddStripeInvoiceIdToInvoices: migrating =====================865-- change_table(:invoices)866 -> 0.0033s867-- add_index(:invoices, :stripe_id)868 -> 0.0013s869== 20120804122700 AddStripeInvoiceIdToInvoices: migrated (0.0047s) ============871== 20120806120400 AddPlanToSubscriptions: migrating ===========================872-- change_table(:subscriptions)873 -> 0.0033s874== 20120806120400 AddPlanToSubscriptions: migrated (0.0034s) ==================876== 20120820164000 RenamePlanOnSubscriptions: migrating ========================877-- change_table(:subscriptions)878 -> 0.0020s879== 20120820164000 RenamePlanOnSubscriptions: migrated (0.0020s) ===============881== 20120905093300 CreateStripeEvents: migrating ===============================882-- create_table(:stripe_events, {:id=>:integer})883 -> 0.0053s884-- add_index(:stripe_events, :event_type)885 -> 0.0017s886-- add_index(:stripe_events, :date)887 -> 0.0015s888== 20120905093300 CreateStripeEvents: migrated (0.0086s) ======================890== 20120905171300 AddEventIdToStripeEvents: migrating =========================891-- change_table(:stripe_events)892 -> 0.0025s893-- add_index(:stripe_events, :event_id)894 -> 0.0015s895== 20120905171300 AddEventIdToStripeEvents: migrated (0.0041s) ================897== 20120911160000 AddBuildsIndexOnRepositoryIdAndState: migrating =============898-- remove_index("builds", nil, {:column=>"repository_id", :name=>"index_builds_on_repository_id"})899 -> 0.0051s900-- add_index("builds", ["repository_id", "state"])901 -> 0.0018s902== 20120911160000 AddBuildsIndexOnRepositoryIdAndState: migrated (0.0102s) ====904== 20120911230000 ArtifactsAddAggregatedAt: migrating =========================905-- add_column(:artifacts, :aggregated_at, :timestamp, {:precision=>nil})906 -> 0.0027s907== 20120911230000 ArtifactsAddAggregatedAt: migrated (0.0028s) ================909== 20120911230001 AddArtifactParts: migrating =================================910-- create_table(:artifact_parts, {:id=>:integer})911 -> 0.0076s912-- add_index(:artifact_parts, [:artifact_id, :number])913 -> 0.0016s914== 20120911230001 AddArtifactParts: migrated (0.0094s) ========================916== 20120913143800 AddSubscriptionsCoupon: migrating ===========================917-- change_table(:subscriptions)918 -> 0.0022s919== 20120913143800 AddSubscriptionsCoupon: migrated (0.0023s) ==================921== 20120915012000 BuildsAddIndexOnFinishedAt: migrating =======================922-- add_index("builds", "finished_at")923 -> 0.0025s924== 20120915012000 BuildsAddIndexOnFinishedAt: migrated (0.0029s) ==============926== 20120915012001 CommitsAddIndexOnBranch: migrating ==========================927-- add_index("commits", "branch")928 -> 0.0018s929== 20120915012001 CommitsAddIndexOnBranch: migrated (0.0019s) =================931== 20120915150000 JobsAddIndexOnCreatedAt: migrating ==========================932-- add_index("jobs", "created_at")933 -> 0.0008s934== 20120915150000 JobsAddIndexOnCreatedAt: migrated (0.0008s) =================936== 20121015002500 CreateEvents: migrating =====================================937-- create_table(:events, {:id=>:integer})938 -> 0.0020s939== 20121015002500 CreateEvents: migrated (0.0020s) ============================941== 20121015002501 RequestsAddResultAndMessage: migrating ======================942-- add_column(:requests, :result, :string)943 -> 0.0008s944-- add_column(:requests, :message, :string)945 -> 0.0004s946== 20121015002501 RequestsAddResultAndMessage: migrated (0.0013s) =============948== 20121017040100 CreateBroadcasts: migrating =================================949-- create_table(:broadcasts, {:id=>:integer})950 -> 0.0021s951== 20121017040100 CreateBroadcasts: migrated (0.0021s) ========================953== 20121017040200 EventsChangeDataToText: migrating ===========================954-- change_column(:events, :data, :text)955 -> 0.0007s956== 20121017040200 EventsChangeDataToText: migrated (0.0007s) ==================958== 20121018201301 AddEventTypeToBuilds: migrating =============================959-- add_column(:builds, :event_type, :string)960 -> 0.0006s961== 20121018201301 AddEventTypeToBuilds: migrated (0.0007s) ====================963== 20121018203728 UpdateEventTypeOnBuilds: migrating ==========================964-- execute(" UPDATE builds\n SET event_type = requests.event_type\n FROM requests\n WHERE builds.request_id = requests.id\n")965 -> 0.0010s966== 20121018203728 UpdateEventTypeOnBuilds: migrated (0.0010s) =================968== 20121018210156 AddIndexOnRepositoryIdAndEventTypeToBuilds: migrating =======969-- add_index(:builds, [:repository_id, :event_type])970 -> 0.0008s971== 20121018210156 AddIndexOnRepositoryIdAndEventTypeToBuilds: migrated (0.0009s)973== 20121125122700 RepositoriesAddLastBuildState: migrating ====================974-- add_column(:repositories, :last_build_state, :string)975 -> 0.0007s976== 20121125122700 RepositoriesAddLastBuildState: migrated (0.0007s) ===========978== 20121125122701 BuildsAddPreviousState: migrating ===========================979-- add_column(:builds, :previous_state, :string)980 -> 0.0006s981== 20121125122701 BuildsAddPreviousState: migrated (0.0006s) ==================983== 20121222125200 ArtifactPartsAddFinal: migrating ============================984-- add_column(:artifact_parts, :final, :boolean)985 -> 0.0024s986-- add_column(:artifact_parts, :created_at, :timestamp)987 -> 0.0015s988== 20121222125200 ArtifactPartsAddFinal: migrated (0.0045s) ===================990== 20121222125300 ArtifactPartsChangeContentToText: migrating =================991-- change_column(:artifact_parts, :content, :text)992 -> 0.0024s993== 20121222125300 ArtifactPartsChangeContentToText: migrated (0.0027s) ========995== 20121222140200 ArtifactPartsAddIndexOnArtifactId: migrating ================996-- add_index(:artifact_parts, :artifact_id)997 -> 0.0027s998== 20121222140200 ArtifactPartsAddIndexOnArtifactId: migrated (0.0030s) =======1000== 20121223162300 ArtifactPartsRemoveIndexOnArtifactId: migrating =============1001-- remove_index(:artifact_parts, :artifact_id, {:name=>"index_artifact_parts_on_artifact_id"})1002 -> 0.0047s1003== 20121223162300 ArtifactPartsRemoveIndexOnArtifactId: migrated (0.0072s) ====1005== 20130107165057 AddGithubScopesToUser: migrating ============================1006-- add_column(:users, :github_scopes, :text)1007 -> 0.0023s1008== 20130107165057 AddGithubScopesToUser: migrated (0.0029s) ===================1010== 20130115125836 AddIndexOnLastSeenAtToWorkers: migrating ====================1011-- add_index(:workers, :last_seen_at)1012 -> 0.0029s1013== 20130115125836 AddIndexOnLastSeenAtToWorkers: migrated (0.0036s) ===========1015== 20130115145728 CacheFullNameInWorkers: migrating ===========================1016-- add_column(:workers, :full_name, :string)1017 -> 0.0019s1018-- add_index(:workers, :full_name)1019 -> 0.0013s1020== 20130115145728 CacheFullNameInWorkers: migrated (0.0033s) ==================1022== 20130125002600 ArtifactsAddArchivedAt: migrating ===========================1023-- add_column(:artifacts, :archived_at, :timestamp, {:precision=>nil})1024 -> 0.0019s1025-- add_index(:artifacts, :archived_at)1026 -> 0.0014s1027== 20130125002600 ArtifactsAddArchivedAt: migrated (0.0034s) ==================1029== 20130125171100 ArtifactsAddArchivingAndVerified: migrating =================1030-- add_column(:artifacts, :archiving, :boolean)1031 -> 0.0018s1032-- add_column(:artifacts, :archive_verified, :boolean)1033 -> 0.0010s1034-- add_index(:artifacts, :archiving)1035 -> 0.0013s1036-- add_index(:artifacts, :archive_verified)1037 -> 0.0012s1038== 20130125171100 ArtifactsAddArchivingAndVerified: migrated (0.0057s) ========1040== 20130129142703 CreateEmails: migrating =====================================1041-- create_table(:emails, {:id=>:integer})1042 -> 0.0050s1043-- add_index(:emails, :user_id)1044 -> 0.0016s1045-- add_index(:emails, :email)1046 -> 0.0011s1047== 20130129142703 CreateEmails: migrated (0.0084s) ============================1049== 20130208135800 RenameArtifacts: migrating ==================================1050-- rename_table(:artifacts, :artifacts_backup)1051 -> 0.0180s1052-- rename_table(:artifact_parts, :artifact_parts_backup)1053 -> 0.0096s1054== 20130208135800 RenameArtifacts: migrated (0.0288s) =========================1056== 20130208135801 DropArtifacts: migrating ====================================1057-- drop_table(:artifacts_backup)1058 -> 0.0016s1059-- drop_table(:artifact_parts_backup)1060 -> 0.0008s1061== 20130208135801 DropArtifacts: migrated (0.0025s) ===========================1063== 20130306154311 CreatePgcryptoExtension: migrating ==========================1064-- execute("create extension if not exists pgcrypto")1065 -> 0.0042s1066== 20130306154311 CreatePgcryptoExtension: migrated (0.0042s) =================1068== 20130311211101 AddPullRequestTitleToBuilds: migrating ======================1069-- add_column(:builds, :pull_request_title, :text)1070 -> 0.0008s1071== 20130311211101 AddPullRequestTitleToBuilds: migrated (0.0009s) =============1073== 20130327100801 AddPullRequestNumberToBuilds: migrating =====================1074-- add_column(:builds, :pull_request_number, :integer)1075 -> 0.0007s1076== 20130327100801 AddPullRequestNumberToBuilds: migrated (0.0007s) ============1078== 20130418101437 AddIndexToBuildsRequestId: migrating ========================1079-- execute("CREATE INDEX CONCURRENTLY index_builds_on_request_id ON builds(request_id)")1080 -> 0.0007s1081== 20130418101437 AddIndexToBuildsRequestId: migrated (0.0007s) ===============1083== 20130418103306 AddIndexToJobsOnOwnerIdOwnerTypeAndState: migrating =========1084-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_id_and_owner_type_and_state ON jobs(owner_id, owner_type, state)")1085 -> 0.0007s1086== 20130418103306 AddIndexToJobsOnOwnerIdOwnerTypeAndState: migrated (0.0007s)1088== 20130505023259 AddMoreIndexesToBuilds: migrating ===========================1089-- 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")1090 -> 0.0008s1091== 20130505023259 AddMoreIndexesToBuilds: migrated (0.0008s) ==================1093== 20130521115725 AddIndexOnBuildState: migrating =============================1094-- execute(" CREATE INDEX CONCURRENTLY index_builds_on_state\n ON builds(state);\n")1095 -> 0.0007s1096== 20130521115725 AddIndexOnBuildState: migrated (0.0007s) ====================1098== 20130521133050 UpdateFinishedJobs: migrating ===============================1099-- execute("UPDATE jobs SET state = 'passed' WHERE state = 'finished' AND result = 0 AND type = 'Job::Test'")1100 -> 0.0007s1101-- execute("UPDATE jobs SET state = 'failed' WHERE state = 'finished' AND result = 1 AND type = 'Job::Test'")1102 -> 0.0003s1103-- execute("UPDATE jobs SET state = 'errored' WHERE state = 'finished' AND result IS NULL AND type = 'Job::Test'")1104 -> 0.0003s1105-- execute("SELECT COUNT(*) FROM jobs WHERE state = 'finished' AND type = 'Job::Test'")1106 -> 0.0003s1107== 20130521133050 UpdateFinishedJobs: migrated (0.0018s) ======================1109== 20130521134224 UpdateFinishedBuilds: migrating =============================1110-- execute("UPDATE builds SET state = 'passed' WHERE state = 'finished' AND result = 0")1111 -> 0.0007s1112-- execute("UPDATE builds SET state = 'failed' WHERE state = 'finished' AND result = 1")1113 -> 0.0003s1114-- execute("UPDATE builds SET state = 'errored' WHERE state = 'finished' AND result IS NULL")1115 -> 0.0003s1116-- execute("SELECT COUNT(*) FROM builds WHERE state = 'finished'")1117 -> 0.0003s1118== 20130521134224 UpdateFinishedBuilds: migrated (0.0017s) ====================1120== 20130521134800 RemoveUnusedBuildColumns: migrating =========================1121-- remove_column(:builds, :result)1122 -> 0.0006s1123-- remove_column(:builds, :status)1124 -> 0.0003s1125-- remove_column(:builds, :previous_result)1126 -> 0.0004s1127-- remove_column(:builds, :agent)1128 -> 0.0004s1129-- remove_column(:builds, :language)1130 -> 0.0003s1131-- remove_column(:builds, :archived_at)1132 -> 0.0003s1133== 20130521134800 RemoveUnusedBuildColumns: migrated (0.0025s) ================1135== 20130521141357 RemoveUnusedJobColumns: migrating ===========================1136-- remove_column(:jobs, :status)1137 -> 0.0005s1138-- remove_column(:jobs, :job_id)1139 -> 0.0004s1140-- remove_column(:jobs, :retries)1141 -> 0.0005s1142== 20130521141357 RemoveUnusedJobColumns: migrated (0.0015s) ==================1144== 20130618084205 AddCoupons: migrating =======================================1145-- create_table(:coupons, {:id=>:integer})1146 -> 0.0021s1147== 20130618084205 AddCoupons: migrated (0.0059s) ==============================1149== 20130629122945 AddGithubIdToUsers: migrating ===============================1150-- add_column(:repositories, :github_id, :integer)1151 -> 0.0007s1152-- add_index(:repositories, :github_id)1153 -> 0.0006s1154== 20130629122945 AddGithubIdToUsers: migrated (0.0014s) ======================1156== 20130629133531 AddDefaultBranchToRepositories: migrating ===================1157-- add_column(:repositories, :default_branch, :string)1158 -> 0.0006s1159== 20130629133531 AddDefaultBranchToRepositories: migrated (0.0007s) ==========1161== 20130629174449 AddGithubLanguageToRepositories: migrating ==================1162-- add_column(:repositories, :github_language, :string)1163 -> 0.0006s1164== 20130629174449 AddGithubLanguageToRepositories: migrated (0.0006s) =========1166== 20130701175200 AddContactIdToSubscriptions: migrating ======================1167-- change_table(:subscriptions)1168 -> 0.0007s1169== 20130701175200 AddContactIdToSubscriptions: migrated (0.0007s) =============1171== 20130702123456 RemoveUnusedRepositoryColumns: migrating ====================1172-- remove_column(:repositories, :last_duration)1173 -> 0.0020s1174-- remove_column(:repositories, :last_build_status)1175 -> 0.0008s1176-- remove_column(:repositories, :last_build_result)1177 -> 0.0007s1178-- remove_column(:repositories, :last_build_language)1179 -> 0.0007s1180== 20130702123456 RemoveUnusedRepositoryColumns: migrated (0.0051s) ===========1182== 20130702144325 AddUniqueIndexOnUsersGithubIdAndRemoveUniqueIndexOnUsersLogin: migrating1183-- execute("DROP INDEX index_users_on_login")1184 -> 0.0009s1185-- execute("CREATE INDEX CONCURRENTLY index_users_on_login ON users(login)")1186 -> 0.0009s1187-- execute("DROP INDEX index_users_on_github_id")1188 -> 0.0009s1189-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_github_id ON users(github_id)")1190 -> 0.0011s1191== 20130702144325 AddUniqueIndexOnUsersGithubIdAndRemoveUniqueIndexOnUsersLogin: migrated (0.0044s)1193== 20130705123456 AddExtraColumnsToOrganizations: migrating ===================1194-- add_column(:organizations, :avatar_url, :string)1195 -> 0.0020s1196-- add_column(:organizations, :location, :string)1197 -> 0.0014s1198-- add_column(:organizations, :email, :string)1199 -> 0.0013s1200-- add_column(:organizations, :company, :string)1201 -> 0.0012s1202-- add_column(:organizations, :homepage, :string)1203 -> 0.0012s1204== 20130705123456 AddExtraColumnsToOrganizations: migrated (0.0085s) ==========1206== 20130707164854 AddIndexOnGithubIdToOrganizations: migrating ================1207-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organizations_on_github_id ON organizations(github_id)")1208 -> 0.0010s1209== 20130707164854 AddIndexOnGithubIdToOrganizations: migrated (0.0015s) =======1211== 20130709185200 CreateAnnotations: migrating ================================1212-- create_table(:annotations, {:id=>:integer})1213 -> 0.0058s1214== 20130709185200 CreateAnnotations: migrated (0.0062s) =======================1216== 20130709233500 CreateAnnotationProviders: migrating ========================1217-- create_table(:annotation_providers, {:id=>:integer})1218 -> 0.0079s1219== 20130709233500 CreateAnnotationProviders: migrated (0.0083s) ===============1221== 20130710000745 AddAnnotationProviderIdToAnnotations: migrating =============1222-- add_column(:annotations, :annotation_provider_id, :integer, {:null=>false})1223 -> 0.0027s1224== 20130710000745 AddAnnotationProviderIdToAnnotations: migrated (0.0029s) ====1226== 20130726101124 AddCanceledAtToJobsAndBuilds: migrating =====================1227-- add_column(:builds, :canceled_at, :timestamp, {:precision=>nil})1228 -> 0.0023s1229-- add_column(:jobs, :canceled_at, :timestamp, {:precision=>nil})1230 -> 0.0013s1231== 20130726101124 AddCanceledAtToJobsAndBuilds: migrated (0.0041s) ============1233== 20130901183019 AddIndexOnRepositoryGithubId: migrating =====================1234-- execute("DROP INDEX index_repositories_on_github_id")1235 -> 0.0010s1236-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_github_id ON repositories(github_id)")1237 -> 0.0010s1238== 20130901183019 AddIndexOnRepositoryGithubId: migrated (0.0024s) ============1240== 20130909203321 AddCachedMatrixIdsToBuilds: migrating =======================1241-- execute("ALTER TABLE builds ADD COLUMN cached_matrix_ids integer[]")1242 -> 0.0016s1243== 20130909203321 AddCachedMatrixIdsToBuilds: migrated (0.0018s) ==============1245== 20130910184823 CreateIndexOnBuildsIdDescAndRepositoryIdAndEventType: migrating1246-- execute("CREATE INDEX CONCURRENTLY index_builds_on_id_repository_id_and_event_type_desc ON builds (id DESC, repository_id, event_type);")1247 -> 0.0012s1248== 20130910184823 CreateIndexOnBuildsIdDescAndRepositoryIdAndEventType: migrated (0.0014s)1250== 20130916101056 AddUniqueIndexOnRepositoryGithubId: migrating ===============1251-- execute("DROP INDEX index_repositories_on_github_id")1252 -> 0.0008s1253-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_repositories_on_github_id ON repositories(github_id)")1254 -> 0.0049s1255== 20130916101056 AddUniqueIndexOnRepositoryGithubId: migrated (0.0060s) ======1257== 20130920135744 AddSettingsToRepositories: migrating ========================1258-- add_column(:repositories, :settings, :json)1259 -> 0.0006s1260== 20130920135744 AddSettingsToRepositories: migrated (0.0007s) ===============1262== 20131104101056 RemoveWorkersTableAndIndexes: migrating =====================1263-- drop_table(:workers)1264 -> 0.0011s1265== 20131104101056 RemoveWorkersTableAndIndexes: migrated (0.0011s) ============1267== 20131109101056 RemoveEventsTable: migrating ================================1268-- drop_table(:events)1269 -> 0.0009s1270== 20131109101056 RemoveEventsTable: migrated (0.0010s) =======================1272== 20140120225125 RemoveAnnotationImageInfo: migrating ========================1273-- remove_column(:annotations, :image_url)1274 -> 0.0006s1275-- remove_column(:annotations, :image_alt)1276 -> 0.0003s1277== 20140120225125 RemoveAnnotationImageInfo: migrated (0.0010s) ===============1279== 20140121003026 AddStatusToAnnotations: migrating ===========================1280-- add_column(:annotations, :status, :string)1281 -> 0.0006s1282== 20140121003026 AddStatusToAnnotations: migrated (0.0006s) ==================1284== 20140204220926 AddIndicesToRequests: migrating =============================1285-- execute("CREATE INDEX CONCURRENTLY index_requests_on_repository_id ON requests(repository_id)")1286 -> 0.0006s1287-- execute("CREATE INDEX CONCURRENTLY index_requests_on_commit_id ON requests(commit_id)")1288 -> 0.0006s1289== 20140204220926 AddIndicesToRequests: migrated (0.0012s) ====================1291== 20140210003014 AddIndicesToMemberships: migrating ==========================1292-- execute("CREATE INDEX CONCURRENTLY index_memberships_on_user_id ON memberships(user_id)")1293 -> 0.0005s1294== 20140210003014 AddIndicesToMemberships: migrated (0.0006s) =================1296== 20140210012509 RemoveUnusedIndices: migrating ==============================1297-- execute("DROP INDEX CONCURRENTLY index_commits_on_commit")1298 -> 0.0005s1299-- execute("DROP INDEX CONCURRENTLY index_builds_on_state")1300 -> 0.0006s1301-- execute("DROP INDEX CONCURRENTLY index_commits_on_branch")1302 -> 0.0005s1303-- execute("DROP INDEX CONCURRENTLY index_users_on_github_oauth_token")1304 -> 0.0005s1305-- execute("DROP INDEX CONCURRENTLY index_builds_on_finished_at")1306 -> 0.0005s1307-- execute("DROP INDEX CONCURRENTLY index_jobs_on_queue_and_state")1308 -> 0.0005s1309-- execute("DROP INDEX CONCURRENTLY index_jobs_on_created_at")1310 -> 0.0005s1311== 20140210012509 RemoveUnusedIndices: migrated (0.0038s) =====================1313== 20140612131826 AddRemovedInfoToLogs: migrating =============================1314== 20140612131826 AddRemovedInfoToLogs: migrated (0.0009s) ====================1316== 20140827121945 AddEducationFieldToUser: migrating ==========================1317-- add_column(:users, :education, :boolean)1318 -> 0.0007s1319== 20140827121945 AddEducationFieldToUser: migrated (0.0007s) =================1321== 20150121135400 JobsAddReceivedAt: migrating ================================1322-- add_column(:jobs, :received_at, :timestamp, {:precision=>nil})1323 -> 0.0006s1324== 20150121135400 JobsAddReceivedAt: migrated (0.0006s) =======================1326== 20150121135401 BuildsAddReceivedAt: migrating ==============================1327-- add_column(:builds, :received_at, :timestamp, {:precision=>nil})1328 -> 0.0006s1329== 20150121135401 BuildsAddReceivedAt: migrated (0.0006s) =====================1331== 20150204144312 AddIndexOnRepositoryIdToCommits: migrating ==================1332-- execute("DROP INDEX IF EXISTS index_commits_on_repository_id")1333 -> 0.0002s1334-- execute("CREATE INDEX CONCURRENTLY index_commits_on_repository_id ON commits(repository_id)")1335 -> 0.0006s1336== 20150204144312 AddIndexOnRepositoryIdToCommits: migrated (0.0008s) =========1338== 20150210170900 IndexRequestsOnCreatedAt: migrating =========================1339-- execute("DROP INDEX IF EXISTS index_requests_on_created_at")1340 -> 0.0002s1341-- execute("CREATE INDEX CONCURRENTLY index_requests_on_created_at ON requests(created_at)")1342 -> 0.0006s1343== 20150210170900 IndexRequestsOnCreatedAt: migrated (0.0009s) ================1345== 20150223125700 CreateBranches: migrating ===================================1346-- create_table(:branches, {:id=>:integer})1347 -> 0.0204s1348-- add_index(:branches, [:repository_id, :name], {:unique=>true})1349 -> 0.0010s1350== 20150223125700 CreateBranches: migrated (0.0215s) ==========================1352== 20150311020321 AddNextBuildNumberToRepository: migrating ===================1353-- add_column(:repositories, :next_build_number, :integer)1354 -> 0.0032s1355== 20150311020321 AddNextBuildNumberToRepository: migrated (0.0032s) ==========1357== 20150316020321 AddActiveIndexToRepository: migrating =======================1358-- execute("DROP INDEX IF EXISTS index_repositories_on_active")1359 -> 0.0044s1360-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_active ON repositories(active)")1361 -> 0.0026s1362== 20150316020321 AddActiveIndexToRepository: migrated (0.0071s) ==============1364== 20150316080321 AddOwnerTypeAndOwnerIdIndexesToBuilds: migrating ============1365-- execute("DROP INDEX IF EXISTS index_builds_on_owner_type")1366 -> 0.0020s1367-- execute("DROP INDEX IF EXISTS index_builds_on_owner_id")1368 -> 0.0021s1369-- execute("CREATE INDEX CONCURRENTLY index_builds_on_owner_type ON builds(owner_type)")1370 -> 0.0009s1371-- execute("CREATE INDEX CONCURRENTLY index_builds_on_owner_id ON builds(owner_id)")1372 -> 0.0007s1373== 20150316080321 AddOwnerTypeAndOwnerIdIndexesToBuilds: migrated (0.0059s) ===1375== 20150316100321 AddOwnerTypeAndOwnerIdIndexesToRepositories: migrating ======1376-- execute("DROP INDEX IF EXISTS index_repositories_on_owner_type")1377 -> 0.0006s1378-- execute("DROP INDEX IF EXISTS index_repositories_on_owner_id")1379 -> 0.0047s1380-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_type ON repositories(owner_type)")1381 -> 0.0014s1382-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_id ON repositories(owner_id)")1383 -> 0.0009s1384== 20150316100321 AddOwnerTypeAndOwnerIdIndexesToRepositories: migrated (0.0077s)1386== 20150317004600 AddSlugIndexToRepositories: migrating =======================1387-- execute("CREATE EXTENSION IF NOT EXISTS pg_trgm")1388 -> 0.0068s1389-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_slug ON repositories USING gin((owner_name || '/' || name) gin_trgm_ops)")1390 -> 0.0018s1391== 20150317004600 AddSlugIndexToRepositories: migrated (0.0086s) ==============1393== 20150317020321 AddTokenIndexToTokens: migrating ============================1394-- execute("DROP INDEX IF EXISTS index_tokens_on_token")1395 -> 0.0008s1396-- execute("CREATE INDEX CONCURRENTLY index_tokens_on_token ON tokens(token)")1397 -> 0.0010s1398== 20150317020321 AddTokenIndexToTokens: migrated (0.0018s) ===================1400== 20150317080321 AddLoginIndexToOrganizations: migrating =====================1401-- execute("DROP INDEX IF EXISTS index_organizations_on_login")1402 -> 0.0045s1403-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_login ON organizations(login)")1404 -> 0.0022s1405== 20150317080321 AddLoginIndexToOrganizations: migrated (0.0068s) ============1407== 20150414001337 AddLowerCaseIndices: migrating ==============================1408-- execute("DROP INDEX IF EXISTS index_organizations_on_lower_login")1409 -> 0.0014s1410-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_lower_login ON organizations USING btree(lower(login))")1411 -> 0.0008s1412-- execute("DROP INDEX IF EXISTS index_users_on_lower_login")1413 -> 0.0007s1414-- execute("CREATE INDEX CONCURRENTLY index_users_on_lower_login ON users USING btree(lower(login))")1415 -> 0.0020s1416-- execute("DROP INDEX IF EXISTS index_repositories_on_lower_name")1417 -> 0.0003s1418-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_name ON repositories USING btree(lower(name))")1419 -> 0.0007s1420-- execute("DROP INDEX IF EXISTS index_repositories_on_lower_owner_name")1421 -> 0.0002s1422-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_owner_name ON repositories USING btree(lower(owner_name))")1423 -> 0.0008s1424== 20150414001337 AddLowerCaseIndices: migrated (0.0071s) =====================1426== 20150528101600 RepositoriesAddIndexOwnerName: migrating ====================1427-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_name ON repositories(owner_name)")1428 -> 0.0006s1429== 20150528101600 RepositoriesAddIndexOwnerName: migrated (0.0006s) ===========1431== 20150528101601 RepositoriesAddIndexName: migrating =========================1432-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_name ON repositories(name)")1433 -> 0.0006s1434== 20150528101601 RepositoriesAddIndexName: migrated (0.0006s) ================1436== 20150528101602 RepositoriesDropIndexOwnerNameName: migrating ===============1437-- execute("DROP INDEX CONCURRENTLY index_repositories_on_owner_name_and_name")1438 -> 0.0006s1439== 20150528101602 RepositoriesDropIndexOwnerNameName: migrated (0.0006s) ======1441== 20150528101603 BuildsAddIndexEventType: migrating ==========================1442-- execute("CREATE INDEX CONCURRENTLY index_builds_on_event_type ON builds (event_type)")1443 -> 0.0006s1444== 20150528101603 BuildsAddIndexEventType: migrated (0.0006s) =================1446== 20150528101604 BuildsAddIndexRepositoryId: migrating =======================1447-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id ON builds (repository_id)")1448 -> 0.0007s1449== 20150528101604 BuildsAddIndexRepositoryId: migrated (0.0007s) ==============1451== 20150528101605 BuildsAddIndexState: migrating ==============================1452-- execute("CREATE INDEX CONCURRENTLY index_builds_on_state ON builds (state)")1453 -> 0.0006s1454== 20150528101605 BuildsAddIndexState: migrated (0.0006s) =====================1456== 20150528101607 BuildsAddIndexBranch: migrating =============================1457-- execute("CREATE INDEX CONCURRENTLY index_builds_on_branch ON builds (branch)")1458 -> 0.0006s1459== 20150528101607 BuildsAddIndexBranch: migrated (0.0006s) ====================1461== 20150528101608 BuildsDropIndexRepositoryIdAndState: migrating ==============1462-- execute("DROP INDEX CONCURRENTLY index_builds_on_repository_id_and_state")1463 -> 0.0006s1464== 20150528101608 BuildsDropIndexRepositoryIdAndState: migrated (0.0006s) =====1466== 20150528101609 BuildsDropIndexRepositoryIdAndEventType: migrating ==========1467-- execute("DROP INDEX CONCURRENTLY index_builds_on_repository_id_and_event_type")1468 -> 0.0005s1469== 20150528101609 BuildsDropIndexRepositoryIdAndEventType: migrated (0.0005s) =1471== 20150528101610 BuildsDropIndexIdRepositoryIdAndEventTypeDesc: migrating ====1472-- execute("DROP INDEX CONCURRENTLY index_builds_on_id_repository_id_and_event_type_desc")1473 -> 0.0005s1474== 20150528101610 BuildsDropIndexIdRepositoryIdAndEventTypeDesc: migrated (0.0006s)1476== 20150528101611 BuildsDropIndexRepositoryIdAndEventTypeAndStateAndBranch: migrating1477-- execute("DROP INDEX CONCURRENTLY index_builds_on_repository_id_and_event_type_and_state_and_bran")1478 -> 0.0006s1479== 20150528101611 BuildsDropIndexRepositoryIdAndEventTypeAndStateAndBranch: migrated (0.0006s)1481== 20150609175200 AddCancelationColumnsToSubscriptions: migrating =============1482-- change_table(:subscriptions)1483 -> 0.0010s1484== 20150609175200 AddCancelationColumnsToSubscriptions: migrated (0.0010s) ====1486== 20150610143500 JobsAddIndexOwnerId: migrating ==============================1487-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_id ON jobs (owner_id)")1488 -> 0.0006s1489== 20150610143500 JobsAddIndexOwnerId: migrated (0.0006s) =====================1491== 20150610143501 JobsAddIndexOwnerType: migrating ============================1492-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_type ON jobs (owner_type)")1493 -> 0.0006s1494== 20150610143501 JobsAddIndexOwnerType: migrated (0.0006s) ===================1496== 20150610143502 JobsAddIndexSourceId: migrating =============================1497-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_source_id ON jobs (source_id)")1498 -> 0.0006s1499== 20150610143502 JobsAddIndexSourceId: migrated (0.0007s) ====================1501== 20150610143503 JobsAddIndexSourceType: migrating ===========================1502-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_source_type ON jobs (source_type)")1503 -> 0.0006s1504== 20150610143503 JobsAddIndexSourceType: migrated (0.0006s) ==================1506== 20150610143504 JobsAddIndexType: migrating =================================1507-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_type ON jobs (type)")1508 -> 0.0144s1509== 20150610143504 JobsAddIndexType: migrated (0.0151s) ========================1511== 20150610143505 JobsDropIndexOwnerIdAndOwnerTypeAndState: migrating =========1512-- execute("DROP INDEX CONCURRENTLY index_jobs_on_owner_id_and_owner_type_and_state")1513 -> 0.0015s1514== 20150610143505 JobsDropIndexOwnerIdAndOwnerTypeAndState: migrated (0.0019s)1516== 20150610143506 JobsDropIndexStateOwnerTypeOwnerId: migrating ===============1517-- execute("DROP INDEX CONCURRENTLY index_jobs_on_state_owner_type_owner_id")1518 -> 0.0014s1519== 20150610143506 JobsDropIndexStateOwnerTypeOwnerId: migrated (0.0018s) ======1521== 20150610143507 JobsDropIndexTypeAndSourceIdAndSourceType: migrating ========1522-- 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"})1523 -> 0.0093s1524== 20150610143507 JobsDropIndexTypeAndSourceIdAndSourceType: migrated (0.0097s)1526== 20150610143508 JobsAddIndexState: migrating ================================1527-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_state ON jobs (state)")1528 -> 0.0014s1529== 20150610143508 JobsAddIndexState: migrated (0.0018s) =======================1531== 20150610143509 JobsAddIndexQueue: migrating ================================1532-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_queue ON jobs (queue)")1533 -> 0.0007s1534== 20150610143509 JobsAddIndexQueue: migrated (0.0007s) =======================1536== 20150610143510 TokensAddIndexUserId: migrating =============================1537-- execute("CREATE INDEX CONCURRENTLY index_tokens_on_user_id ON tokens (user_id)")1538 -> 0.0008s1539== 20150610143510 TokensAddIndexUserId: migrated (0.0009s) ====================1541== 20150615103059 AddStatusToSubscriptions: migrating =========================1542-- add_column(:subscriptions, :status, :string)1543 -> 0.0006s1544== 20150615103059 AddStatusToSubscriptions: migrated (0.0007s) ================1546== 20150629231300 ReposAddInvalidatedAt: migrating ============================1547-- add_column(:repositories, :invalidated_at, :timestamp, {:precision=>nil})1548 -> 0.0006s1549== 20150629231300 ReposAddInvalidatedAt: migrated (0.0006s) ===================1551== 20150923131400 BroadcastsAddCategory: migrating ============================1552-- add_column(:broadcasts, :category, :string)1553 -> 0.0006s1554== 20150923131400 BroadcastsAddCategory: migrated (0.0006s) ===================1556== 20151112153500 CreateStars: migrating ======================================1557-- create_table(:stars, {:id=>:integer})1558 -> 0.0018s1559-- add_index(:stars, :user_id)1560 -> 0.0005s1561== 20151112153500 CreateStars: migrated (0.0024s) =============================1563== 20151113111400 StarsAddIndexUserIdAndRepositoryId: migrating ===============1564-- execute("CREATE UNIQUE INDEX index_stars_on_user_id_and_repository_id ON stars (user_id, repository_id)")1565 -> 0.0006s1566== 20151113111400 StarsAddIndexUserIdAndRepositoryId: migrated (0.0006s) ======1568== 20151127153500 UsersAddIndexGithubOauthToken: migrating ====================1569-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_github_oauth_token ON users (github_oauth_token)")1570 -> 0.0006s1571== 20151127153500 UsersAddIndexGithubOauthToken: migrated (0.0006s) ===========1573== 20151127154200 AnnotationsAddIndexJobId: migrating =========================1574-- execute("CREATE INDEX CONCURRENTLY index_annotations_on_job_id ON annotations (job_id)")1575 -> 0.0006s1576== 20151127154200 AnnotationsAddIndexJobId: migrated (0.0006s) ================1578== 20151127154600 BroadcastsAddIndexRecipientIdAndRecipientType: migrating ====1579-- execute("CREATE INDEX CONCURRENTLY index_broadcasts_on_recipient_id_and_recipient_type ON broadcasts (recipient_id, recipient_type)")1580 -> 0.0006s1581== 20151127154600 BroadcastsAddIndexRecipientIdAndRecipientType: migrated (0.0006s)1583== 20151202122200 UsersAddFirstLoggedInAt: migrating ==========================1584-- add_column(:users, :first_logged_in_at, :timestamp, {:precision=>nil})1585 -> 0.0008s1586== 20151202122200 UsersAddFirstLoggedInAt: migrated (0.0008s) =================1588== 20160107120927 AddCronTable: migrating =====================================1589-- create_table(:crons, {:id=>:integer})1590 -> 0.0022s1591== 20160107120927 AddCronTable: migrated (0.0022s) ============================1593== 20160303165750 AddDebugOptionsToJobs: migrating ============================1594-- add_column(:jobs, :debug_options, :text)1595 -> 0.0007s1596== 20160303165750 AddDebugOptionsToJobs: migrated (0.0007s) ===================1598== 20160412113020 BuildsDropIndexOwnerType: migrating =========================1599-- execute("DROP INDEX CONCURRENTLY index_builds_on_owner_type")1600 -> 0.0006s1601== 20160412113020 BuildsDropIndexOwnerType: migrated (0.0006s) ================1603== 20160412113070 RepositoriesDropIndexLastBuildStartedAt: migrating ==========1604-- execute("DROP INDEX CONCURRENTLY index_repositories_on_last_build_started_at")1605 -> 0.0006s1606== 20160412113070 RepositoriesDropIndexLastBuildStartedAt: migrated (0.0006s) =1608== 20160412121405 JobsDropIndexType: migrating ================================1609-- execute("DROP INDEX CONCURRENTLY index_jobs_on_type")1610 -> 0.0005s1611== 20160412121405 JobsDropIndexType: migrated (0.0006s) =======================1613== 20160412123900 JobsDropIndexSourceType: migrating ==========================1614-- execute("DROP INDEX CONCURRENTLY index_jobs_on_source_type")1615 -> 0.0005s1616== 20160412123900 JobsDropIndexSourceType: migrated (0.0006s) =================1618== 20160414214442 JobsAddIndexQueuedAt: migrating =============================1619-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_queued_at ON jobs (queued_at)")1620 -> 0.0006s1621== 20160414214442 JobsAddIndexQueuedAt: migrated (0.0007s) ====================1623== 20160422104300 BuildsAddIndexNumber: migrating =============================1624-- execute("CREATE INDEX CONCURRENTLY index_builds_on_number ON builds (number)")1625 -> 0.0006s1626== 20160422104300 BuildsAddIndexNumber: migrated (0.0006s) ====================1628== 20160422121400 BuildsAddIndexRepositoryIdAndNumberAndEventType: migrating ==1629-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_number_and_event_type ON builds (repository_id, number, event_type)")1630 -> 0.0007s1631== 20160422121400 BuildsAddIndexRepositoryIdAndNumberAndEventType: migrated (0.0007s)1633== 20160510142700 JobsAddIndexCreatedAt: migrating ============================1634-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_created_at ON jobs (created_at)")1635 -> 0.0006s1636== 20160510142700 JobsAddIndexCreatedAt: migrated (0.0006s) ===================1638== 20160510144200 BuildsAddPrivate: migrating =================================1639-- change_table(:builds)1640 -> 0.0007s1641== 20160510144200 BuildsAddPrivate: migrated (0.0007s) ========================1643== 20160510150300 JobsAddPrivate: migrating ===================================1644-- change_table(:jobs)1645 -> 0.0006s1646== 20160510150300 JobsAddPrivate: migrated (0.0007s) ==========================1648== 20160510150400 RequestsAddPrivate: migrating ===============================1649-- change_table(:requests)1650 -> 0.0006s1651== 20160510150400 RequestsAddPrivate: migrated (0.0007s) ======================1653== 20160513074300 AddCurrentBuildIdToRepositories: migrating ==================1654-- add_column(:repositories, :current_build_id, :bigint)1655 -> 0.0006s1656-- execute("ALTER TABLE repositories ADD CONSTRAINT fk_repositories_current_build_id FOREIGN KEY (current_build_id) REFERENCES builds (id);")1657 -> 0.0016s1658== 20160513074300 AddCurrentBuildIdToRepositories: migrated (0.0022s) =========1660== 20160609163600 PermissionsAddIndexUserIdAndRepositoryId: migrating =========1661-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_permissions_on_user_id_and_repository_id ON permissions (user_id, repository_id)")1662 -> 0.0006s1663== 20160609163600 PermissionsAddIndexUserIdAndRepositoryId: migrated (0.0007s)1665== 20160623133900 CreatePreviousJobStates: migrating ==========================1666-- create_table(:previous_job_states, {:id=>:integer})1667 -> 0.0021s1668-- add_column(:jobs, :previous_job_state_id, :bigint)1669 -> 0.0004s1670== 20160623133900 CreatePreviousJobStates: migrated (0.0027s) =================1672== 20160623133901 AddPreviousStatesTriggers: migrating ========================1673-- 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")1674 -> 0.0063s1675== 20160623133901 AddPreviousStatesTriggers: migrated (0.0065s) ===============1677== 20160712125400 RevertPreviousJobStates: migrating ==========================1678-- 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")1679 -> 0.0029s1680-- remove_column(:jobs, :previous_job_state_id)1681 -> 0.0015s1682-- drop_table(:previous_job_states)1683 -> 0.0022s1684== 20160712125400 RevertPreviousJobStates: migrated (0.0075s) =================1686== 20160819103700 AddAvatarUrlToUsers: migrating ==============================1687-- add_column(:users, :avatar_url, :string)1688 -> 0.0037s1689== 20160819103700 AddAvatarUrlToUsers: migrated (0.0042s) =====================1691== 20160920220400 AddRoleToMemberships: migrating =============================1692-- add_column(:memberships, :role, :string)1693 -> 0.0036s1694== 20160920220400 AddRoleToMemberships: migrated (0.0040s) ====================1696== 20161028154600 RemoveTypeIndices: migrating ================================1697-- execute("DROP INDEX CONCURRENTLY IF EXISTS index_requests_on_event_type")1698 -> 0.0010s1699-- execute("DROP INDEX CONCURRENTLY IF EXISTS index_jobs_on_owner_type")1700 -> 0.0015s1701== 20161028154600 RemoveTypeIndices: migrated (0.0031s) =======================1703== 20161101000000 AddNextRunLastRunToCrons: migrating =========================1704-- column_exists?(:crons, :next_run)1705 -> 0.0064s1706-- add_column(:crons, :next_run, :timestamp, {:precision=>nil})1707 -> 0.0017s1708-- column_exists?(:crons, :last_run)1709 -> 0.0043s1710-- add_column(:crons, :last_run, :timestamp, {:precision=>nil})1711 -> 0.0031s1712== 20161101000000 AddNextRunLastRunToCrons: migrated (0.0165s) ================1714== 20161101000001 AddDontRunIfRecentBuildExists: migrating ====================1715-- column_exists?(:crons, :dont_run_if_recent_build_exists)1716 -> 0.0032s1717-- add_column(:crons, :dont_run_if_recent_build_exists, :boolean, {:default=>false})1718 -> 0.0021s1719== 20161101000001 AddDontRunIfRecentBuildExists: migrated (0.0055s) ===========1721== 20161201112200 CreateBetaFeatures: migrating ===============================1722-- create_table(:beta_features, {:id=>:integer})1723 -> 0.0020s1724== 20161201112200 CreateBetaFeatures: migrated (0.0020s) ======================1726== 20161201112600 CreateUserBetaFeatures: migrating ===========================1727-- create_table(:user_beta_features, {:id=>:integer})1728 -> 0.0016s1729-- add_index(:user_beta_features, [:user_id, :beta_feature_id])1730 -> 0.0006s1731== 20161201112600 CreateUserBetaFeatures: migrated (0.0023s) ==================1733== 20161202000000 RemoveDisableByBuildFromCrons: migrating ====================1734-- remove_column(:crons, :disable_by_build)1735 -> 0.0007s1736== 20161202000000 RemoveDisableByBuildFromCrons: migrated (0.0007s) ===========1738== 20161206155800 AddBillingAdminOnlyToOrganizations: migrating ===============1739-- add_column(:organizations, :billing_admin_only, :boolean)1740 -> 0.0006s1741== 20161206155800 AddBillingAdminOnlyToOrganizations: migrated (0.0006s) ======1743== 20161221171300 BuildsAddIndexRepositoryIdAndNumber: migrating ==============1744-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_number ON builds(repository_id, (number::integer))")1745 -> 0.0007s1746== 20161221171300 BuildsAddIndexRepositoryIdAndNumber: migrated (0.0007s) =====1748== 20170211000000 JobsAddStageNumber: migrating ===============================1749-- add_column(:jobs, :stage_number, :string)1750 -> 0.0006s1751== 20170211000000 JobsAddStageNumber: migrated (0.0006s) ======================1753== 20170211000001 JobsAddStageId: migrating ===================================1754-- change_table(:jobs)1755 -> 0.0006s1756== 20170211000001 JobsAddStageId: migrated (0.0007s) ==========================1758== 20170211000002 StagesCreate: migrating =====================================1759-- create_table(:stages, {:id=>:integer})1760 -> 0.0018s1761== 20170211000002 StagesCreate: migrated (0.0019s) ============================1763== 20170211000003 StagesAddStateAndTimestamps: migrating ======================1764-- change_table(:stages)1765 -> 0.0013s1766== 20170211000003 StagesAddStateAndTimestamps: migrated (0.0014s) =============1768== 20170213124000 AddConstraintForOwnerIdToSubscriptions: migrating ===========1769-- execute("CREATE UNIQUE INDEX subscriptions_owner ON subscriptions (owner_id, owner_type) WHERE (status = 'subscribed');")1770 -> 0.0008s1771== 20170213124000 AddConstraintForOwnerIdToSubscriptions: migrated (0.0008s) ==1773== 20170316000000 QueueableJobsCreate: migrating ==============================1774-- create_table(:queueable_jobs, {:id=>:integer})1775 -> 0.0015s1776== 20170316000000 QueueableJobsCreate: migrated (0.0015s) =====================1778== 20170316000001 QueueableJobsIndexJobId: migrating ==========================1779-- add_index(:queueable_jobs, :job_id, {:algorithm=>:concurrently})1780 -> 0.0006s1781== 20170316000001 QueueableJobsIndexJobId: migrated (0.0007s) =================1783== 20170318000000 PullRequestsCreate: migrating ===============================1784-- create_table(:pull_requests, {:id=>:integer})1785 -> 0.0020s1786== 20170318000000 PullRequestsCreate: migrated (0.0020s) ======================1788== 20170318000001 RequestsAddPullRequestId: migrating =========================1789-- change_table(:requests)1790 -> 0.0006s1791== 20170318000001 RequestsAddPullRequestId: migrated (0.0007s) ================1793== 20170318000002 BuildsAddPullRequestId: migrating ===========================1794-- change_table(:builds)1795 -> 0.0006s1796== 20170318000002 BuildsAddPullRequestId: migrated (0.0007s) ==================1798== 20170322000000 AddIndexOnRequestsRepositoryIdAndIdDesc: migrating ==========1799-- execute("CREATE INDEX CONCURRENTLY index_requests_on_repository_id_and_id_desc ON requests (repository_id, id DESC);")1800 -> 0.0007s1801== 20170322000000 AddIndexOnRequestsRepositoryIdAndIdDesc: migrated (0.0007s) =1803== 20170331000000 AddIndexRepositoryIdOnPullRequests: migrating ===============1804-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_pull_requests_on_repository_id_and_number ON pull_requests (repository_id, (number::integer));")1805 -> 0.0006s1806== 20170331000000 AddIndexRepositoryIdOnPullRequests: migrated (0.0006s) ======1808== 20170401000000 OwnerGroupsCreate: migrating ================================1809-- create_table(:owner_groups, {:id=>:integer})1810 -> 0.0020s1811== 20170401000000 OwnerGroupsCreate: migrated (0.0020s) =======================1813== 20170401000001 OwnerGroupsIndexOwnerIdOwnerType: migrating =================1814-- execute("CREATE INDEX CONCURRENTLY index_owner_groups_on_owner_type_and_owner_id ON owner_groups (owner_type, owner_id);")1815 -> 0.0007s1816== 20170401000001 OwnerGroupsIndexOwnerIdOwnerType: migrated (0.0007s) ========1818== 20170401000002 OwnerGroupsIndexUuid: migrating =============================1819-- execute("CREATE INDEX CONCURRENTLY index_owner_groups_on_uuid ON owner_groups (uuid);")1820 -> 0.0005s1821== 20170401000002 OwnerGroupsIndexUuid: migrated (0.0006s) ====================1823== 20170405000000 TagsCreate: migrating =======================================1824-- create_table(:tags, {:id=>:integer})1825 -> 0.0019s1826== 20170405000000 TagsCreate: migrated (0.0020s) ==============================1828== 20170405000001 RequestsAddBranchIdAndTagId: migrating ======================1829-- change_table(:requests)1830 -> 0.0029s1831== 20170405000001 RequestsAddBranchIdAndTagId: migrated (0.0029s) =============1833== 20170405000002 CommitsAddBranchIdAndTagId: migrating =======================1834-- change_table(:commits)1835 -> 0.0016s1836== 20170405000002 CommitsAddBranchIdAndTagId: migrated (0.0017s) ==============1838== 20170405000003 BuildsAddBranchIdAndTagId: migrating ========================1839-- change_table(:builds)1840 -> 0.0017s1841== 20170405000003 BuildsAddBranchIdAndTagId: migrated (0.0018s) ===============1843== 20170408000000 RequestsAddSenderId: migrating ==============================1844-- change_table(:requests)1845 -> 0.0017s1846== 20170408000000 RequestsAddSenderId: migrated (0.0017s) =====================1848== 20170408000001 BuildsAddSenderId: migrating ================================1849-- change_table(:builds)1850 -> 0.0016s1851== 20170408000001 BuildsAddSenderId: migrated (0.0017s) =======================1853== 20170410000000 JobsIndexStageId: migrating =================================1854-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_stage_id ON jobs (stage_id);")1855 -> 0.0011s1856== 20170410000000 JobsIndexStageId: migrated (0.0011s) ========================1858== 20170411000000 TagsIndexRepoIdAndName: migrating ===========================1859-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_repository_id_and_name ON tags (repository_id, name);")1860 -> 0.0010s1861== 20170411000000 TagsIndexRepoIdAndName: migrated (0.0011s) ==================1863== 20170419093249 AddSourceToSubscriptions: migrating =========================1864-- execute(" CREATE TYPE source_type AS ENUM ('manual', 'stripe', 'github', 'unknown');\n")1865 -> 0.0012s1866-- add_column(:subscriptions, :source, :source_type, {:default=>"unknown", :null=>false})1867 -> 0.0040s1868== 20170419093249 AddSourceToSubscriptions: migrated (0.0053s) ================1870== 20170531125700 AddIndexOnBuildsSenderTypeAndSenderId: migrating ============1871-- execute("CREATE INDEX CONCURRENTLY index_builds_on_sender_type_and_sender_id ON builds (sender_type, sender_id);")1872 -> 0.0017s1873== 20170531125700 AddIndexOnBuildsSenderTypeAndSenderId: migrated (0.0017s) ===1875== 20170601163700 DropIndexOnRepositoriesBuildsAndCommits: migrating ==========1876-- execute("DROP INDEX CONCURRENTLY index_repositories_on_lower_owner_name")1877 -> 0.0009s1878-- execute("DROP INDEX CONCURRENTLY index_repositories_on_owner_type")1879 -> 0.0008s1880-- execute("DROP INDEX CONCURRENTLY index_commits_on_repository_id")1881 -> 0.0008s1882-- execute("DROP INDEX CONCURRENTLY index_builds_on_number")1883 -> 0.0010s1884== 20170601163700 DropIndexOnRepositoriesBuildsAndCommits: migrated (0.0036s) =1886== 20170601164400 AddIndexOnBuildsAndStages: migrating ========================1887-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_branch_and_event_type_and_id ON builds (repository_id, branch, event_type, id)")1888 -> 0.0011s1889-- execute("CREATE INDEX CONCURRENTLY index_stages_on_build_id ON stages (build_id)")1890 -> 0.0010s1891== 20170601164400 AddIndexOnBuildsAndStages: migrated (0.0022s) ===============1893== 20170609174400 DropUnusedIndexesOnJobsAndBuilds: migrating =================1894-- execute("DROP INDEX CONCURRENTLY index_jobs_on_repository_id")1895 -> 0.0008s1896-- execute("DROP INDEX CONCURRENTLY index_jobs_on_queued_at")1897 -> 0.0010s1898-- execute("DROP INDEX CONCURRENTLY index_jobs_on_queue")1899 -> 0.0008s1900-- execute("DROP INDEX CONCURRENTLY index_jobs_on_owner_id")1901 -> 0.0008s1902-- execute("DROP INDEX CONCURRENTLY index_builds_on_branch")1903 -> 0.0008s1904-- execute("DROP INDEX CONCURRENTLY index_builds_on_event_type")1905 -> 0.0008s1906-- execute("DROP INDEX CONCURRENTLY index_builds_on_owner_id")1907 -> 0.0008s1908== 20170609174400 DropUnusedIndexesOnJobsAndBuilds: migrated (0.0062s) ========1910== 20170613000000 CreateTrials: migrating =====================================1911-- create_table(:trials, {:id=>:integer})1912 -> 0.0044s1913-- execute("CREATE INDEX CONCURRENTLY index_trials_on_owner ON trials(owner_id, owner_type)")1914 -> 0.0013s1915== 20170613000000 CreateTrials: migrated (0.0059s) ============================1917== 20170620144500 AddIndexesOnBuildsAndJobsAndBranches: migrating =============1918-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_and_branch_and_id_desc ON builds (repository_id, branch, id DESC)")1919 -> 0.0011s1920-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_id_and_owner_type_and_state ON jobs (owner_id, owner_type, state)")1921 -> 0.0011s1922-- execute("CREATE INDEX CONCURRENTLY index_branches_on_repository_id ON branches (repository_id)")1923 -> 0.0008s1924== 20170620144500 AddIndexesOnBuildsAndJobsAndBranches: migrated (0.0031s) ====1926== 20170621142300 RemovePlansTable: migrating =================================1927-- drop_table(:plans)1928 -> 0.0016s1929== 20170621142300 RemovePlansTable: migrated (0.0017s) ========================1931== 20170713162000 AddCcLastDigitsToInvoices: migrating ========================1932-- change_table(:invoices)1933 -> 0.0011s1934== 20170713162000 AddCcLastDigitsToInvoices: migrated (0.0012s) ===============1936== 20170822171600 CreateMessages: migrating ===================================1937-- create_table("messages", {:force=>:cascade, :id=>:integer})1938 -> 0.0034s1939-- execute("CREATE INDEX CONCURRENTLY index_messages_on_subject_type_and_subject_id ON messages(subject_type, subject_id)")1940 -> 0.0009s1941== 20170822171600 CreateMessages: migrated (0.0045s) ==========================1943== 20170831000000 CreateTrialAllowances: migrating ============================1944-- create_table(:trial_allowances, {:id=>:integer})1945 -> 0.0032s1946-- add_index(:trial_allowances, :trial_id)1947 -> 0.0007s1948-- add_index(:trial_allowances, [:creator_id, :creator_type])1949 -> 0.0009s1950== 20170831000000 CreateTrialAllowances: migrated (0.0051s) ===================1952== 20170911172800 AddIndexOnJobsUpdatedAt: migrating ==========================1953-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_updated_at ON jobs (updated_at)")1954 -> 0.0010s1955== 20170911172800 AddIndexOnJobsUpdatedAt: migrated (0.0011s) =================1957== 20171017104500 AddConcurrencyToSubscriptions: migrating ====================1958-- change_table(:subscriptions)1959 -> 0.0011s1960== 20171017104500 AddConcurrencyToSubscriptions: migrated (0.0012s) ===========1962== 20171024000000 AddAbuseTable: migrating ====================================1963-- create_table(:abuses, {:id=>:integer})1964 -> 0.0036s1965-- execute("CREATE INDEX CONCURRENTLY index_abuses_on_owner ON abuses(owner_id)")1966 -> 0.0014s1967== 20171024000000 AddAbuseTable: migrated (0.0052s) ===========================1969== 20171025000000 AddUpdatedAtTriggerToBuildsAndJobs: migrating ===============1970-- 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")1971 -> 0.0013s1972== 20171025000000 AddUpdatedAtTriggerToBuildsAndJobs: migrated (0.0014s) ======1974== 20171103000000 UpdateIndexOnAbuses: migrating ==============================1975-- index_exists?(:abuses, :owner, {:name=>"index_abuses_on_owner"})1976 -> 0.0023s1977-- index_exists?(:abuses, [:owner_id, :owner_type, :level], {:name=>"index_abuses_on_owner_id_and_owner_type_and_level"})1978 -> 0.0021s1979-- add_index(:abuses, [:owner_id, :owner_type, :level], {:unique=>true, :algorithm=>:concurrently})1980 -> 0.0011s1981== 20171103000000 UpdateIndexOnAbuses: migrated (0.0058s) =====================1983== 20171211000000 AddRepositoryIdBranchEventTypeIndexOnBuilds: migrating ======1984-- 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')")1985 -> 0.0013s1986== 20171211000000 AddRepositoryIdBranchEventTypeIndexOnBuilds: migrated (0.0014s)1988== 20180212000000 UsersAddSuspended: migrating ================================1989-- add_column(:users, :suspended, :boolean, {:default=>false})1990 -> 0.0043s1991== 20180212000000 UsersAddSuspended: migrated (0.0044s) =======================1993== 20180213000000 UsersAddSuspendedAt: migrating ==============================1994-- add_column(:users, :suspended_at, :timestamp, {:precision=>nil})1995 -> 0.0012s1996== 20180213000000 UsersAddSuspendedAt: migrated (0.0013s) =====================1998== 20180222000000 AddComIdAndOrgId: migrating =================================1999-- add_column(:branches, :org_id, :integer)2000 -> 0.0010s2001-- add_column(:builds, :org_id, :integer)2002 -> 0.0007s2003-- add_column(:commits, :org_id, :integer)2004 -> 0.0006s2005-- add_column(:crons, :org_id, :integer)2006 -> 0.0006s2007-- add_column(:jobs, :org_id, :integer)2008 -> 0.0006s2009-- add_column(:organizations, :org_id, :integer)2010 -> 0.0006s2011-- add_column(:permissions, :org_id, :integer)2012 -> 0.0006s2013-- add_column(:pull_requests, :org_id, :integer)2014 -> 0.0006s2015-- add_column(:repositories, :org_id, :integer)2016 -> 0.0007s2017-- add_column(:requests, :org_id, :integer)2018 -> 0.0007s2019-- add_column(:ssl_keys, :org_id, :integer)2020 -> 0.0007s2021-- add_column(:stages, :org_id, :integer)2022 -> 0.0006s2023-- add_column(:tags, :org_id, :integer)2024 -> 0.0006s2025-- add_column(:users, :org_id, :integer)2026 -> 0.0007s2027-- add_column(:branches, :com_id, :integer)2028 -> 0.0005s2029-- add_column(:builds, :com_id, :integer)2030 -> 0.0006s2031-- add_column(:commits, :com_id, :integer)2032 -> 0.0005s2033-- add_column(:crons, :com_id, :integer)2034 -> 0.0006s2035-- add_column(:jobs, :com_id, :integer)2036 -> 0.0005s2037-- add_column(:organizations, :com_id, :integer)2038 -> 0.0006s2039-- add_column(:permissions, :com_id, :integer)2040 -> 0.0006s2041-- add_column(:pull_requests, :com_id, :integer)2042 -> 0.0006s2043-- add_column(:repositories, :com_id, :integer)2044 -> 0.0007s2045-- add_column(:requests, :com_id, :integer)2046 -> 0.0005s2047-- add_column(:ssl_keys, :com_id, :integer)2048 -> 0.0005s2049-- add_column(:stages, :com_id, :integer)2050 -> 0.0005s2051-- add_column(:tags, :com_id, :integer)2052 -> 0.0005s2053-- add_column(:users, :com_id, :integer)2054 -> 0.0006s2055== 20180222000000 AddComIdAndOrgId: migrated (0.0189s) ========================2057== 20180222000001 AddComIdAndOrgIdIndices: migrating ==========================2058-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_on_org_id ON branches USING btree (org_id)")2059 -> 0.0012s2060-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_builds_on_org_id ON builds USING btree (org_id)")2061 -> 0.0011s2062-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_jobs_on_org_id ON jobs USING btree (org_id)")2063 -> 0.0011s2064-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_commits_on_org_id ON commits USING btree (org_id)")2065 -> 0.0009s2066-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_crons_on_org_id ON crons USING btree (org_id)")2067 -> 0.0010s2068-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organizations_on_org_id ON organizations USING btree (org_id)")2069 -> 0.0009s2070-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_permissions_on_org_id ON permissions USING btree (org_id)")2071 -> 0.0012s2072-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_pull_requests_on_org_id ON pull_requests USING btree (org_id)")2073 -> 0.0012s2074-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_repositories_on_org_id ON repositories USING btree (org_id)")2075 -> 0.0013s2076-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_requests_on_org_id ON requests USING btree (org_id)")2077 -> 0.0013s2078-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_ssl_keys_on_org_id ON ssl_keys USING btree (org_id)")2079 -> 0.0012s2080-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_stages_on_org_id ON stages USING btree (org_id)")2081 -> 0.0012s2082-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_org_id ON tags USING btree (org_id)")2083 -> 0.0011s2084-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_org_id ON users USING btree (org_id)")2085 -> 0.0023s2086-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_on_com_id ON branches USING btree (com_id)")2087 -> 0.0022s2088-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_builds_on_com_id ON builds USING btree (com_id)")2089 -> 0.0025s2090-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_jobs_on_com_id ON jobs USING btree (com_id)")2091 -> 0.0027s2092-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_commits_on_com_id ON commits USING btree (com_id)")2093 -> 0.0062s2094-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_crons_on_com_id ON crons USING btree (com_id)")2095 -> 0.0015s2096-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organizations_on_com_id ON organizations USING btree (com_id)")2097 -> 0.0015s2098-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_permissions_on_com_id ON permissions USING btree (com_id)")2099 -> 0.0016s2100-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_pull_requests_on_com_id ON pull_requests USING btree (com_id)")2101 -> 0.0014s2102-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_repositories_on_com_id ON repositories USING btree (com_id)")2103 -> 0.0015s2104-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_requests_on_com_id ON requests USING btree (com_id)")2105 -> 0.0014s2106-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_ssl_keys_on_com_id ON ssl_keys USING btree (com_id)")2107 -> 0.0013s2108-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_stages_on_com_id ON stages USING btree (com_id)")2109 -> 0.0013s2110-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_com_id ON tags USING btree (com_id)")2111 -> 0.0014s2112-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_users_on_com_id ON users USING btree (com_id)")2113 -> 0.0014s2114== 20180222000001 AddComIdAndOrgIdIndices: migrated (0.0485s) =================2116== 20180222000002 AddMigrating: migrating =====================================2117-- add_column(:repositories, :migrating, :boolean)2118 -> 0.0027s2119-- add_column(:repositories, :migrated_at, :timestamp, {:precision=>nil})2120 -> 0.0017s2121-- add_column(:organizations, :migrating, :boolean)2122 -> 0.0015s2123-- add_column(:organizations, :migrated_at, :timestamp, {:precision=>nil})2124 -> 0.0014s2125-- add_column(:users, :migrating, :boolean)2126 -> 0.0012s2127-- add_column(:users, :migrated_at, :timestamp, {:precision=>nil})2128 -> 0.0013s2129== 20180222000002 AddMigrating: migrated (0.0115s) ============================2131== 20180222000003 DropFkRepositoriesCurrentBuildId: migrating =================2132-- execute("ALTER TABLE repositories DROP CONSTRAINT fk_repositories_current_build_id")2133 -> 0.0011s2134== 20180222000003 DropFkRepositoriesCurrentBuildId: migrated (0.0011s) ========2136== 20180222000009 CreateRepoCounts: migrating =================================2137-- create_table(:repo_counts, {:id=>false})2138 -> 0.0015s2139-- add_index(:repo_counts, :repository_id)2140 -> 0.0006s2141== 20180222000009 CreateRepoCounts: migrated (0.0022s) ========================2143== 20180222000012 CreateRepoCountsTriggers: migrating =========================2144-- 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")2145 -> 0.0123s2146== 20180222000012 CreateRepoCountsTriggers: migrated (0.0127s) ================2148== 20180222164100 DropAnnotations: migrating ==================================2149-- drop_table(:annotations)2150 -> 0.0026s2151-- drop_table(:annotation_providers)2152 -> 0.0016s2153== 20180222164100 DropAnnotations: migrated (0.0044s) =========================2155== 20180305143800 IndexBuildsOnRepositoryIdWhereStateNotFinished: migrating ===2156-- execute("CREATE INDEX CONCURRENTLY index_builds_on_repository_id_where_state_not_finished ON builds (repository_id) WHERE state IN ('created', 'queued', 'received', 'started');")2157 -> 0.0012s2158== 20180305143800 IndexBuildsOnRepositoryIdWhereStateNotFinished: migrated (0.0013s)2160== 20180321102400 IndexJobsOnRepositoryIdWhereStateRunning: migrating =========2161-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_repository_id_where_state_running ON jobs (repository_id) WHERE state IN ('queued', 'received', 'started')")2162 -> 0.0026s2163== 20180321102400 IndexJobsOnRepositoryIdWhereStateRunning: migrated (0.0027s)2165== 20180330000000 CreateRequestPayloads: migrating ============================2166-- create_table(:request_payloads, {:id=>:integer})2167 -> 0.0064s2168-- add_index(:request_payloads, :request_id)2169 -> 0.0017s2170-- add_index(:request_payloads, [:created_at, :archived])2171 -> 0.0012s2172== 20180330000000 CreateRequestPayloads: migrated (0.0095s) ===================2174== 20180331000000 CreateConfigs: migrating ====================================2175-- create_table(:request_configs, {:id=>:integer})2176 -> 0.0046s2177-- create_table(:build_configs, {:id=>:integer})2178 -> 0.0043s2179-- create_table(:job_configs, {:id=>:integer})2180 -> 0.0035s2181-- add_index(:request_configs, [:repository_id, :key])2182 -> 0.0013s2183-- add_index(:build_configs, [:repository_id, :key])2184 -> 0.0013s2185-- add_index(:job_configs, [:repository_id, :key])2186 -> 0.0016s2187-- add_column(:requests, :config_id, :integer)2188 -> 0.0008s2189-- add_column(:builds, :config_id, :integer)2190 -> 0.0037s2191-- add_column(:jobs, :config_id, :integer)2192 -> 0.0008s2193== 20180331000000 CreateConfigs: migrated (0.0224s) ===========================2195== 20180404000001 CreateInstallations: migrating ==============================2196-- create_table(:installations, {:id=>:integer})2197 -> 0.0132s2198-- change_table(:repositories)2199 -> 0.0027s2200== 20180404000001 CreateInstallations: migrated (0.0160s) =====================2202== 20180410000000 RequestsDropPayload: migrating ==============================2203-- remove_column(:requests, :payload, :text)2204 -> 0.0040s2205== 20180410000000 RequestsDropPayload: migrated (0.0042s) =====================2207== 20180413000000 IndexBranchesOnRepositoryIdAndNameAndId: migrating ==========2208-- execute("CREATE INDEX CONCURRENTLY index_branches_on_repository_id_and_name_and_id ON branches (repository_id, name, id)")2209 -> 0.0024s2210-- execute("DROP INDEX CONCURRENTLY index_branches_on_repository_id_and_name")2211 -> 0.0012s2212== 20180413000000 IndexBranchesOnRepositoryIdAndNameAndId: migrated (0.0038s) =2214== 20180417000000 IndexBuildsOrganizationsUsersOnUpdatedAt: migrating =========2215-- execute("CREATE INDEX CONCURRENTLY index_builds_on_updated_at ON builds (updated_at)")2216 -> 0.0019s2217-- execute("CREATE INDEX CONCURRENTLY index_users_on_updated_at ON users (updated_at)")2218 -> 0.0019s2219-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_updated_at ON repositories (updated_at)")2220 -> 0.0023s2221-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_updated_at ON organizations (updated_at)")2222 -> 0.0012s2223== 20180417000000 IndexBuildsOrganizationsUsersOnUpdatedAt: migrated (0.0075s)2225== 20180420000000 ConstraintsAndIndexesForGhApps: migrating ===================2226-- execute("CREATE UNIQUE INDEX CONCURRENTLY github_id_installations_idx ON installations (github_id)")2227 -> 0.0010s2228-- execute("CREATE INDEX CONCURRENTLY managed_repositories_idx ON repositories (managed_by_installation_at)")2229 -> 0.0010s2230-- execute("CREATE UNIQUE INDEX CONCURRENTLY owner_installations_idx ON installations (owner_id, owner_type) WHERE removed_by_id IS NULL")2231 -> 0.0015s2232== 20180420000000 ConstraintsAndIndexesForGhApps: migrated (0.0036s) ==========2234== 20180425000000 IndexActiveOnOrg: migrating =================================2235-- execute("CREATE INDEX CONCURRENTLY index_active_on_org ON repositories (active_on_org)")2236 -> 0.0013s2237== 20180425000000 IndexActiveOnOrg: migrated (0.0013s) ========================2239== 20180425100000 AddRemovedAtOnInstallations: migrating ======================2240-- add_column(:installations, :removed_at, :timestamp, {:precision=>nil})2241 -> 0.0027s2242== 20180425100000 AddRemovedAtOnInstallations: migrated (0.0027s) =============2244== 20180429000000 IndexRepositoriesOnOwnerNameAndName: migrating ==============2245-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_owner_name_and_name ON repositories (owner_name, name) WHERE invalidated_at IS NULL")2246 -> 0.0013s2247== 20180429000000 IndexRepositoriesOnOwnerNameAndName: migrated (0.0014s) =====2249== 20180501000000 IndexJobsOnOwnerWhereStateRunning: migrating ================2250-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_owner_where_state_running ON jobs (owner_id, owner_type) WHERE state IN ('queued', 'received', 'started')")2251 -> 0.0022s2252== 20180501000000 IndexJobsOnOwnerWhereStateRunning: migrated (0.0023s) =======2254== 20180517000000 IndexRequestsConfigId: migrating ============================2255-- execute("CREATE INDEX CONCURRENTLY index_requests_on_config_id ON requests (config_id)")2256 -> 0.0015s2257== 20180517000000 IndexRequestsConfigId: migrated (0.0016s) ===================2259== 20180517000001 IndexBuildsConfigId: migrating ==============================2260-- execute("CREATE INDEX CONCURRENTLY index_builds_on_config_id ON requests (config_id)")2261 -> 0.0011s2262== 20180517000001 IndexBuildsConfigId: migrated (0.0011s) =====================2264== 20180517000002 IndexJobsConfigId: migrating ================================2265-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_config_id ON requests (config_id)")2266 -> 0.0011s2267== 20180517000002 IndexJobsConfigId: migrated (0.0012s) =======================2269== 20180518000000 IndexBuildsOnMultiple: migrating ============================2270-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_builds_on_repo_branch_event_type_and_private ON builds (repository_id, branch, event_type, private)")2271 -> 0.0015s2272== 20180518000000 IndexBuildsOnMultiple: migrated (0.0016s) ===================2274== 20180522000000 AddActiveFlagToCrons: migrating =============================2275-- change_table(:crons)2276 -> 0.0073s2277-- add_index(:crons, :next_run, {:where=>"(active IS TRUE)", :algorithm=>:concurrently})2278 -> 0.0015s2279== 20180522000000 AddActiveFlagToCrons: migrated (0.0090s) ====================2281== 20180531000000 CreateRequestYamlConfigs: migrating =========================2282-- create_table(:request_yaml_configs, {:id=>:integer})2283 -> 0.0036s2284-- add_index(:request_yaml_configs, [:repository_id, :key])2285 -> 0.0019s2286-- add_column(:requests, :yaml_config_id, :integer)2287 -> 0.0009s2288== 20180531000000 CreateRequestYamlConfigs: migrated (0.0065s) ================2290== 20180606000000 IndexCommitsOnRepositoryId: migrating =======================2291-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_commits_on_repository_id ON commits (repository_id)")2292 -> 0.0011s2293== 20180606000000 IndexCommitsOnRepositoryId: migrated (0.0014s) ==============2295== 20180606000001 IndexJobsOnRepositoryId: migrating ==========================2296-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_jobs_on_repository_id ON jobs (repository_id)")2297 -> 0.0061s2298== 20180606000001 IndexJobsOnRepositoryId: migrated (0.0063s) =================2300== 20180614000000 DropRequestsConfig: migrating ===============================2301-- remove_column(:requests, :config)2302 -> 0.0016s2303== 20180614000000 DropRequestsConfig: migrated (0.0016s) ======================2305== 20180614000001 DropBuildsConfig: migrating =================================2306-- remove_column(:builds, :config)2307 -> 0.0015s2308== 20180614000001 DropBuildsConfig: migrated (0.0016s) ========================2310== 20180614000002 DropJobsConfig: migrating ===================================2311-- remove_column(:jobs, :config)2312 -> 0.0015s2313== 20180614000002 DropJobsConfig: migrated (0.0016s) ==========================2315== 20180620000000 IndexBuildsOnRepositoryIdEventTypeId: migrating =============2316-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_builds_on_repository_id_event_type_id ON builds (repository_id, event_type, id DESC)")2317 -> 0.0015s2318== 20180620000000 IndexBuildsOnRepositoryIdEventTypeId: migrated (0.0015s) ====2320== 20180725000000 CreateCancellations: migrating ==============================2321-- create_table(:cancellations, {:id=>:integer})2322 -> 0.0048s2323== 20180725000000 CreateCancellations: migrated (0.0048s) =====================2325== 20180726000000 CommitsIndexAuthorEmail: migrating ==========================2326-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_commits_on_author_email ON commits (author_email)")2327 -> 0.0016s2328== 20180726000000 CommitsIndexAuthorEmail: migrated (0.0016s) =================2330== 20180726000001 CommitsIndexCommitterEmail: migrating =======================2331-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_commits_on_committer_email ON commits (committer_email)")2332 -> 0.0012s2333== 20180726000001 CommitsIndexCommitterEmail: migrated (0.0013s) ==============2335== 20180801000001 UsersAddRedactedAt: migrating ===============================2336-- change_table(:users)2337 -> 0.0010s2338== 20180801000001 UsersAddRedactedAt: migrated (0.0010s) ======================2340== 20180822000000 CreateEmailUnsubscribes: migrating ==========================2341-- create_table(:email_unsubscribes, {:id=>:integer})2342 -> 0.0062s2343== 20180822000000 CreateEmailUnsubscribes: migrated (0.0062s) =================2345== 20180823000000 AddPreferences: migrating ===================================2346-- change_table(:users)2347 -> 0.0041s2348== 20180823000000 AddPreferences: migrated (0.0042s) ==========================2350== 20180828000000 ChangePreferencesDefault: migrating =========================2351-- change_column_default(:users, :preferences, {})2352 -> 0.0039s2353== 20180828000000 ChangePreferencesDefault: migrated (0.0040s) ================2355== 20180829000000 MakeEmailUnsubscribesIdBigint: migrating ====================2356-- change_column(:email_unsubscribes, :id, :bigint)2357 -> 0.0025s2358== 20180829000000 MakeEmailUnsubscribesIdBigint: migrated (0.0025s) ===========2360== 20180830000001 JobsAddRestartedAt: migrating ===============================2361-- change_table(:jobs)2362 -> 0.0010s2363== 20180830000001 JobsAddRestartedAt: migrated (0.0010s) ======================2365== 20180830000002 BuildsAddRestartedAt: migrating =============================2366-- change_table(:builds)2367 -> 0.0020s2368== 20180830000002 BuildsAddRestartedAt: migrated (0.0020s) ====================2370== 20180830000003 JobVersionsCreate: migrating ================================2371-- create_table(:job_versions, {:id=>:integer})2372 -> 0.0032s2373== 20180830000003 JobVersionsCreate: migrated (0.0032s) =======================2375== 20180903000000 JobConfigsIndexConfigResourcesGpu: migrating ================2376-- 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")2377 -> 0.0007s2378-- 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")2379 -> 0.0011s2380== 20180903000000 JobConfigsIndexConfigResourcesGpu: migrated (0.0019s) =======2382== 20180903000001 FixIndexesOnBuildsAndJobsConfigId: migrating ================2383-- execute("DROP INDEX index_builds_on_config_id")2384 -> 0.0009s2385-- execute("CREATE INDEX CONCURRENTLY index_builds_on_config_id ON builds (config_id)")2386 -> 0.0012s2387-- execute("DROP INDEX index_jobs_on_config_id")2388 -> 0.0008s2389-- execute("CREATE INDEX CONCURRENTLY index_jobs_on_config_id ON jobs (config_id)")2390 -> 0.0008s2391== 20180903000001 FixIndexesOnBuildsAndJobsConfigId: migrated (0.0038s) =======2393== 20180904000001 CreateJobConfigsGpu: migrating ==============================2394-- 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")2395 -> 0.0015s2396== 20180904000001 CreateJobConfigsGpu: migrated (0.0015s) =====================2398== 20180906000000 AddIndexUsersPreferencesBuildEmails: migrating ==============2399-- execute("CREATE INDEX CONCURRENTLY user_preferences_build_emails_false ON users (id) WHERE preferences->>'build_emails' = 'false';\n")2400 -> 0.0015s2401== 20180906000000 AddIndexUsersPreferencesBuildEmails: migrated (0.0018s) =====2403== 20181002115306 DeleteDuplicateRecordsFromMemberships: migrating ============2404-- 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")2405 -> 0.0032s2406== 20181002115306 DeleteDuplicateRecordsFromMemberships: migrated (0.0033s) ===2408== 20181002115307 AddConstraintOnOrganizationAndUserToMemberships: migrating ==2409-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_organization_id_and_user_id_on_memberships ON memberships USING btree (organization_id, user_id);\n")2410 -> 0.0008s2411== 20181002115307 AddConstraintOnOrganizationAndUserToMemberships: migrated (0.0008s)2413== 20181018000000 IndexBuildsOnCreatedAt: migrating ===========================2414-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_builds_on_created_at ON builds (created_at)")2415 -> 0.0015s2416== 20181018000000 IndexBuildsOnCreatedAt: migrated (0.0016s) ==================2418== 20181029120000 AddMigrationStatusColumnToRepositories: migrating ===========2419-- add_column(:repositories, :migration_status, :string)2420 -> 0.0020s2421== 20181029120000 AddMigrationStatusColumnToRepositories: migrated (0.0021s) ==2423== 20181113120000 AddGithubGuidColumnToRequests: migrating ====================2424-- add_column(:requests, :github_guid, :text)2425 -> 0.0007s2426-- add_index(:requests, :github_guid, {:algorithm=>:concurrently, :unique=>true})2427 -> 0.0013s2428== 20181113120000 AddGithubGuidColumnToRequests: migrated (0.0021s) ===========2430== 20181116800000 AddConstraintsToMultipleTables: migrating ===================2431-- 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")2432 -> 0.0017s2433-- 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")2434 -> 0.0010s2435-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")2436 -> 0.0021s2437-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) NOT VALID")2438 -> 0.0008s2439-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_request_id FOREIGN KEY (request_id) REFERENCES requests(id) NOT VALID")2440 -> 0.0007s2441-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_pull_request_id FOREIGN KEY (pull_request_id) REFERENCES pull_requests(id) NOT VALID")2442 -> 0.0007s2443-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")2444 -> 0.0008s2445-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) NOT VALID")2446 -> 0.0013s2447-- execute("ALTER TABLE builds ADD CONSTRAINT fk_builds_on_config_id FOREIGN KEY (config_id) REFERENCES build_configs(id) NOT VALID")2448 -> 0.0008s2449-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")2450 -> 0.0010s2451-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) NOT VALID")2452 -> 0.0069s2453-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_stage_id FOREIGN KEY (stage_id) REFERENCES stages(id) NOT VALID")2454 -> 0.0008s2455-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_jobs_on_config_id FOREIGN KEY (config_id) REFERENCES job_configs(id) NOT VALID")2456 -> 0.0007s2457-- execute("ALTER TABLE branches ADD CONSTRAINT fk_branches_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")2458 -> 0.0006s2459-- 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")2460 -> 0.0008s2461-- execute("ALTER TABLE tags ADD CONSTRAINT fk_tags_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")2462 -> 0.0006s2463-- 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")2464 -> 0.0008s2465-- execute("ALTER TABLE commits ADD CONSTRAINT fk_commits_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")2466 -> 0.0006s2467-- execute("ALTER TABLE commits ADD CONSTRAINT fk_commits_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")2468 -> 0.0008s2469-- execute("ALTER TABLE commits ADD CONSTRAINT fk_commits_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) NOT VALID")2470 -> 0.0047s2471-- execute("ALTER TABLE crons ADD CONSTRAINT fk_crons_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")2472 -> 0.0016s2473-- execute("ALTER TABLE job_configs ADD CONSTRAINT fk_job_configs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")2474 -> 0.0015s2475-- execute("ALTER TABLE build_configs ADD CONSTRAINT fk_build_configs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")2476 -> 0.0011s2477-- execute("ALTER TABLE pull_requests ADD CONSTRAINT fk_pull_requests_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")2478 -> 0.0011s2479-- execute("ALTER TABLE ssl_keys ADD CONSTRAINT fk_ssl_keys_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) NOT VALID")2480 -> 0.0010s2481-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) NOT VALID")2482 -> 0.0013s2483-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_pull_request_id FOREIGN KEY (pull_request_id) REFERENCES pull_requests(id) NOT VALID")2484 -> 0.0012s2485-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) NOT VALID")2486 -> 0.0010s2487-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) NOT VALID")2488 -> 0.0012s2489-- execute("ALTER TABLE requests ADD CONSTRAINT fk_requests_on_config_id FOREIGN KEY (config_id) REFERENCES request_configs(id) NOT VALID")2490 -> 0.0011s2491-- execute("ALTER TABLE stages ADD CONSTRAINT fk_stages_on_build_id FOREIGN KEY (build_id) REFERENCES builds(id) NOT VALID")2492 -> 0.0010s2493== 20181116800000 AddConstraintsToMultipleTables: migrated (0.0427s) ==========2495== 20181116800001 ValidateConstraints: migrating ==============================2496-- execute("ALTER TABLE repositories VALIDATE CONSTRAINT fk_repositories_on_current_build_id")2497 -> 0.0030s2498-- execute("ALTER TABLE repositories VALIDATE CONSTRAINT fk_repositories_on_last_build_id")2499 -> 0.0013s2500-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_repository_id")2501 -> 0.0011s2502-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_commit_id")2503 -> 0.0012s2504-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_request_id")2505 -> 0.0019s2506-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_pull_request_id")2507 -> 0.0022s2508-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_branch_id")2509 -> 0.0024s2510-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_tag_id")2511 -> 0.0015s2512-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_builds_on_config_id")2513 -> 0.0010s2514-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_repository_id")2515 -> 0.0014s2516-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_commit_id")2517 -> 0.0008s2518-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_stage_id")2519 -> 0.0010s2520-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_jobs_on_config_id")2521 -> 0.0019s2522-- execute("ALTER TABLE branches VALIDATE CONSTRAINT fk_branches_on_repository_id")2523 -> 0.0010s2524-- execute("ALTER TABLE branches VALIDATE CONSTRAINT fk_branches_on_last_build_id")2525 -> 0.0013s2526-- execute("ALTER TABLE tags VALIDATE CONSTRAINT fk_tags_on_repository_id")2527 -> 0.0019s2528-- execute("ALTER TABLE tags VALIDATE CONSTRAINT fk_tags_on_last_build_id")2529 -> 0.0008s2530-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_commits_on_repository_id")2531 -> 0.0011s2532-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_commits_on_branch_id")2533 -> 0.0014s2534-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_commits_on_tag_id")2535 -> 0.0014s2536-- execute("ALTER TABLE crons VALIDATE CONSTRAINT fk_crons_on_branch_id")2537 -> 0.0016s2538-- execute("ALTER TABLE job_configs VALIDATE CONSTRAINT fk_job_configs_on_repository_id")2539 -> 0.0013s2540-- execute("ALTER TABLE build_configs VALIDATE CONSTRAINT fk_build_configs_on_repository_id")2541 -> 0.0011s2542-- execute("ALTER TABLE pull_requests VALIDATE CONSTRAINT fk_pull_requests_on_repository_id")2543 -> 0.0015s2544-- execute("ALTER TABLE ssl_keys VALIDATE CONSTRAINT fk_ssl_keys_on_repository_id")2545 -> 0.0014s2546-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_commit_id")2547 -> 0.0015s2548-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_pull_request_id")2549 -> 0.0016s2550-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_branch_id")2551 -> 0.0012s2552-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_tag_id")2553 -> 0.0017s2554-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_requests_on_config_id")2555 -> 0.0016s2556-- execute("ALTER TABLE stages VALIDATE CONSTRAINT fk_stages_on_build_id")2557 -> 0.0012s2558== 20181116800001 ValidateConstraints: migrated (0.0465s) =====================2560== 20181126080000 AddIndexesForForeignKeys: migrating =========================2561-- index_exists?(:builds, :branch_id)2562 -> 0.0149s2563-- add_index(:builds, :branch_id, {:algorithm=>:concurrently})2564 -> 0.0013s2565-- index_exists?(:builds, :commit_id)2566 -> 0.0202s2567-- add_index(:builds, :commit_id, {:algorithm=>:concurrently})2568 -> 0.0044s2569-- index_exists?(:builds, :pull_request_id)2570 -> 0.0181s2571-- add_index(:builds, :pull_request_id, {:algorithm=>:concurrently})2572 -> 0.0013s2573-- index_exists?(:builds, :tag_id)2574 -> 0.0191s2575-- add_index(:builds, :tag_id, {:algorithm=>:concurrently})2576 -> 0.0013s2577-- index_exists?(:jobs, :commit_id)2578 -> 0.0129s2579-- add_index(:jobs, :commit_id, {:algorithm=>:concurrently})2580 -> 0.0012s2581-- index_exists?(:branches, :last_build_id)2582 -> 0.0055s2583-- add_index(:branches, :last_build_id, {:algorithm=>:concurrently})2584 -> 0.0019s2585-- index_exists?(:tags, :repository_id)2586 -> 0.0044s2587-- add_index(:tags, :repository_id, {:algorithm=>:concurrently})2588 -> 0.0009s2589-- index_exists?(:tags, :last_build_id)2590 -> 0.0022s2591-- add_index(:tags, :last_build_id, {:algorithm=>:concurrently})2592 -> 0.0007s2593-- index_exists?(:commits, :tag_id)2594 -> 0.0024s2595-- add_index(:commits, :tag_id, {:algorithm=>:concurrently})2596 -> 0.0007s2597-- index_exists?(:commits, :branch_id)2598 -> 0.0026s2599-- add_index(:commits, :branch_id, {:algorithm=>:concurrently})2600 -> 0.0006s2601-- index_exists?(:job_configs, :repository_id)2602 -> 0.0013s2603-- add_index(:job_configs, :repository_id, {:algorithm=>:concurrently})2604 -> 0.0006s2605-- index_exists?(:build_configs, :repository_id)2606 -> 0.0011s2607-- add_index(:build_configs, :repository_id, {:algorithm=>:concurrently})2608 -> 0.0006s2609-- index_exists?(:pull_requests, :repository_id)2610 -> 0.0018s2611-- add_index(:pull_requests, :repository_id, {:algorithm=>:concurrently})2612 -> 0.0006s2613-- index_exists?(:requests, :pull_request_id)2614 -> 0.0111s2615-- add_index(:requests, :pull_request_id, {:algorithm=>:concurrently})2616 -> 0.0014s2617-- index_exists?(:requests, :tag_id)2618 -> 0.0078s2619-- add_index(:requests, :tag_id, {:algorithm=>:concurrently})2620 -> 0.0016s2621-- index_exists?(:requests, :branch_id)2622 -> 0.0086s2623-- add_index(:requests, :branch_id, {:algorithm=>:concurrently})2624 -> 0.0015s2625-- index_exists?(:repositories, :current_build_id)2626 -> 0.0093s2627-- add_index(:repositories, :current_build_id, {:algorithm=>:concurrently})2628 -> 0.0019s2629-- index_exists?(:repositories, :last_build_id)2630 -> 0.0095s2631-- add_index(:repositories, :last_build_id, {:algorithm=>:concurrently})2632 -> 0.0021s2633-- index_exists?(:crons, :branch_id)2634 -> 0.0043s2635-- add_index(:crons, :branch_id, {:algorithm=>:concurrently})2636 -> 0.0014s2637== 20181126080000 AddIndexesForForeignKeys: migrated (0.1852s) ================2639== 20181128120000 AddUniqueIndexToBranchesOnRepositoryIdAndName: migrating ====2640-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_on_repository_id_and_name ON branches(repository_id, name)")2641 -> 0.0017s2642== 20181128120000 AddUniqueIndexToBranchesOnRepositoryIdAndName: migrated (0.0018s)2644== 20181203075818 AddUniqueNameColumnToBranches: migrating ====================2645-- add_column(:branches, :unique_name, :text)2646 -> 0.0012s2647== 20181203075818 AddUniqueNameColumnToBranches: migrated (0.0014s) ===========2649== 20181203075819 AddSetUniqueNameTriggerToBranches: migrating ================2650-- 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")2651 -> 0.0013s2652== 20181203075819 AddSetUniqueNameTriggerToBranches: migrated (0.0016s) =======2654== 20181203080356 CreateIndexOnBranchesUniqueNameAndRepositoryId: migrating ===2655-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_branches_repository_id_unique_name ON branches(repository_id, unique_name) WHERE unique_name IS NOT NULL")2656 -> 0.0011s2657== 20181203080356 CreateIndexOnBranchesUniqueNameAndRepositoryId: migrated (0.0012s)2659== 20181205152712 AddUniqueIndexToCronsOnBranchId: migrating ==================2660-- execute("DROP INDEX CONCURRENTLY index_crons_on_branch_id")2661 -> 0.0009s2662-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_crons_on_branch_id ON crons(branch_id)")2663 -> 0.0009s2664== 20181205152712 AddUniqueIndexToCronsOnBranchId: migrated (0.0019s) =========2666== 20190102000000 AddOrganizationPreferences: migrating =======================2667-- change_table(:organizations)2668 -> 0.0020s2669== 20190102000000 AddOrganizationPreferences: migrated (0.0020s) ==============2671== 20190102000001 ChangeOrganizationPreferencesDefault: migrating =============2672-- change_column_default(:organizations, :preferences, {})2673 -> 0.0048s2674== 20190102000001 ChangeOrganizationPreferencesDefault: migrated (0.0049s) ====2676== 20190109000000 CreateBetaMigrationRequestTable: migrating ==================2677-- create_table(:beta_migration_requests, {:id=>:integer})2678 -> 0.0034s2679-- add_index(:beta_migration_requests, [:owner_type, :owner_id])2680 -> 0.0008s2681== 20190109000000 CreateBetaMigrationRequestTable: migrated (0.0044s) =========2683== 20190118000000 AddBetaMigrationRequestColumnToOrganizations: migrating =====2684-- add_column(:organizations, :beta_migration_request_id, :integer)2685 -> 0.0012s2686== 20190118000000 AddBetaMigrationRequestColumnToOrganizations: migrated (0.0013s)2688== 20190204000000 MakeSubscriptionOwnerNotNullable: migrating =================2689-- change_column_null(:subscriptions, :owner_type, false)2690 -> 0.0009s2691-- change_column_null(:subscriptions, :owner_id, false)2692 -> 0.0005s2693== 20190204000000 MakeSubscriptionOwnerNotNullable: migrated (0.0015s) ========2695== 20190313000000 RequestRawConfigsCreate: migrating ==========================2696-- create_table(:request_raw_configs, {:id=>:integer})2697 -> 0.0033s2698-- add_index(:request_raw_configs, [:repository_id, :key])2699 -> 0.0010s2700-- create_table(:request_raw_configurations, {:id=>:integer})2701 -> 0.0031s2702-- add_index(:request_raw_configurations, :request_id)2703 -> 0.0010s2704-- add_index(:request_raw_configurations, :request_raw_config_id)2705 -> 0.0010s2706== 20190313000000 RequestRawConfigsCreate: migrated (0.0098s) =================2708== 20190329093854 CreateGatekeeperWorkers: migrating ==========================2709-- create_table(:gatekeeper_workers)2710 -> 0.0025s2711-- execute("INSERT INTO gatekeeper_workers(id) SELECT generate_series(1,200) as id;")2712 -> 0.0011s2713== 20190329093854 CreateGatekeeperWorkers: migrated (0.0037s) =================2715== 20190409133118 AddUniqueNumberColumnToBuilds: migrating ====================2716-- add_column(:builds, :unique_number, :int)2717 -> 0.0012s2718== 20190409133118 AddUniqueNumberColumnToBuilds: migrated (0.0013s) ===========2720== 20190409133320 AddSetUniqueNumberTriggerToBuilds: migrating ================2721-- 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")2722 -> 0.0014s2723== 20190409133320 AddSetUniqueNumberTriggerToBuilds: migrated (0.0016s) =======2725== 20190409133444 CreateUniqueIndexOnRepositoryIdAndNumberOnBuilds: migrating =2726-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_builds_repository_id_unique_number ON builds(repository_id, unique_number) WHERE unique_number IS NOT NULL")2727 -> 0.0013s2728== 20190409133444 CreateUniqueIndexOnRepositoryIdAndNumberOnBuilds: migrated (0.0014s)2730== 20190410121039 MakeSetUniqueNumberTriggerRunOnlyOnInsert: migrating ========2731-- 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")2732 -> 0.0011s2733== 20190410121039 MakeSetUniqueNumberTriggerRunOnlyOnInsert: migrated (0.0012s)2735== 20190416071629 RemoveUniqueNameFromBranches: migrating =====================2736-- execute("drop index concurrently index_branches_repository_id_unique_name;")2737 -> 0.0010s2738-- execute("DROP TRIGGER IF EXISTS set_unique_name_on_branches ON branches;\nDROP FUNCTION IF EXISTS set_unique_name();\n\n")2739 -> 0.0006s2740-- remove_column(:branches, :unique_name)2741 -> 0.0006s2742== 20190416071629 RemoveUniqueNameFromBranches: migrated (0.0026s) ============2744== 20190417072423 AlterBuildsUniqueNumberIndex: migrating =====================2745-- 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")2746 -> 0.0014s2747-- execute("DROP INDEX CONCURRENTLY index_builds_repository_id_unique_number")2748 -> 0.0011s2749-- execute("ALTER INDEX index_builds_repository_id_unique_number_new RENAME TO index_builds_repository_id_unique_number")2750 -> 0.0005s2751== 20190417072423 AlterBuildsUniqueNumberIndex: migrated (0.0031s) ============2753== 20190417072838 ReinstallSetUniqueNumberTrigger: migrating ==================2754-- execute("DROP TRIGGER IF EXISTS set_unique_number_on_builds ON builds;\nDROP FUNCTION IF EXISTS set_unique_number();\n")2755 -> 0.0011s2756-- 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")2757 -> 0.0010s2758== 20190417072838 ReinstallSetUniqueNumberTrigger: migrated (0.0024s) =========2760== 20190502175059 AddMergeableStateToPullRequests: migrating ==================2761-- add_column(:pull_requests, :mergeable_state, :string)2762 -> 0.0012s2763== 20190502175059 AddMergeableStateToPullRequests: migrated (0.0013s) =========2765== 20190510121000 AddReposIndexOnLowerOwnerNameAndName: migrating =============2766-- 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")2767 -> 0.0019s2768== 20190510121000 AddReposIndexOnLowerOwnerNameAndName: migrated (0.0020s) ====2770== 20190605121000 AddHistoryMigrationStatusToRepositories: migrating ==========2771-- add_column(:repositories, :history_migration_status, :string)2772 -> 0.0010s2773== 20190605121000 AddHistoryMigrationStatusToRepositories: migrated (0.0012s) =2775== 20190605155459 AddPullRequestMergeableToRequests: migrating ================2776-- add_column(:requests, :pull_request_mergeable, :string)2777 -> 0.0010s2778== 20190605155459 AddPullRequestMergeableToRequests: migrated (0.0011s) =======2780== 20190613120000 SoftDeleteRepositoryAlongWithItsData: migrating =============2781-- execute("create table if not exists deleted_builds (like builds)")2782 -> 0.0024s2783-- execute("create table if not exists deleted_stages (like stages)")2784 -> 0.0020s2785-- execute("create table if not exists deleted_jobs (like jobs)")2786 -> 0.0026s2787-- execute("create table if not exists deleted_requests (like requests)")2788 -> 0.0026s2789-- execute("create table if not exists deleted_commits (like commits)")2790 -> 0.0022s2791-- execute("create table if not exists deleted_pull_requests (like pull_requests)")2792 -> 0.0023s2793-- execute("create table if not exists deleted_job_configs (like job_configs)")2794 -> 0.0020s2795-- execute("create table if not exists deleted_build_configs (like build_configs)")2796 -> 0.0020s2797-- execute("create table if not exists deleted_request_configs (like request_configs)")2798 -> 0.0017s2799-- execute("create table if not exists deleted_request_payloads (like request_payloads)")2800 -> 0.0017s2801-- execute("create table if not exists deleted_ssl_keys (like ssl_keys)")2802 -> 0.0020s2803-- execute("create table if not exists deleted_tags (like tags)")2804 -> 0.0020s2805-- 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")2806 -> 0.0024s2807== 20190613120000 SoftDeleteRepositoryAlongWithItsData: migrated (0.0285s) ====2809== 20190618082559 AddVcsTypeToUser: migrating =================================2810-- add_column(:users, :vcs_type, :string, {:default=>nil})2811 -> 0.0022s2812-- execute("ALTER TABLE users ALTER COLUMN vcs_type SET DEFAULT 'GithubUser'")2813 -> 0.0007s2814-- select_value("SELECT id FROM users ORDER BY id DESC LIMIT 1")2815 -> 0.0018s2816-- execute("UPDATE users SET vcs_type = 'GithubUser' WHERE id BETWEEN 0 AND 5000")2817 -> 0.0011s2818== 20190618082559 AddVcsTypeToUser: migrated (0.0069s) ========================2820== 20190701082559 AddVcsTypeToRepository: migrating ===========================2821-- add_column(:repositories, :vcs_type, :string, {:default=>nil})2822 -> 0.0016s2823-- execute("ALTER TABLE repositories ALTER COLUMN vcs_type SET DEFAULT 'GithubRepository'")2824 -> 0.0006s2825-- select_value("SELECT id FROM repositories ORDER BY id DESC LIMIT 1")2826 -> 0.0010s2827-- execute("UPDATE repositories SET vcs_type = 'GithubRepository' WHERE id BETWEEN 0 AND 5000")2828 -> 0.0009s2829== 20190701082559 AddVcsTypeToRepository: migrated (0.0051s) ==================2831== 20190704082559 AddVcsTypeToOrganization: migrating =========================2832-- add_column(:organizations, :vcs_type, :string, {:default=>nil})2833 -> 0.0017s2834-- execute("ALTER TABLE organizations ALTER COLUMN vcs_type SET DEFAULT 'GithubOrganization'")2835 -> 0.0005s2836-- select_value("SELECT id FROM organizations ORDER BY id DESC LIMIT 1")2837 -> 0.0010s2838-- execute("UPDATE organizations SET vcs_type = 'GithubOrganization' WHERE id BETWEEN 0 AND 5000")2839 -> 0.0008s2840== 20190704082559 AddVcsTypeToOrganization: migrated (0.0053s) ================2842== 20190718092750 AddDeleteCascadeToForeignKeys: migrating ====================2843-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")2844 -> 0.0016s2845-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) ON DELETE CASCADE NOT VALID")2846 -> 0.0010s2847-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_request_id FOREIGN KEY (request_id) REFERENCES requests(id) ON DELETE CASCADE NOT VALID")2848 -> 0.0011s2849-- 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")2850 -> 0.0011s2851-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")2852 -> 0.0015s2853-- execute("ALTER TABLE builds ADD CONSTRAINT fk_new_builds_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE NOT VALID")2854 -> 0.0015s2855-- 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")2856 -> 0.0014s2857-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_new_jobs_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")2858 -> 0.0016s2859-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_new_jobs_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) ON DELETE CASCADE NOT VALID")2860 -> 0.0015s2861-- execute("ALTER TABLE jobs ADD CONSTRAINT fk_new_jobs_on_stage_id FOREIGN KEY (stage_id) REFERENCES stages(id) ON DELETE CASCADE NOT VALID")2862 -> 0.0013s2863-- 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")2864 -> 0.0013s2865-- execute("ALTER TABLE branches ADD CONSTRAINT fk_new_branches_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")2866 -> 0.0015s2867-- execute("ALTER TABLE tags ADD CONSTRAINT fk_new_tags_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")2868 -> 0.0015s2869-- execute("ALTER TABLE commits ADD CONSTRAINT fk_new_commits_on_repository_id FOREIGN KEY (repository_id) REFERENCES repositories(id) ON DELETE CASCADE NOT VALID")2870 -> 0.0015s2871-- execute("ALTER TABLE commits ADD CONSTRAINT fk_new_commits_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")2872 -> 0.0013s2873-- execute("ALTER TABLE commits ADD CONSTRAINT fk_new_commits_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE NOT VALID")2874 -> 0.0012s2875-- execute("ALTER TABLE crons ADD CONSTRAINT fk_new_crons_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")2876 -> 0.0012s2877-- 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")2878 -> 0.0010s2879-- 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")2880 -> 0.0013s2881-- 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")2882 -> 0.0012s2883-- 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")2884 -> 0.0014s2885-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_commit_id FOREIGN KEY (commit_id) REFERENCES commits(id) ON DELETE CASCADE NOT VALID")2886 -> 0.0013s2887-- 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")2888 -> 0.0015s2889-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_branch_id FOREIGN KEY (branch_id) REFERENCES branches(id) ON DELETE CASCADE NOT VALID")2890 -> 0.0015s2891-- execute("ALTER TABLE requests ADD CONSTRAINT fk_new_requests_on_tag_id FOREIGN KEY (tag_id) REFERENCES tags(id) ON DELETE CASCADE NOT VALID")2892 -> 0.0014s2893-- 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")2894 -> 0.0013s2895-- execute("ALTER TABLE stages ADD CONSTRAINT fk_new_stages_on_build_id FOREIGN KEY (build_id) REFERENCES builds(id) ON DELETE CASCADE NOT VALID")2896 -> 0.0015s2897-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_repository_id")2898 -> 0.0025s2899-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_commit_id")2900 -> 0.0017s2901-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_request_id")2902 -> 0.0018s2903-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_pull_request_id")2904 -> 0.0014s2905-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_branch_id")2906 -> 0.0017s2907-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_tag_id")2908 -> 0.0013s2909-- execute("ALTER TABLE builds VALIDATE CONSTRAINT fk_new_builds_on_config_id")2910 -> 0.0014s2911-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_repository_id")2912 -> 0.0016s2913-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_commit_id")2914 -> 0.0011s2915-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_stage_id")2916 -> 0.0011s2917-- execute("ALTER TABLE jobs VALIDATE CONSTRAINT fk_new_jobs_on_config_id")2918 -> 0.0012s2919-- execute("ALTER TABLE branches VALIDATE CONSTRAINT fk_new_branches_on_repository_id")2920 -> 0.0012s2921-- execute("ALTER TABLE tags VALIDATE CONSTRAINT fk_new_tags_on_repository_id")2922 -> 0.0011s2923-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_new_commits_on_repository_id")2924 -> 0.0012s2925-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_new_commits_on_branch_id")2926 -> 0.0011s2927-- execute("ALTER TABLE commits VALIDATE CONSTRAINT fk_new_commits_on_tag_id")2928 -> 0.0011s2929-- execute("ALTER TABLE crons VALIDATE CONSTRAINT fk_new_crons_on_branch_id")2930 -> 0.0010s2931-- execute("ALTER TABLE job_configs VALIDATE CONSTRAINT fk_new_job_configs_on_repository_id")2932 -> 0.0010s2933-- execute("ALTER TABLE build_configs VALIDATE CONSTRAINT fk_new_build_configs_on_repository_id")2934 -> 0.0011s2935-- execute("ALTER TABLE pull_requests VALIDATE CONSTRAINT fk_new_pull_requests_on_repository_id")2936 -> 0.0011s2937-- execute("ALTER TABLE ssl_keys VALIDATE CONSTRAINT fk_new_ssl_keys_on_repository_id")2938 -> 0.0011s2939-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_commit_id")2940 -> 0.0012s2941-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_pull_request_id")2942 -> 0.0011s2943-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_branch_id")2944 -> 0.0011s2945-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_tag_id")2946 -> 0.0011s2947-- execute("ALTER TABLE requests VALIDATE CONSTRAINT fk_new_requests_on_config_id")2948 -> 0.0011s2949-- execute("ALTER TABLE stages VALIDATE CONSTRAINT fk_new_stages_on_build_id")2950 -> 0.0012s2951-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_repository_id")2952 -> 0.0015s2953-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_commit_id")2954 -> 0.0014s2955-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_request_id")2956 -> 0.0011s2957-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_pull_request_id")2958 -> 0.0012s2959-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_branch_id")2960 -> 0.0011s2961-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_tag_id")2962 -> 0.0012s2963-- execute("ALTER TABLE builds DROP CONSTRAINT fk_builds_on_config_id")2964 -> 0.0012s2965-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_repository_id")2966 -> 0.0014s2967-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_commit_id")2968 -> 0.0012s2969-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_stage_id")2970 -> 0.0010s2971-- execute("ALTER TABLE jobs DROP CONSTRAINT fk_jobs_on_config_id")2972 -> 0.0011s2973-- execute("ALTER TABLE branches DROP CONSTRAINT fk_branches_on_repository_id")2974 -> 0.0014s2975-- execute("ALTER TABLE tags DROP CONSTRAINT fk_tags_on_repository_id")2976 -> 0.0013s2977-- execute("ALTER TABLE commits DROP CONSTRAINT fk_commits_on_repository_id")2978 -> 0.0014s2979-- execute("ALTER TABLE commits DROP CONSTRAINT fk_commits_on_branch_id")2980 -> 0.0011s2981-- execute("ALTER TABLE commits DROP CONSTRAINT fk_commits_on_tag_id")2982 -> 0.0011s2983-- execute("ALTER TABLE crons DROP CONSTRAINT fk_crons_on_branch_id")2984 -> 0.0011s2985-- execute("ALTER TABLE job_configs DROP CONSTRAINT fk_job_configs_on_repository_id")2986 -> 0.0012s2987-- execute("ALTER TABLE build_configs DROP CONSTRAINT fk_build_configs_on_repository_id")2988 -> 0.0011s2989-- execute("ALTER TABLE pull_requests DROP CONSTRAINT fk_pull_requests_on_repository_id")2990 -> 0.0010s2991-- execute("ALTER TABLE ssl_keys DROP CONSTRAINT fk_ssl_keys_on_repository_id")2992 -> 0.0010s2993-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_commit_id")2994 -> 0.0013s2995-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_pull_request_id")2996 -> 0.0010s2997-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_branch_id")2998 -> 0.0010s2999-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_tag_id")3000 -> 0.0011s3001-- execute("ALTER TABLE requests DROP CONSTRAINT fk_requests_on_config_id")3002 -> 0.0011s3003-- execute("ALTER TABLE stages DROP CONSTRAINT fk_stages_on_build_id")3004 -> 0.0009s3005-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_repository_id TO fk_builds_on_repository_id")3006 -> 0.0006s3007-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_commit_id TO fk_builds_on_commit_id")3008 -> 0.0005s3009-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_request_id TO fk_builds_on_request_id")3010 -> 0.0006s3011-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_pull_request_id TO fk_builds_on_pull_request_id")3012 -> 0.0005s3013-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_branch_id TO fk_builds_on_branch_id")3014 -> 0.0006s3015-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_tag_id TO fk_builds_on_tag_id")3016 -> 0.0005s3017-- execute("ALTER TABLE builds RENAME CONSTRAINT fk_new_builds_on_config_id TO fk_builds_on_config_id")3018 -> 0.0006s3019-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_repository_id TO fk_jobs_on_repository_id")3020 -> 0.0003s3021-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_commit_id TO fk_jobs_on_commit_id")3022 -> 0.0006s3023-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_stage_id TO fk_jobs_on_stage_id")3024 -> 0.0005s3025-- execute("ALTER TABLE jobs RENAME CONSTRAINT fk_new_jobs_on_config_id TO fk_jobs_on_config_id")3026 -> 0.0006s3027-- execute("ALTER TABLE branches RENAME CONSTRAINT fk_new_branches_on_repository_id TO fk_branches_on_repository_id")3028 -> 0.0007s3029-- execute("ALTER TABLE tags RENAME CONSTRAINT fk_new_tags_on_repository_id TO fk_tags_on_repository_id")3030 -> 0.0005s3031-- execute("ALTER TABLE commits RENAME CONSTRAINT fk_new_commits_on_repository_id TO fk_commits_on_repository_id")3032 -> 0.0005s3033-- execute("ALTER TABLE commits RENAME CONSTRAINT fk_new_commits_on_branch_id TO fk_commits_on_branch_id")3034 -> 0.0005s3035-- execute("ALTER TABLE commits RENAME CONSTRAINT fk_new_commits_on_tag_id TO fk_commits_on_tag_id")3036 -> 0.0005s3037-- execute("ALTER TABLE crons RENAME CONSTRAINT fk_new_crons_on_branch_id TO fk_crons_on_branch_id")3038 -> 0.0005s3039-- execute("ALTER TABLE job_configs RENAME CONSTRAINT fk_new_job_configs_on_repository_id TO fk_job_configs_on_repository_id")3040 -> 0.0005s3041-- execute("ALTER TABLE build_configs RENAME CONSTRAINT fk_new_build_configs_on_repository_id TO fk_build_configs_on_repository_id")3042 -> 0.0005s3043-- execute("ALTER TABLE pull_requests RENAME CONSTRAINT fk_new_pull_requests_on_repository_id TO fk_pull_requests_on_repository_id")3044 -> 0.0005s3045-- execute("ALTER TABLE ssl_keys RENAME CONSTRAINT fk_new_ssl_keys_on_repository_id TO fk_ssl_keys_on_repository_id")3046 -> 0.0004s3047-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_commit_id TO fk_requests_on_commit_id")3048 -> 0.0004s3049-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_pull_request_id TO fk_requests_on_pull_request_id")3050 -> 0.0005s3051-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_branch_id TO fk_requests_on_branch_id")3052 -> 0.0005s3053-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_tag_id TO fk_requests_on_tag_id")3054 -> 0.0006s3055-- execute("ALTER TABLE requests RENAME CONSTRAINT fk_new_requests_on_config_id TO fk_requests_on_config_id")3056 -> 0.0005s3057-- execute("ALTER TABLE stages RENAME CONSTRAINT fk_new_stages_on_build_id TO fk_stages_on_build_id")3058 -> 0.0005s3059== 20190718092750 AddDeleteCascadeToForeignKeys: migrated (0.1206s) ===========3061== 20190718100426 UpdateSoftDeleteProcedure: migrating ========================3062-- 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")3063 -> 0.0026s3064== 20190718100426 UpdateSoftDeleteProcedure: migrated (0.0030s) ===============3066== 20190725103113 UpdateSoftDelete: migrating =================================3067-- execute("create table deleted_request_yaml_configs (like request_yaml_configs)")3068 -> 0.0020s3069-- 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")3070 -> 0.0024s3071== 20190725103113 UpdateSoftDelete: migrated (0.0047s) ========================3073== 20190725105934 AddOrgIdToConfigs: migrating ================================3074-- add_column(:job_configs, :org_id, :bigint)3075 -> 0.0016s3076-- add_column(:deleted_job_configs, :org_id, :bigint)3077 -> 0.0008s3078-- add_column(:build_configs, :org_id, :bigint)3079 -> 0.0007s3080-- add_column(:deleted_build_configs, :org_id, :bigint)3081 -> 0.0007s3082-- add_column(:request_configs, :org_id, :bigint)3083 -> 0.0008s3084-- add_column(:deleted_request_configs, :org_id, :bigint)3085 -> 0.0012s3086-- add_column(:request_yaml_configs, :org_id, :bigint)3087 -> 0.0006s3088-- add_column(:deleted_request_yaml_configs, :org_id, :bigint)3089 -> 0.0007s3090-- add_column(:request_payloads, :org_id, :bigint)3091 -> 0.0006s3092-- add_column(:deleted_request_payloads, :org_id, :bigint)3093 -> 0.0007s3094-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_job_configs_on_org_id ON job_configs (org_id)")3095 -> 0.0010s3096-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_build_configs_on_org_id ON build_configs (org_id)")3097 -> 0.0010s3098-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_configs_on_org_id ON request_configs (org_id)")3099 -> 0.0009s3100-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_yaml_configs_on_org_id ON request_yaml_configs (org_id)")3101 -> 0.0010s3102-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_payloads_on_org_id ON request_payloads (org_id)")3103 -> 0.0014s3104== 20190725105934 AddOrgIdToConfigs: migrated (0.0146s) =======================3106== 20190729105934 AddOrgAndComIdsToRawConfigs: migrating ======================3107-- add_column(:request_raw_configs, :org_id, :bigint)3108 -> 0.0008s3109-- add_column(:request_raw_configurations, :org_id, :bigint)3110 -> 0.0007s3111-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_raw_configs_on_org_id ON request_raw_configs (org_id)")3112 -> 0.0009s3113-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_raw_configurations_on_org_id ON request_raw_configurations (org_id)")3114 -> 0.0009s3115== 20190729105934 AddOrgAndComIdsToRawConfigs: migrated (0.0036s) =============3117== 20190801120510 AddMoreDeletedTables: migrating =============================3118-- execute("create table if not exists deleted_request_raw_configs (like request_raw_configs)")3119 -> 0.0024s3120-- execute("create table if not exists deleted_request_raw_configurations (like request_raw_configurations)")3121 -> 0.0013s3122-- 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")3123 -> 0.0019s3124== 20190801120510 AddMoreDeletedTables: migrated (0.0062s) ====================3126== 20190815152336 AddComIdToMoreTables: migrating =============================3127-- add_column(:request_configs, :com_id, :bigint)3128 -> 0.0008s3129-- add_column(:request_yaml_configs, :com_id, :bigint)3130 -> 0.0007s3131-- add_column(:deleted_request_configs, :com_id, :bigint)3132 -> 0.0007s3133-- add_column(:deleted_request_yaml_configs, :com_id, :bigint)3134 -> 0.0006s3135-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_configs_on_com_id ON request_configs (com_id)")3136 -> 0.0010s3137-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_request_yaml_configs_on_com_id ON request_yaml_configs (com_id)")3138 -> 0.0010s3139== 20190815152336 AddComIdToMoreTables: migrated (0.0052s) ====================3141== 20190815164320 AddComIdToBuildConfigs: migrating ===========================3142-- add_column(:build_configs, :com_id, :bigint)3143 -> 0.0008s3144-- add_column(:deleted_build_configs, :com_id, :bigint)3145 -> 0.0007s3146-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_build_configs_on_com_id ON build_configs (com_id)")3147 -> 0.0009s3148== 20190815164320 AddComIdToBuildConfigs: migrated (0.0027s) ==================3150== 20190815172205 AddComIdToJobConfigs: migrating =============================3151-- add_column(:job_configs, :com_id, :bigint)3152 -> 0.0008s3153-- add_column(:deleted_job_configs, :com_id, :bigint)3154 -> 0.0007s3155-- execute("CREATE UNIQUE INDEX CONCURRENTLY index_job_configs_on_com_id ON job_configs (com_id)")3156 -> 0.0014s3157== 20190815172205 AddComIdToJobConfigs: migrated (0.0030s) ====================3159== 20190819082558 AddVcsIdToUser: migrating ===================================3160-- add_column(:users, :vcs_id, :string, {:default=>nil})3161 -> 0.0089s3162-- execute("CREATE INDEX CONCURRENTLY index_users_on_vcs_id_and_vcs_type ON users (vcs_id, vcs_type);")3163 -> 0.0012s3164== 20190819082558 AddVcsIdToUser: migrated (0.0104s) ==========================3166== 20190819082559 AddVcsIdToRepository: migrating =============================3167-- add_column(:repositories, :vcs_id, :string, {:default=>nil})3168 -> 0.0020s3169-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_vcs_id_and_vcs_type ON repositories (vcs_id, vcs_type);")3170 -> 0.0013s3171== 20190819082559 AddVcsIdToRepository: migrated (0.0034s) ====================3173== 20190820082431 AddVcsIdToOrganization: migrating ===========================3174-- add_column(:organizations, :vcs_id, :string, {:default=>nil})3175 -> 0.0016s3176-- execute("CREATE INDEX CONCURRENTLY index_organizations_on_vcs_id_and_vcs_type ON organizations (vcs_id, vcs_type);")3177 -> 0.0011s3178== 20190820082431 AddVcsIdToOrganization: migrated (0.0028s) ==================3180== 20190913092543 CopyVcsIdForRepository: migrating ===========================3181-- select_value("SELECT id FROM repositories ORDER BY id DESC LIMIT 1")3182 -> 0.0011s3183-- execute("UPDATE \"repositories\" SET vcs_id = github_id WHERE id BETWEEN 0 AND 5000")3184 -> 0.0011s3185== 20190913092543 CopyVcsIdForRepository: migrated (0.0028s) ==================3187== 20190913092554 CopyVcsIdForUser: migrating =================================3188-- select_value("SELECT id FROM users ORDER BY id DESC LIMIT 1")3189 -> 0.0010s3190-- execute("UPDATE \"users\" SET vcs_id = github_id WHERE id BETWEEN 0 AND 5000")3191 -> 0.0009s3192== 20190913092554 CopyVcsIdForUser: migrated (0.0027s) ========================3194== 20190913092565 CopyVcsIdForOrganization: migrating =========================3195-- select_value("SELECT id FROM organizations ORDER BY id DESC LIMIT 1")3196 -> 0.0008s3197-- execute("UPDATE \"organizations\" SET vcs_id = github_id WHERE id BETWEEN 0 AND 5000")3198 -> 0.0009s3199== 20190913092565 CopyVcsIdForOrganization: migrated (0.0023s) ================3201== 20190920160300 MessagesAddTypeSourceLine: migrating ========================3202-- add_column(:messages, :type, :string, {:default=>nil})3203 -> 0.0013s3204-- add_column(:messages, :src, :string, {:default=>nil})3205 -> 0.0013s3206-- add_column(:messages, :line, :integer, {:default=>nil})3207 -> 0.0011s3208== 20190920160300 MessagesAddTypeSourceLine: migrated (0.0040s) ===============3210== 20191112000000 ReposAddFork: migrating =====================================3211-- add_column(:repositories, :fork, :boolean, {:default=>nil})3212 -> 0.0014s3213== 20191112000000 ReposAddFork: migrated (0.0015s) ============================3215== 20191112172015 AddVcsIndexToRepositories: migrating ========================3216-- add_index(:repositories, [:vcs_type, :vcs_id], {:algorithm=>:concurrently})3217 -> 0.0015s3218== 20191112172015 AddVcsIndexToRepositories: migrated (0.0015s) ===============3220== 20191112172332 AddVcsIndexToUsers: migrating ===============================3221-- add_index(:users, [:vcs_type, :vcs_id], {:algorithm=>:concurrently})3222 -> 0.0015s3223== 20191112172332 AddVcsIndexToUsers: migrated (0.0015s) ======================3225== 20191219091445 AddHeadRepoVcsIdToPullRequest: migrating ====================3226-- add_column(:pull_requests, :head_repo_vcs_id, :string, {:default=>nil})3227 -> 0.0015s3228-- execute("CREATE INDEX CONCURRENTLY index_pull_requests_on_head_repo_vcs_id ON pull_requests (head_repo_vcs_id);")3229 -> 0.0010s3230== 20191219091445 AddHeadRepoVcsIdToPullRequest: migrated (0.0026s) ===========3232== 20191219091446 AddHeadRepoVcsIdToDeletedPullRequest: migrating =============3233-- add_column(:deleted_pull_requests, :head_repo_vcs_id, :string, {:default=>nil})3234 -> 0.0012s3235-- execute("CREATE INDEX CONCURRENTLY index_deleted_pull_requests_on_head_repo_vcs_id ON deleted_pull_requests (head_repo_vcs_id);")3236 -> 0.0009s3237== 20191219091446 AddHeadRepoVcsIdToDeletedPullRequest: migrated (0.0033s) ====3239== 20200122000000 AddConfigsJson: migrating ===================================3240-- add_column(:request_configs, :config_json, :json)3241 -> 0.0010s3242-- add_column(:build_configs, :config_json, :json)3243 -> 0.0007s3244-- add_column(:job_configs, :config_json, :json)3245 -> 0.0006s3246-- add_column(:deleted_request_configs, :config_json, :json)3247 -> 0.0006s3248-- add_column(:deleted_build_configs, :config_json, :json)3249 -> 0.0006s3250-- add_column(:deleted_job_configs, :config_json, :json)3251 -> 0.0006s3252== 20200122000000 AddConfigsJson: migrated (0.0045s) ==========================3254== 20200127000000 DropJobConfigsGpu: migrating ================================3255-- execute("DROP MATERIALIZED VIEW job_configs_gpu\n")3256 -> 0.0010s3257== 20200127000000 DropJobConfigsGpu: migrated (0.0011s) =======================3259== 20200127000001 RenameConfigsJson: migrating ================================3260-- remove_column(:request_configs, :config)3261 -> 0.0010s3262-- rename_column(:request_configs, :config_json, :config)3263 -> 0.0039s3264-- remove_column(:build_configs, :config)3265 -> 0.0006s3266-- rename_column(:build_configs, :config_json, :config)3267 -> 0.0041s3268-- remove_column(:job_configs, :config)3269 -> 0.0007s3270-- rename_column(:job_configs, :config_json, :config)3271 -> 0.0040s3272-- remove_column(:deleted_request_configs, :config)3273 -> 0.0006s3274-- rename_column(:deleted_request_configs, :config_json, :config)3275 -> 0.0018s3276-- remove_column(:deleted_build_configs, :config)3277 -> 0.0006s3278-- rename_column(:deleted_build_configs, :config_json, :config)3279 -> 0.0015s3280-- remove_column(:deleted_job_configs, :config)3281 -> 0.0005s3282-- rename_column(:deleted_job_configs, :config_json, :config)3283 -> 0.0015s3284== 20200127000001 RenameConfigsJson: migrated (0.0224s) =======================3286== 20200214144655 AddIndexToJobVersionsOnJobId: migrating =====================3287-- add_index(:job_versions, :job_id, {:algorithm=>:concurrently})3288 -> 0.0012s3289== 20200214144655 AddIndexToJobVersionsOnJobId: migrated (0.0013s) ============3291== 20200225085734 AddVcsSlugToRepository: migrating ===========================3292-- add_column(:repositories, :vcs_slug, :string, {:default=>nil})3293 -> 0.0015s3294== 20200225085734 AddVcsSlugToRepository: migrated (0.0016s) ==================3296== 20200227085734 AddVcsSourceHostToRepository: migrating =====================3297-- add_column(:repositories, :vcs_source_host, :string, {:default=>nil})3298 -> 0.0014s3299== 20200227085734 AddVcsSourceHostToRepository: migrated (0.0015s) ============3301== 20200227085736 AddVcsIndexes: migrating ====================================3302-- 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")3303 -> 0.0015s3304== 20200227085736 AddVcsIndexes: migrated (0.0016s) ===========================3306== 20200227085737 AddRepositoryNameAndSlugIndex: migrating ====================3307-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_slug_or_names ON repositories (vcs_slug, owner_name, name) WHERE invalidated_at IS NULL")3308 -> 0.0013s3309== 20200227085737 AddRepositoryNameAndSlugIndex: migrated (0.0014s) ===========3311== 20200227085742 AddPullRequestSourceData: migrating =========================3312-- add_column(:pull_requests, :base_repo_slug, :string, {:default=>nil})3313 -> 0.0017s3314-- add_column(:pull_requests, :base_repo_vcs_id, :string, {:default=>nil})3315 -> 0.0012s3316-- add_column(:pull_requests, :base_ref, :string, {:default=>nil})3317 -> 0.0012s3318-- add_column(:deleted_pull_requests, :base_repo_slug, :string, {:default=>nil})3319 -> 0.0010s3320-- add_column(:deleted_pull_requests, :base_repo_vcs_id, :string, {:default=>nil})3321 -> 0.0010s3322-- add_column(:deleted_pull_requests, :base_ref, :string, {:default=>nil})3323 -> 0.0010s3324== 20200227085742 AddPullRequestSourceData: migrated (0.0076s) ================3326== 20200312184018 AddUserUtmParamsTable: migrating ============================3327-- create_table(:user_utm_params)3328 -> 0.0046s3329== 20200312184018 AddUserUtmParamsTable: migrated (0.0047s) ===================3331== 20200316085738 AddRepositoryVcsSlugIndex: migrating ========================3332-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_vcs_slug ON repositories (LOWER(vcs_slug))")3333 -> 0.0013s3334-- execute("CREATE INDEX CONCURRENTLY index_repositories_on_lower_vcs_slug_valid ON repositories (LOWER(vcs_slug)) WHERE invalidated_at IS NULL")3335 -> 0.0012s3336== 20200316085738 AddRepositoryVcsSlugIndex: migrated (0.0026s) ===============3338== 20200325115329 AddMultipleJobStateIndexesOrderByNewest: migrating ==========3339-- 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'")3340 -> 0.0013s3341-- 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'")3342 -> 0.0016s3343-- 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'")3344 -> 0.0011s3345-- 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'")3346 -> 0.0012s3347-- 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'")3348 -> 0.0014s3349-- 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'")3350 -> 0.0016s3351-- 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'")3352 -> 0.0017s3353-- 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'")3354 -> 0.0019s3355-- 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'")3356 -> 0.0018s3357== 20200325115329 AddMultipleJobStateIndexesOrderByNewest: migrated (0.0140s) =3359== 20200325130013 AddFunctionMostRecentJobIdsForUserRepositoriesByStates: migrating3360-- 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 ")3361 -> 0.0015s3362== 20200325130013 AddFunctionMostRecentJobIdsForUserRepositoriesByStates: migrated (0.0016s)3364== 20200330110527 AddFunctionMostRecentJobIdsForRepositoryByState: migrating ==3365-- 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 ")3366 -> 0.0010s3367== 20200330110527 AddFunctionMostRecentJobIdsForRepositoryByState: migrated (0.0011s)3369== 20200406121218 AddIndexJobsOnRepositoryIdOrderByNewest: migrating ==========3370-- execute("CREATE INDEX CONCURRENTLY IF NOT EXISTS index_jobs_on_repository_id_order_by_newest on jobs (repository_id, id desc)")3371 -> 0.0012s3372== 20200406121218 AddIndexJobsOnRepositoryIdOrderByNewest: migrated (0.0012s) =3374== 20200424000000 RequestRawConfigurationsAddMergeMode: migrating =============3375-- add_column(:request_raw_configurations, :merge_mode, :string, {:default=>nil})3376 -> 0.0012s3377-- add_column(:deleted_request_raw_configurations, :merge_mode, :string, {:default=>nil})3378 -> 0.0013s3379== 20200424000000 RequestRawConfigurationsAddMergeMode: migrated (0.0026s) ====3381== 20200527123653 AddColumnPriorityToTableJobsAndDeletedJobs: migrating =======3382-- add_column(:jobs, :priority, :integer, {:default=>nil})3383 -> 0.0012s3384-- add_column(:deleted_jobs, :priority, :integer, {:default=>nil})3385 -> 0.0011s3386== 20200527123653 AddColumnPriorityToTableJobsAndDeletedJobs: migrated (0.0025s)3388== 20200928143126 AddBuildTriggerPermissions: migrating =======================3389-- add_column(:memberships, :build_permission, :boolean, {:default=>nil})3390 -> 0.0011s3391-- add_column(:permissions, :build, :boolean, {:default=>nil})3392 -> 0.0011s3393== 20200928143126 AddBuildTriggerPermissions: migrated (0.0024s) ==============3395== 20202427123653 AddColumnHasLocalRegistrationToTableSubscriptions: migrating3396-- add_column(:subscriptions, :has_local_registration, :boolean, {:default=>nil})3397 -> 0.0011s3398== 20202427123653 AddColumnHasLocalRegistrationToTableSubscriptions: migrated (0.0012s)3400== 20210203130200 CreateBuildBackupsTable: migrating ==========================3401-- create_table(:build_backups, {:id=>:integer})3402 -> 0.0032s3403== 20210203130200 CreateBuildBackupsTable: migrated (0.0034s) =================3405== 20210203143155 AddConfirmationFieldsToUser: migrating ======================3406-- add_column(:users, :confirmed_at, :timestamp, {:precision=>nil})3407 -> 0.0007s3408-- add_column(:users, :token_expires_at, :timestamp, {:precision=>nil})3409 -> 0.0008s3410-- add_column(:users, :confirmation_token, :string)3411 -> 0.0008s3412-- add_index(:users, :confirmation_token)3413 -> 0.0011s3414== 20210203143155 AddConfirmationFieldsToUser: migrated (0.0037s) =============3416== 20210203143406 ConfirmCurrentUsers: migrating ==============================3417== 20210203143406 ConfirmCurrentUsers: migrated (0.0000s) =====================3419== 20210614140633 AddServerTypeToRepositories: migrating ======================3420-- add_column(:repositories, :server_type, :string, {:limit=>20})3421 -> 0.0012s3422== 20210614140633 AddServerTypeToRepositories: migrated (0.0012s) =============3424== 20220610092916 MostRecentJobIdsForUserRepositoriesByStatesLw: migrating ====3425-- 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 ")3426 -> 0.0011s3427== 20220610092916 MostRecentJobIdsForUserRepositoriesByStatesLw: migrated (0.0012s)3429== 20220621151453 AddColumnRestartedByToTableJobs: migrating ==================3430-- add_column(:jobs, :restarted_by, :integer, {:default=>nil})3431 -> 0.0015s3432-- add_column(:deleted_jobs, :restarted_by, :integer, {:default=>nil})3433 -> 0.0009s3434== 20220621151453 AddColumnRestartedByToTableJobs: migrated (0.0025s) =========3436== 20220722162400 CreateAuditsTable: migrating ================================3437-- create_table(:audits)3438 -> 0.0036s3439== 20220722162400 CreateAuditsTable: migrated (0.0038s) =======================3441== 20220825140522 CreateCustomKeysTable: migrating ============================3442-- create_table(:custom_keys)3443 -> 0.0044s3444== 20220825140522 CreateCustomKeysTable: migrated (0.0044s) ===================3446== 20220905144600 AddScanFailedAtToRepositories: migrating ====================3447-- add_column(:repositories, :scan_failed_at, :timestamp)3448 -> 0.0012s3449== 20220905144600 AddScanFailedAtToRepositories: migrated (0.0012s) ===========3451== 20221214171030 AddPurposeColumnToTokens: migrating =========================3452-- add_column(:tokens, :purpose, :integer, {:limit=>4, :default=>0})3453 -> 0.0046s3454== 20221214171030 AddPurposeColumnToTokens: migrated (0.0047s) ================3456== 20230208161446 AddCloneUrlToRepositories: migrating ========================3457-- add_column(:repositories, :clone_url, :string)3458 -> 0.0013s3459== 20230208161446 AddCloneUrlToRepositories: migrated (0.0014s) ===============3461== 20230505055250 RolifyCreateRoles: migrating ================================3462-- create_table(:roles)3463 -> 0.0047s3464-- create_table(:role_names)3465 -> 0.0032s3466-- create_table(:users_roles, {:id=>false})3467 -> 0.0040s3468-- add_index(:roles, :name)3469 -> 0.0008s3470-- add_index(:role_names, :name)3471 -> 0.0009s3472-- add_index(:roles, [:name, :resource_type, :resource_id])3473 -> 0.0008s3474-- add_index(:users_roles, [:user_id, :role_id])3475 -> 0.0008s3476== 20230505055250 RolifyCreateRoles: migrated (0.0159s) =======================3478== 20230505060110 CreatePolicies: migrating ===================================3479-- create_table(:policy_permissions)3480 -> 0.0035s3481-- create_table(:role_permissions, {:id=>false})3482 -> 0.0028s3483-- add_index(:policy_permissions, :name)3484 -> 0.0007s3485-- add_index(:role_permissions, [:role_name_id, :policy_permission_id])3486 -> 0.0008s3487== 20230505060110 CreatePolicies: migrated (0.0081s) ==========================3489== 20230713115855 CreatePermissionsSync: migrating ============================3490-- create_table(:permissions_syncs)3491 -> 0.0050s3492== 20230713115855 CreatePermissionsSync: migrated (0.0051s) ===================3494== 20231005111642 CreatePermissionsIndex: migrating ===========================3495-- add_index(:permissions_syncs, [:user_id, :resource_type, :resource_id], {:name=>"index_permissions_syncs_on_user_and_resource"})3496 -> 0.0013s3497-- add_index(:role_names, :role_type)3498 -> 0.0010s3499== 20231005111642 CreatePermissionsIndex: migrated (0.0030s) ==================3501 sets unique_number on INSERT3502 does not set unique_number on INSERT if 0 is given as a value3503 sets unique_number on UPDATE3504 does not set unique_number on UPDATE if unique_number is 03506set_updated_at trigger3507 jobs3508 sets updated_at on INSERT3509 sets updated_at on UPDATE3510 works also for new columns3511 builds3512 sets updated_at on INSERT3513 sets updated_at on UPDATE3514 works also for new columns3516soft delete repo3517 ensure that soft delete tables have the same fields that the originals3518 soft deleting a repo moves all of the related data to deleted_* tables3520Rake tasks3521 rake db:create3522 migrates the main db3523 rake db:schema:load3524 loads the main schema3526Deprecation Warnings:3528Using `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)>'.3531If you need more of the backtrace for any of these deprecations to3532identify where to make the necessary changes, you can configure3533`config.raise_errors_for_deprecations!`, and it will turn the3534deprecation warnings into errors, giving you the full backtrace.35361 deprecation warning total3538Finished in 22.98 seconds (files took 0.35948 seconds to load)353919 examples, 0 failures3541The command "bundle exec rspec spec" exited with 0.after_success3546<internal:/home/travis/.rvm/rubies/ruby-3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require': cannot load such file -- s3 (LoadError)3547 from <internal:/home/travis/.rvm/rubies/ruby-3.2.2/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'3548 from script/upload_structure.rb:5:in `<main>'3550Done. Your build exited with 0.