From 60241ce2ee7d1f283bdcfed8df2ca0bdb741b9e6 Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Wed, 10 Dec 2025 10:20:50 +0100 Subject: [PATCH] Upgrade Rails to 8.1 I'm trying to upgrade ruby-bench to Rails 8.1 and shipit is one of the benchmarks. --- .github/workflows/main.yml | 2 +- Gemfile.lock | 116 ++++++------ shipit-engine.gemspec | 2 +- test/dummy/config/application.rb | 2 +- test/dummy/db/schema.rb | 299 +++++++++++++++---------------- 5 files changed, 212 insertions(+), 209 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1b6a594a5..9c377b0b6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -146,7 +146,7 @@ jobs: export SHIPIT_GEM_PATH="${PWD}" mkdir /tmp/new-app cd /tmp/new-app - gem install rails -v '~> 8.0.2' --no-document + gem install rails -v '~> 8.1.1' --no-document rails new shipit --skip-action-cable --skip-turbolinks --skip-action-mailer --skip-active-storage --skip-webpack-install --skip-action-mailbox --skip-action-text -m "${SHIPIT_GEM_PATH}/template.rb" env: SHIPIT_EDGE: "1" diff --git a/Gemfile.lock b/Gemfile.lock index 90905fd17..a3955a63c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -16,7 +16,7 @@ PATH omniauth-github (~> 1.4) paquito pubsubstub (~> 0.2) - rails (~> 8.0.1) + rails (~> 8.1.1) rails-timeago (~> 2.13.0) rails_autolink (~> 1.1.6) rake @@ -33,29 +33,31 @@ PATH GEM remote: https://rubygems.org/ specs: - actioncable (8.0.2) - actionpack (= 8.0.2) - activesupport (= 8.0.2) + action_text-trix (2.1.15) + railties + actioncable (8.1.1) + actionpack (= 8.1.1) + activesupport (= 8.1.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (8.0.2) - actionpack (= 8.0.2) - activejob (= 8.0.2) - activerecord (= 8.0.2) - activestorage (= 8.0.2) - activesupport (= 8.0.2) + actionmailbox (8.1.1) + actionpack (= 8.1.1) + activejob (= 8.1.1) + activerecord (= 8.1.1) + activestorage (= 8.1.1) + activesupport (= 8.1.1) mail (>= 2.8.0) - actionmailer (8.0.2) - actionpack (= 8.0.2) - actionview (= 8.0.2) - activejob (= 8.0.2) - activesupport (= 8.0.2) + actionmailer (8.1.1) + actionpack (= 8.1.1) + actionview (= 8.1.1) + activejob (= 8.1.1) + activesupport (= 8.1.1) mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (8.0.2) - actionview (= 8.0.2) - activesupport (= 8.0.2) + actionpack (8.1.1) + actionview (= 8.1.1) + activesupport (= 8.1.1) nokogiri (>= 1.8.5) rack (>= 2.2.4) rack-session (>= 1.0.1) @@ -63,15 +65,16 @@ GEM rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) useragent (~> 0.16) - actiontext (8.0.2) - actionpack (= 8.0.2) - activerecord (= 8.0.2) - activestorage (= 8.0.2) - activesupport (= 8.0.2) + actiontext (8.1.1) + action_text-trix (~> 2.1.15) + actionpack (= 8.1.1) + activerecord (= 8.1.1) + activestorage (= 8.1.1) + activesupport (= 8.1.1) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (8.0.2) - activesupport (= 8.0.2) + actionview (8.1.1) + activesupport (= 8.1.1) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) @@ -79,29 +82,29 @@ GEM active_model_serializers (0.9.13) activemodel (>= 3.2) concurrent-ruby (~> 1.0) - activejob (8.0.2) - activesupport (= 8.0.2) + activejob (8.1.1) + activesupport (= 8.1.1) globalid (>= 0.3.6) - activemodel (8.0.2) - activesupport (= 8.0.2) - activerecord (8.0.2) - activemodel (= 8.0.2) - activesupport (= 8.0.2) + activemodel (8.1.1) + activesupport (= 8.1.1) + activerecord (8.1.1) + activemodel (= 8.1.1) + activesupport (= 8.1.1) timeout (>= 0.4.0) - activestorage (8.0.2) - actionpack (= 8.0.2) - activejob (= 8.0.2) - activerecord (= 8.0.2) - activesupport (= 8.0.2) + activestorage (8.1.1) + actionpack (= 8.1.1) + activejob (= 8.1.1) + activerecord (= 8.1.1) + activesupport (= 8.1.1) marcel (~> 1.0) - activesupport (8.0.2) + activesupport (8.1.1) base64 - benchmark (>= 0.3) bigdecimal concurrent-ruby (~> 1.0, >= 1.3.1) connection_pool (>= 2.2.5) drb i18n (>= 1.6, < 2) + json logger (>= 1.4.2) minitest (>= 5.1) securerandom (>= 0.3) @@ -118,7 +121,6 @@ GEM ice_nine (~> 0.11.0) thread_safe (~> 0.3, >= 0.3.1) base64 (0.3.0) - benchmark (0.4.1) bigdecimal (3.2.2) builder (3.3.0) byebug (11.1.3) @@ -283,20 +285,20 @@ GEM rackup (1.0.0) rack (< 3) webrick - rails (8.0.2) - actioncable (= 8.0.2) - actionmailbox (= 8.0.2) - actionmailer (= 8.0.2) - actionpack (= 8.0.2) - actiontext (= 8.0.2) - actionview (= 8.0.2) - activejob (= 8.0.2) - activemodel (= 8.0.2) - activerecord (= 8.0.2) - activestorage (= 8.0.2) - activesupport (= 8.0.2) + rails (8.1.1) + actioncable (= 8.1.1) + actionmailbox (= 8.1.1) + actionmailer (= 8.1.1) + actionpack (= 8.1.1) + actiontext (= 8.1.1) + actionview (= 8.1.1) + activejob (= 8.1.1) + activemodel (= 8.1.1) + activerecord (= 8.1.1) + activestorage (= 8.1.1) + activesupport (= 8.1.1) bundler (>= 1.15.0) - railties (= 8.0.2) + railties (= 8.1.1) rails-dom-testing (2.3.0) activesupport (>= 5.0.0) minitest @@ -311,13 +313,14 @@ GEM actionview (> 3.1) activesupport (> 3.1) railties (> 3.1) - railties (8.0.2) - actionpack (= 8.0.2) - activesupport (= 8.0.2) + railties (8.1.1) + actionpack (= 8.1.1) + activesupport (= 8.1.1) irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) thor (~> 1.0, >= 1.2.2) + tsort (>= 0.2) zeitwerk (~> 2.6) rainbow (3.1.1) rake (13.2.1) @@ -396,6 +399,7 @@ GEM thread_safe (0.3.6) tilt (2.2.0) timeout (0.4.1) + tsort (0.2.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) unicode-display_width (2.6.0) diff --git a/shipit-engine.gemspec b/shipit-engine.gemspec index dab8a8883..6e8dd6027 100644 --- a/shipit-engine.gemspec +++ b/shipit-engine.gemspec @@ -34,7 +34,7 @@ Gem::Specification.new do |s| s.add_dependency('omniauth-github', '~> 1.4') s.add_dependency('paquito') s.add_dependency('pubsubstub', '~> 0.2') - s.add_dependency('rails', '~> 8.0.1') + s.add_dependency('rails', '~> 8.1.1') s.add_dependency('rails_autolink', '~> 1.1.6') s.add_dependency('rails-timeago', '~> 2.13.0') s.add_dependency('rake') diff --git a/test/dummy/config/application.rb b/test/dummy/config/application.rb index 7a77a61e6..fc08dfc08 100644 --- a/test/dummy/config/application.rb +++ b/test/dummy/config/application.rb @@ -17,7 +17,7 @@ module Shipit class Application < Rails::Application - config.load_defaults 8.0 + config.load_defaults 8.1 config.active_record.encryption.support_sha1_for_non_deterministic_encryption = true end end diff --git a/test/dummy/db/schema.rb b/test/dummy/db/schema.rb index 00d2ed54c..f784bc6fc 100644 --- a/test/dummy/db/schema.rb +++ b/test/dummy/db/schema.rb @@ -10,75 +10,75 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.2].define(version: 2025_02_07_203053) do +ActiveRecord::Schema[8.1].define(version: 2025_02_07_203053) do create_table "api_clients", force: :cascade do |t| - t.text "permissions", limit: 65535 - t.integer "creator_id", limit: 4 t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.integer "creator_id", limit: 4 t.string "name", limit: 255, default: "" + t.text "permissions", limit: 65535 t.integer "stack_id", limit: 4 + t.datetime "updated_at", null: false t.index ["creator_id"], name: "index_api_clients_on_creator_id" end create_table "check_runs", force: :cascade do |t| - t.integer "stack_id", null: false t.integer "commit_id", null: false - t.bigint "github_id", null: false - t.string "name", null: false t.string "conclusion", limit: 20 - t.string "title", limit: 1024 + t.datetime "created_at", null: false t.string "details_url" + t.bigint "github_id", null: false + t.datetime "github_updated_at" t.string "html_url" - t.datetime "created_at", null: false + t.string "name", null: false + t.integer "stack_id", null: false + t.string "title", limit: 1024 t.datetime "updated_at", null: false - t.datetime "github_updated_at" t.index ["commit_id"], name: "index_check_runs_on_commit_id" t.index ["github_id", "commit_id"], name: "index_check_runs_on_github_id_and_commit_id", unique: true t.index ["stack_id"], name: "index_check_runs_on_stack_id" end create_table "commit_deployment_statuses", force: :cascade do |t| - t.integer "commit_deployment_id" - t.string "status" - t.bigint "github_id" t.string "api_url" + t.integer "commit_deployment_id" t.datetime "created_at", null: false + t.bigint "github_id" + t.string "status" t.datetime "updated_at", null: false t.index ["commit_deployment_id"], name: "index_commit_deployment_statuses_on_commit_deployment_id" end create_table "commit_deployments", force: :cascade do |t| - t.integer "commit_id" - t.integer "task_id" - t.bigint "github_id" t.string "api_url" + t.integer "commit_id" t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.bigint "github_id" t.string "sha", limit: 40 + t.integer "task_id" + t.datetime "updated_at", null: false t.index ["commit_id", "task_id"], name: "index_commit_deployments_on_commit_id_and_task_id", unique: true t.index ["task_id"], name: "index_commit_deployments_on_task_id" end create_table "commits", force: :cascade do |t| - t.integer "stack_id", limit: 4, null: false + t.integer "additions", limit: 4 t.integer "author_id", limit: 4 - t.integer "committer_id", limit: 4 - t.string "sha", limit: 40, null: false - t.text "message", limit: 65535, null: false - t.datetime "created_at" - t.datetime "updated_at" - t.boolean "detached", default: false, null: false t.datetime "authored_at", null: false t.datetime "committed_at", null: false - t.integer "additions", limit: 4 + t.integer "committer_id", limit: 4 + t.datetime "created_at" t.integer "deletions", limit: 4 - t.integer "pull_request_number" - t.string "pull_request_title", limit: 1024 - t.integer "merge_request_id" - t.boolean "locked", default: false, null: false + t.boolean "detached", default: false, null: false t.integer "lock_author_id", limit: 4 + t.boolean "locked", default: false, null: false + t.integer "merge_request_id" + t.text "message", limit: 65535, null: false t.string "pull_request_head_sha", limit: 40 + t.integer "pull_request_number" + t.string "pull_request_title", limit: 1024 + t.string "sha", limit: 40, null: false + t.integer "stack_id", limit: 4, null: false + t.datetime "updated_at" t.index ["author_id"], name: "index_commits_on_author_id" t.index ["committer_id"], name: "index_commits_on_committer_id" t.index ["created_at"], name: "index_commits_on_created_at" @@ -87,107 +87,107 @@ end create_table "continuous_delivery_schedules", force: :cascade do |t| + t.datetime "created_at", null: false + t.boolean "friday_enabled", default: true, null: false + t.time "friday_end", default: "2000-01-01 23:59:00", null: false + t.time "friday_start", default: "2000-01-01 00:00:00", null: false + t.boolean "monday_enabled", default: true, null: false + t.time "monday_end", default: "2000-01-01 23:59:00", null: false + t.time "monday_start", default: "2000-01-01 00:00:00", null: false + t.boolean "saturday_enabled", default: true, null: false + t.time "saturday_end", default: "2000-01-01 23:59:00", null: false + t.time "saturday_start", default: "2000-01-01 00:00:00", null: false t.integer "stack_id", null: false t.boolean "sunday_enabled", default: true, null: false - t.time "sunday_start", default: "2000-01-01 00:00:00", null: false t.time "sunday_end", default: "2000-01-01 23:59:00", null: false - t.boolean "monday_enabled", default: true, null: false - t.time "monday_start", default: "2000-01-01 00:00:00", null: false - t.time "monday_end", default: "2000-01-01 23:59:00", null: false + t.time "sunday_start", default: "2000-01-01 00:00:00", null: false + t.boolean "thursday_enabled", default: true, null: false + t.time "thursday_end", default: "2000-01-01 23:59:00", null: false + t.time "thursday_start", default: "2000-01-01 00:00:00", null: false t.boolean "tuesday_enabled", default: true, null: false - t.time "tuesday_start", default: "2000-01-01 00:00:00", null: false t.time "tuesday_end", default: "2000-01-01 23:59:00", null: false + t.time "tuesday_start", default: "2000-01-01 00:00:00", null: false + t.datetime "updated_at", null: false t.boolean "wednesday_enabled", default: true, null: false - t.time "wednesday_start", default: "2000-01-01 00:00:00", null: false t.time "wednesday_end", default: "2000-01-01 23:59:00", null: false - t.boolean "thursday_enabled", default: true, null: false - t.time "thursday_start", default: "2000-01-01 00:00:00", null: false - t.time "thursday_end", default: "2000-01-01 23:59:00", null: false - t.boolean "friday_enabled", default: true, null: false - t.time "friday_start", default: "2000-01-01 00:00:00", null: false - t.time "friday_end", default: "2000-01-01 23:59:00", null: false - t.boolean "saturday_enabled", default: true, null: false - t.time "saturday_start", default: "2000-01-01 00:00:00", null: false - t.time "saturday_end", default: "2000-01-01 23:59:00", null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false + t.time "wednesday_start", default: "2000-01-01 00:00:00", null: false t.index ["stack_id"], name: "index_continuous_delivery_schedules_on_stack_id", unique: true end create_table "deliveries", force: :cascade do |t| - t.integer "hook_id", limit: 4, null: false - t.string "status", limit: 50, default: "pending", null: false - t.string "url", limit: 4096, null: false t.string "content_type", limit: 255, null: false + t.datetime "created_at", null: false + t.datetime "delivered_at" t.string "event", limit: 50, null: false + t.integer "hook_id", limit: 4, null: false t.text "payload", limit: 16777215, null: false + t.text "response_body", limit: 65535 t.integer "response_code", limit: 4 t.text "response_headers", limit: 65535 - t.text "response_body", limit: 65535 - t.datetime "delivered_at" - t.datetime "created_at", null: false + t.string "status", limit: 50, default: "pending", null: false t.datetime "updated_at", null: false + t.string "url", limit: 4096, null: false t.index ["hook_id", "event", "status"], name: "index_deliveries_on_hook_id_and_event_and_status" t.index ["hook_id", "status"], name: "index_deliveries_on_hook_id_and_status" end create_table "github_hooks", force: :cascade do |t| - t.integer "stack_id", limit: 4 - t.bigint "github_id" - t.string "event", limit: 50, null: false + t.string "api_url", limit: 255 t.datetime "created_at" - t.datetime "updated_at" + t.string "event", limit: 50, null: false + t.bigint "github_id" + t.string "organization", limit: 39 t.string "secret", limit: 255 - t.string "api_url", limit: 255 + t.integer "stack_id", limit: 4 t.string "type", limit: 255 - t.string "organization", limit: 39 + t.datetime "updated_at" t.index ["organization", "event"], name: "index_github_hooks_on_organization_and_event", unique: true t.index ["stack_id", "event"], name: "index_github_hooks_on_stack_id_and_event", unique: true end create_table "hooks", force: :cascade do |t| - t.integer "stack_id", limit: 4 - t.string "delivery_url", limit: 4096, null: false t.string "content_type", limit: 4, default: "json", null: false - t.string "secret", limit: 255 + t.datetime "created_at", null: false + t.string "delivery_url", limit: 4096, null: false t.string "events", limit: 255, default: "", null: false t.boolean "insecure_ssl", default: false, null: false - t.datetime "created_at", null: false + t.string "secret", limit: 255 + t.integer "stack_id", limit: 4 t.datetime "updated_at", null: false t.index ["stack_id"], name: "index_hooks_on_stack_id" end create_table "memberships", force: :cascade do |t| - t.integer "team_id", limit: 4 - t.integer "user_id", limit: 4 t.datetime "created_at", null: false + t.integer "team_id", limit: 4 t.datetime "updated_at", null: false + t.integer "user_id", limit: 4 t.index ["team_id", "user_id"], name: "index_memberships_on_team_id_and_user_id", unique: true t.index ["user_id"], name: "index_memberships_on_user_id" end create_table "merge_requests", force: :cascade do |t| - t.integer "stack_id", null: false - t.integer "number", null: false - t.string "title", limit: 256 - t.integer "github_id", limit: 8 - t.string "api_url", limit: 1024 - t.string "state" - t.integer "head_id" - t.boolean "mergeable" t.integer "additions", default: 0, null: false + t.string "api_url", limit: 1024 + t.integer "base_commit_id" + t.string "base_ref", limit: 1024 + t.string "branch" + t.datetime "created_at", null: false t.integer "deletions", default: 0, null: false - t.string "merge_status", limit: 30, null: false - t.string "rejection_reason" + t.integer "github_id", limit: 8 + t.integer "head_id" t.datetime "merge_requested_at", null: false t.integer "merge_requested_by_id" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.string "branch" - t.datetime "revalidated_at" + t.string "merge_status", limit: 30, null: false + t.boolean "mergeable" t.datetime "merged_at" - t.string "base_ref", limit: 1024 - t.integer "base_commit_id" + t.integer "number", null: false + t.string "rejection_reason" + t.datetime "revalidated_at" + t.integer "stack_id", null: false + t.string "state" + t.string "title", limit: 256 + t.datetime "updated_at", null: false t.index ["head_id"], name: "index_merge_requests_on_head_id" t.index ["merge_requested_by_id"], name: "index_merge_requests_on_merge_requested_by_id" t.index ["merge_status"], name: "index_merge_requests_on_merge_status" @@ -198,9 +198,9 @@ end create_table "output_chunks", force: :cascade do |t| + t.datetime "created_at" t.integer "task_id", limit: 4 t.text "text", limit: 16777215 - t.datetime "created_at" t.datetime "updated_at" t.index ["task_id"], name: "index_output_chunks_on_task_id" end @@ -213,19 +213,19 @@ end create_table "pull_requests", force: :cascade do |t| - t.integer "stack_id", null: false - t.integer "number", null: false - t.string "title", limit: 256 - t.integer "github_id", limit: 8 - t.string "api_url", limit: 1024 - t.string "state" t.integer "additions", default: 0, null: false + t.string "api_url", limit: 1024 + t.datetime "created_at", null: false t.integer "deletions", default: 0, null: false - t.integer "user_id" - t.text "labels" + t.integer "github_id", limit: 8 t.integer "head_id" - t.datetime "created_at", precision: 6, null: false - t.datetime "updated_at", precision: 6, null: false + t.text "labels" + t.integer "number", null: false + t.integer "stack_id", null: false + t.string "state" + t.string "title", limit: 256 + t.datetime "updated_at", null: false + t.integer "user_id" t.index ["head_id"], name: "index_pull_requests_on_head_id" t.index ["stack_id", "github_id"], name: "index_pull_requests_on_stack_id_and_github_id", unique: true t.index ["stack_id", "number"], name: "index_pull_requests_on_stack_id_and_number", unique: true @@ -233,55 +233,55 @@ end create_table "release_statuses", force: :cascade do |t| - t.integer "stack_id", null: false t.integer "commit_id", null: false - t.integer "user_id" - t.string "state", limit: 10, null: false + t.datetime "created_at", null: false t.string "description", limit: 1024 - t.string "target_url", limit: 1024 t.bigint "github_id" - t.datetime "created_at", null: false + t.integer "stack_id", null: false + t.string "state", limit: 10, null: false + t.string "target_url", limit: 1024 t.datetime "updated_at", null: false + t.integer "user_id" t.index ["commit_id", "github_id"], name: "index_deploy_statuses_on_commit_id_and_github_id" t.index ["stack_id", "commit_id"], name: "index_deploy_statuses_on_stack_id_and_commit_id" t.index ["user_id"], name: "index_deploy_statuses_on_user_id" end create_table "repositories", force: :cascade do |t| - t.string "owner", limit: 39, null: false + t.datetime "created_at", null: false t.string "name", limit: 100, null: false - t.datetime "created_at", precision: 6, null: false - t.datetime "updated_at", precision: 6, null: false - t.boolean "review_stacks_enabled", default: false + t.string "owner", limit: 39, null: false t.string "provisioning_behavior", default: "allow_all" t.string "provisioning_label_name" + t.boolean "review_stacks_enabled", default: false + t.datetime "updated_at", null: false t.index ["owner", "name"], name: "repository_unicity", unique: true end create_table "stacks", force: :cascade do |t| - t.string "environment", limit: 50, default: "production", null: false - t.datetime "created_at" - t.datetime "updated_at" + t.datetime "archived_since" + t.boolean "awaiting_provision", default: false, null: false t.string "branch", limit: 255, null: false - t.string "deploy_url", limit: 255 - t.string "lock_reason", limit: 4096 - t.integer "tasks_count", limit: 4, default: 0, null: false - t.boolean "continuous_deployment", default: false, null: false - t.integer "undeployed_commits_count", limit: 4, default: 0, null: false t.text "cached_deploy_spec", limit: 65535 - t.integer "lock_author_id", limit: 4 + t.datetime "continuous_delivery_delayed_since" + t.boolean "continuous_deployment", default: false, null: false + t.datetime "created_at" + t.string "deploy_url", limit: 255 + t.string "environment", limit: 50, default: "production", null: false + t.integer "estimated_deploy_duration", default: 1, null: false t.boolean "ignore_ci" t.datetime "inaccessible_since" - t.integer "estimated_deploy_duration", default: 1, null: false - t.datetime "continuous_delivery_delayed_since" + t.datetime "last_deployed_at" + t.integer "lock_author_id", limit: 4 + t.string "lock_reason", limit: 4096 t.datetime "locked_since" t.boolean "merge_queue_enabled", default: false, null: false - t.datetime "last_deployed_at" - t.integer "repository_id", null: false - t.datetime "archived_since" t.string "provision_status", default: "deprovisioned", null: false + t.integer "repository_id", null: false + t.integer "tasks_count", limit: 4, default: 0, null: false t.string "type", default: "Shipit::Stack" - t.boolean "awaiting_provision", default: false, null: false + t.integer "undeployed_commits_count", limit: 4, default: 0, null: false + t.datetime "updated_at" t.index ["archived_since"], name: "index_stacks_on_archived_since" t.index ["awaiting_provision"], name: "index_stacks_on_awaiting_provision" t.index ["provision_status"], name: "index_stacks_on_provision_status" @@ -291,43 +291,43 @@ end create_table "statuses", force: :cascade do |t| - t.string "state", limit: 255 - t.string "target_url", limit: 255 - t.text "description", limit: 65535 - t.string "context", limit: 255, default: "default", null: false t.integer "commit_id", limit: 4 + t.string "context", limit: 255, default: "default", null: false t.datetime "created_at" - t.datetime "updated_at" + t.text "description", limit: 65535 t.integer "stack_id", null: false + t.string "state", limit: 255 + t.string "target_url", limit: 255 + t.datetime "updated_at" t.index ["commit_id"], name: "index_statuses_on_commit_id" end create_table "tasks", force: :cascade do |t| - t.integer "stack_id", limit: 4, null: false - t.integer "since_commit_id", limit: 4 - t.integer "until_commit_id", limit: 4 - t.string "status", limit: 10, default: "pending", null: false - t.datetime "created_at" - t.datetime "updated_at" - t.integer "user_id", limit: 4 - t.boolean "rolled_up", default: false, null: false - t.string "type", limit: 20 - t.integer "parent_id", limit: 4 + t.integer "aborted_by_id" t.integer "additions", limit: 4, default: 0 - t.integer "deletions", limit: 4, default: 0 - t.text "definition", limit: 65535 - t.binary "gzip_output" - t.boolean "rollback_once_aborted", default: false, null: false - t.text "env" - t.integer "confirmations", default: 0, null: false t.boolean "allow_concurrency", default: false, null: false - t.datetime "started_at" + t.integer "confirmations", default: 0, null: false + t.datetime "created_at" + t.text "definition", limit: 65535 + t.integer "deletions", limit: 4, default: 0 t.datetime "ended_at" + t.text "env" + t.binary "gzip_output" t.boolean "ignored_safeties", default: false, null: false - t.integer "aborted_by_id" - t.integer "rollback_once_aborted_to_id" - t.integer "retry_attempt", default: 0, null: false t.integer "max_retries" + t.integer "parent_id", limit: 4 + t.integer "retry_attempt", default: 0, null: false + t.boolean "rollback_once_aborted", default: false, null: false + t.integer "rollback_once_aborted_to_id" + t.boolean "rolled_up", default: false, null: false + t.integer "since_commit_id", limit: 4 + t.integer "stack_id", limit: 4, null: false + t.datetime "started_at" + t.string "status", limit: 10, default: "pending", null: false + t.string "type", limit: 20 + t.integer "until_commit_id", limit: 4 + t.datetime "updated_at" + t.integer "user_id", limit: 4 t.index ["rolled_up", "created_at", "status"], name: "index_tasks_on_rolled_up_and_created_at_and_status" t.index ["since_commit_id"], name: "index_tasks_on_since_commit_id" t.index ["stack_id", "allow_concurrency", "status"], name: "index_active_tasks" @@ -340,30 +340,29 @@ end create_table "teams", force: :cascade do |t| - t.bigint "github_id" t.string "api_url", limit: 255 - t.string "slug", limit: 255 + t.datetime "created_at", null: false + t.bigint "github_id" t.string "name", limit: 255 t.string "organization", limit: 39 - t.datetime "created_at", null: false + t.string "slug", limit: 255 t.datetime "updated_at", null: false t.index ["organization", "slug"], name: "index_teams_on_organization_and_slug", unique: true end create_table "users", force: :cascade do |t| - t.bigint "github_id" - t.string "name", limit: 255, null: false - t.string "email", limit: 255 - t.string "login", limit: 39 t.string "api_url", limit: 255 - t.datetime "created_at" - t.datetime "updated_at" t.string "avatar_url", limit: 255 + t.datetime "created_at" + t.string "email", limit: 255 t.string "encrypted_github_access_token" t.string "encrypted_github_access_token_iv" + t.bigint "github_id" + t.string "login", limit: 39 + t.string "name", limit: 255, null: false + t.datetime "updated_at" t.index ["github_id"], name: "index_users_on_github_id" t.index ["login"], name: "index_users_on_login" t.index ["updated_at"], name: "index_users_on_updated_at" end - end