Cut current boot over to Rails 8.0 and adopt 8.0 schema format#71
Merged
Conversation
Rails 8.0 is now the production version, so point the current (`else`) boot at 8.0 as well -- both boots now resolve to Rails 8.0.5. The dual-boot scaffold (next?, Gemfile.next symlink, web_next) is kept intact so the next hop only needs to bump the `next?` branch; the identical branches are wrapped in a rubocop:disable for Style/IdenticalConditionalBranches. Gemfile.lock regenerated via `bundle update rails` (7.2.3.1 -> 8.0.5); Gemfile.next.lock was already at 8.0.5. Adopt the Rails 8.0 schema-dumper format in db/schema.rb: - ActiveRecord::Schema[7.1] -> [8.0] - enable_extension "plpgsql" -> "pg_catalog.plpgsql" (8.0 dumps schema-qualified extension names) Deliberately keep `t.integer "file_file_size"` rather than the `bigint` a fresh migrate would emit. The bigint comes from kt-paperclip's `t.attachment` macro (old paperclip used integer), not from Rails 8, and production's column -- created years ago under paperclip -- is still integer. Keeping integer keeps schema.rb faithful to production; a db:schema:load + dump round-trips cleanly with no churn (verified). Verified on the host against Postgres 16.13: schema:load succeeds, production boots clean with zero deprecation warnings, suite green (16 runs, 52 assertions, 0 failures, 0 errors).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Rails 8.0 is now the production version, so this completes the cutover: point the current (
else) boot at 8.0 as well. Both boots now resolve to Rails 8.0.5.Gemfile:elsebranch>= 7.2.0, < 7.3.0->>= 8.0.0, < 8.1.0(matches thenext?branch).Gemfile.lockregenerated viabundle update rails(7.2.3.1 -> 8.0.5).Gemfile.next.lockwas already 8.0.5.The dual-boot scaffold (
next?, theGemfile.nextsymlink, theweb_nextservice) is kept intact so the next hop only needs to bump thenext?branch. The now-identical branches are wrapped in arubocop:disable Style/IdenticalConditionalBranches.Schema (db/schema.rb)
Adopt the Rails 8.0 schema-dumper format:
ActiveRecord::Schema[7.1]->[8.0]enable_extension "plpgsql"->"pg_catalog.plpgsql"(8.0 dumps schema-qualified extension names)Deliberately keeps
t.integer "file_file_size"rather than thebiginta fresh migrate would emit. That bigint comes fromkt-paperclip'st.attachmentmacro (oldpaperclipused integer), not from Rails 8, and production's column -- created years ago under paperclip -- is stillinteger. Keepingintegerkeepsschema.rbfaithful to production. Adb:schema:load+ dump round-trips cleanly with no churn (verified). Note: this schema is used for new/test/CI databases viaschema:load; production is unaffected either way.Verification
Host, asdf ruby 3.2.11, against Postgres 16.13:
db:schema:loadsucceeds on the 8.0-format schema; re-dump preservesinteger.