From 6323f1b5195c0a9cae3f0b4034b2664e4b67912f Mon Sep 17 00:00:00 2001 From: OdenTakashi Date: Thu, 25 Jun 2026 13:52:32 +0900 Subject: [PATCH 1/4] Add Rails version matrix to integration CI Pass RAILS_VERSION through dummyapp Gemfile and CI matrix so integration specs can be exercised against supported Rails minors before aligning specs. Co-authored-by: Cursor --- .github/workflows/ci.yml | 10 +++++++--- spec/dummyapp/Gemfile | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e97dadd4..7cfd021d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,6 +42,7 @@ jobs: matrix: adapter: [ 'mysql2', 'pg', 'sqlite3' ] ruby: ['3.3', '3.4', '4.0'] + rails: ['~> 7.1.0', '~> 7.2.0', '~> 8.0.0', '~> 8.1.0'] steps: - name: Checkout @@ -68,19 +69,22 @@ jobs: run: bundle config set path 'vendor/bundle' working-directory: spec/dummyapp - - name: Install dummyapp dependencies (${{ matrix.adapter }}) + - name: Install dummyapp dependencies (${{ matrix.adapter }}, Rails ${{ matrix.rails }}) run: bundle install working-directory: spec/dummyapp env: DATABASE_ADAPTER: ${{ matrix.adapter }} + RAILS_VERSION: ${{ matrix.rails }} - - name: Run dummyapp migrations (${{ matrix.adapter }}) + - name: Run dummyapp migrations (${{ matrix.adapter }}, Rails ${{ matrix.rails }}) run: bin/rails db:create working-directory: spec/dummyapp env: DATABASE_ADAPTER: ${{ matrix.adapter }} + RAILS_VERSION: ${{ matrix.rails }} - - name: Run Integration tests (${{ matrix.adapter }}) + - name: Run Integration tests (${{ matrix.adapter }}, Rails ${{ matrix.rails }}) run: bundle exec rake spec:integration env: DATABASE_ADAPTER: ${{ matrix.adapter }} + RAILS_VERSION: ${{ matrix.rails }} diff --git a/spec/dummyapp/Gemfile b/spec/dummyapp/Gemfile index cf2b05c1..adf2c736 100644 --- a/spec/dummyapp/Gemfile +++ b/spec/dummyapp/Gemfile @@ -2,7 +2,7 @@ source "https://rubygems.org" git_source(:github) { |repo| "https://github.com/#{repo}.git" } # Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main" -gem "rails", "~> 7.1.0" +gem "rails", ENV.fetch("RAILS_VERSION", "~> 7.1.0") case ENV['DATABASE_ADAPTER'] # This feels so wrong when 'mysql2' From 0762f79f3afa8686fa44dc75e7237809e11d5aa4 Mon Sep 17 00:00:00 2001 From: OdenTakashi Date: Thu, 25 Jun 2026 17:25:40 +0900 Subject: [PATCH 2/4] Add Rails CI matrix and split integration templates for Rails 8 Pass RAILS_VERSION through dummyapp and CI so integration specs run across supported Rails minors, and select pre8 vs rails8 golden templates by major version to match datetime default formatting changes in Rails 8. Co-authored-by: Cursor --- spec/support/aruba.rb | 8 +++++- .../{ => pre8}/mysql2/collapsed_test_model.rb | 0 .../nested_position_collapsed_test_model.rb | 0 .../{ => pre8}/mysql2/test_child_default.rb | 0 .../{ => pre8}/mysql2/test_default.rb | 0 .../{ => pre8}/mysql2/test_default_updated.rb | 0 .../test_default_with_bottom_annotations.rb | 0 .../{ => pre8}/mysql2/test_null_false.rb | 0 .../{ => pre8}/mysql2/test_parent.rb | 0 .../{ => pre8}/mysql2/test_sibling_default.rb | 0 .../{ => pre8}/mysql2/test_true_sti.rb | 0 .../{ => pre8}/pg/collapsed_test_model.rb | 0 .../nested_position_collapsed_test_model.rb | 0 .../{ => pre8}/pg/test_child_default.rb | 0 spec/templates/{ => pre8}/pg/test_default.rb | 0 .../{ => pre8}/pg/test_default_updated.rb | 0 .../test_default_with_bottom_annotations.rb | 0 .../{ => pre8}/pg/test_null_false.rb | 0 spec/templates/{ => pre8}/pg/test_parent.rb | 0 .../{ => pre8}/pg/test_sibling_default.rb | 0 spec/templates/{ => pre8}/pg/test_true_sti.rb | 0 .../sqlite3/collapsed_test_model.rb | 0 .../nested_position_collapsed_test_model.rb | 0 .../{ => pre8}/sqlite3/test_child_default.rb | 0 .../{ => pre8}/sqlite3/test_default.rb | 0 .../sqlite3/test_default_updated.rb | 0 .../test_default_with_bottom_annotations.rb | 0 .../{ => pre8}/sqlite3/test_null_false.rb | 0 .../{ => pre8}/sqlite3/test_parent.rb | 0 .../sqlite3/test_sibling_default.rb | 0 .../{ => pre8}/sqlite3/test_true_sti.rb | 0 .../rails8/mysql2/collapsed_test_model.rb | 19 +++++++++++++ .../nested_position_collapsed_test_model.rb | 19 +++++++++++++ .../rails8/mysql2/test_child_default.rb | 20 ++++++++++++++ spec/templates/rails8/mysql2/test_default.rb | 19 +++++++++++++ .../rails8/mysql2/test_default_updated.rb | 20 ++++++++++++++ .../test_default_with_bottom_annotations.rb | 19 +++++++++++++ .../rails8/mysql2/test_null_false.rb | 27 +++++++++++++++++++ spec/templates/rails8/mysql2/test_parent.rb | 14 ++++++++++ .../rails8/mysql2/test_sibling_default.rb | 19 +++++++++++++ spec/templates/rails8/mysql2/test_true_sti.rb | 14 ++++++++++ .../rails8/pg/collapsed_test_model.rb | 19 +++++++++++++ .../nested_position_collapsed_test_model.rb | 19 +++++++++++++ .../templates/rails8/pg/test_child_default.rb | 20 ++++++++++++++ spec/templates/rails8/pg/test_default.rb | 19 +++++++++++++ .../rails8/pg/test_default_updated.rb | 20 ++++++++++++++ .../test_default_with_bottom_annotations.rb | 19 +++++++++++++ spec/templates/rails8/pg/test_null_false.rb | 27 +++++++++++++++++++ spec/templates/rails8/pg/test_parent.rb | 14 ++++++++++ .../rails8/pg/test_sibling_default.rb | 19 +++++++++++++ spec/templates/rails8/pg/test_true_sti.rb | 14 ++++++++++ .../rails8/sqlite3/collapsed_test_model.rb | 19 +++++++++++++ .../nested_position_collapsed_test_model.rb | 19 +++++++++++++ .../rails8/sqlite3/test_child_default.rb | 20 ++++++++++++++ spec/templates/rails8/sqlite3/test_default.rb | 19 +++++++++++++ .../rails8/sqlite3/test_default_updated.rb | 20 ++++++++++++++ .../test_default_with_bottom_annotations.rb | 19 +++++++++++++ .../rails8/sqlite3/test_null_false.rb | 27 +++++++++++++++++++ spec/templates/rails8/sqlite3/test_parent.rb | 14 ++++++++++ .../rails8/sqlite3/test_sibling_default.rb | 19 +++++++++++++ .../templates/rails8/sqlite3/test_true_sti.rb | 14 ++++++++++ 61 files changed, 577 insertions(+), 1 deletion(-) rename spec/templates/{ => pre8}/mysql2/collapsed_test_model.rb (100%) rename spec/templates/{ => pre8}/mysql2/nested_position_collapsed_test_model.rb (100%) rename spec/templates/{ => pre8}/mysql2/test_child_default.rb (100%) rename spec/templates/{ => pre8}/mysql2/test_default.rb (100%) rename spec/templates/{ => pre8}/mysql2/test_default_updated.rb (100%) rename spec/templates/{ => pre8}/mysql2/test_default_with_bottom_annotations.rb (100%) rename spec/templates/{ => pre8}/mysql2/test_null_false.rb (100%) rename spec/templates/{ => pre8}/mysql2/test_parent.rb (100%) rename spec/templates/{ => pre8}/mysql2/test_sibling_default.rb (100%) rename spec/templates/{ => pre8}/mysql2/test_true_sti.rb (100%) rename spec/templates/{ => pre8}/pg/collapsed_test_model.rb (100%) rename spec/templates/{ => pre8}/pg/nested_position_collapsed_test_model.rb (100%) rename spec/templates/{ => pre8}/pg/test_child_default.rb (100%) rename spec/templates/{ => pre8}/pg/test_default.rb (100%) rename spec/templates/{ => pre8}/pg/test_default_updated.rb (100%) rename spec/templates/{ => pre8}/pg/test_default_with_bottom_annotations.rb (100%) rename spec/templates/{ => pre8}/pg/test_null_false.rb (100%) rename spec/templates/{ => pre8}/pg/test_parent.rb (100%) rename spec/templates/{ => pre8}/pg/test_sibling_default.rb (100%) rename spec/templates/{ => pre8}/pg/test_true_sti.rb (100%) rename spec/templates/{ => pre8}/sqlite3/collapsed_test_model.rb (100%) rename spec/templates/{ => pre8}/sqlite3/nested_position_collapsed_test_model.rb (100%) rename spec/templates/{ => pre8}/sqlite3/test_child_default.rb (100%) rename spec/templates/{ => pre8}/sqlite3/test_default.rb (100%) rename spec/templates/{ => pre8}/sqlite3/test_default_updated.rb (100%) rename spec/templates/{ => pre8}/sqlite3/test_default_with_bottom_annotations.rb (100%) rename spec/templates/{ => pre8}/sqlite3/test_null_false.rb (100%) rename spec/templates/{ => pre8}/sqlite3/test_parent.rb (100%) rename spec/templates/{ => pre8}/sqlite3/test_sibling_default.rb (100%) rename spec/templates/{ => pre8}/sqlite3/test_true_sti.rb (100%) create mode 100644 spec/templates/rails8/mysql2/collapsed_test_model.rb create mode 100644 spec/templates/rails8/mysql2/nested_position_collapsed_test_model.rb create mode 100644 spec/templates/rails8/mysql2/test_child_default.rb create mode 100644 spec/templates/rails8/mysql2/test_default.rb create mode 100644 spec/templates/rails8/mysql2/test_default_updated.rb create mode 100644 spec/templates/rails8/mysql2/test_default_with_bottom_annotations.rb create mode 100644 spec/templates/rails8/mysql2/test_null_false.rb create mode 100644 spec/templates/rails8/mysql2/test_parent.rb create mode 100644 spec/templates/rails8/mysql2/test_sibling_default.rb create mode 100644 spec/templates/rails8/mysql2/test_true_sti.rb create mode 100644 spec/templates/rails8/pg/collapsed_test_model.rb create mode 100644 spec/templates/rails8/pg/nested_position_collapsed_test_model.rb create mode 100644 spec/templates/rails8/pg/test_child_default.rb create mode 100644 spec/templates/rails8/pg/test_default.rb create mode 100644 spec/templates/rails8/pg/test_default_updated.rb create mode 100644 spec/templates/rails8/pg/test_default_with_bottom_annotations.rb create mode 100644 spec/templates/rails8/pg/test_null_false.rb create mode 100644 spec/templates/rails8/pg/test_parent.rb create mode 100644 spec/templates/rails8/pg/test_sibling_default.rb create mode 100644 spec/templates/rails8/pg/test_true_sti.rb create mode 100644 spec/templates/rails8/sqlite3/collapsed_test_model.rb create mode 100644 spec/templates/rails8/sqlite3/nested_position_collapsed_test_model.rb create mode 100644 spec/templates/rails8/sqlite3/test_child_default.rb create mode 100644 spec/templates/rails8/sqlite3/test_default.rb create mode 100644 spec/templates/rails8/sqlite3/test_default_updated.rb create mode 100644 spec/templates/rails8/sqlite3/test_default_with_bottom_annotations.rb create mode 100644 spec/templates/rails8/sqlite3/test_null_false.rb create mode 100644 spec/templates/rails8/sqlite3/test_parent.rb create mode 100644 spec/templates/rails8/sqlite3/test_sibling_default.rb create mode 100644 spec/templates/rails8/sqlite3/test_true_sti.rb diff --git a/spec/support/aruba.rb b/spec/support/aruba.rb index 15962c50..41c7a513 100644 --- a/spec/support/aruba.rb +++ b/spec/support/aruba.rb @@ -9,8 +9,14 @@ def read_file(name) read(name).join("\n") end + def rails_template_set + requirement = ENV.fetch("RAILS_VERSION", "~> 7.1.0") + major = requirement[/(\d+)\./, 1].to_i + (major >= 8) ? "rails8" : "pre8" + end + def models_template_dir - File.join(::Aruba.config.root_directory, "spec/templates/#{ENV["DATABASE_ADAPTER"]}") + File.join(::Aruba.config.root_directory, "spec/templates/#{rails_template_set}/#{ENV["DATABASE_ADAPTER"]}") end def migrations_template_dir diff --git a/spec/templates/mysql2/collapsed_test_model.rb b/spec/templates/pre8/mysql2/collapsed_test_model.rb similarity index 100% rename from spec/templates/mysql2/collapsed_test_model.rb rename to spec/templates/pre8/mysql2/collapsed_test_model.rb diff --git a/spec/templates/mysql2/nested_position_collapsed_test_model.rb b/spec/templates/pre8/mysql2/nested_position_collapsed_test_model.rb similarity index 100% rename from spec/templates/mysql2/nested_position_collapsed_test_model.rb rename to spec/templates/pre8/mysql2/nested_position_collapsed_test_model.rb diff --git a/spec/templates/mysql2/test_child_default.rb b/spec/templates/pre8/mysql2/test_child_default.rb similarity index 100% rename from spec/templates/mysql2/test_child_default.rb rename to spec/templates/pre8/mysql2/test_child_default.rb diff --git a/spec/templates/mysql2/test_default.rb b/spec/templates/pre8/mysql2/test_default.rb similarity index 100% rename from spec/templates/mysql2/test_default.rb rename to spec/templates/pre8/mysql2/test_default.rb diff --git a/spec/templates/mysql2/test_default_updated.rb b/spec/templates/pre8/mysql2/test_default_updated.rb similarity index 100% rename from spec/templates/mysql2/test_default_updated.rb rename to spec/templates/pre8/mysql2/test_default_updated.rb diff --git a/spec/templates/mysql2/test_default_with_bottom_annotations.rb b/spec/templates/pre8/mysql2/test_default_with_bottom_annotations.rb similarity index 100% rename from spec/templates/mysql2/test_default_with_bottom_annotations.rb rename to spec/templates/pre8/mysql2/test_default_with_bottom_annotations.rb diff --git a/spec/templates/mysql2/test_null_false.rb b/spec/templates/pre8/mysql2/test_null_false.rb similarity index 100% rename from spec/templates/mysql2/test_null_false.rb rename to spec/templates/pre8/mysql2/test_null_false.rb diff --git a/spec/templates/mysql2/test_parent.rb b/spec/templates/pre8/mysql2/test_parent.rb similarity index 100% rename from spec/templates/mysql2/test_parent.rb rename to spec/templates/pre8/mysql2/test_parent.rb diff --git a/spec/templates/mysql2/test_sibling_default.rb b/spec/templates/pre8/mysql2/test_sibling_default.rb similarity index 100% rename from spec/templates/mysql2/test_sibling_default.rb rename to spec/templates/pre8/mysql2/test_sibling_default.rb diff --git a/spec/templates/mysql2/test_true_sti.rb b/spec/templates/pre8/mysql2/test_true_sti.rb similarity index 100% rename from spec/templates/mysql2/test_true_sti.rb rename to spec/templates/pre8/mysql2/test_true_sti.rb diff --git a/spec/templates/pg/collapsed_test_model.rb b/spec/templates/pre8/pg/collapsed_test_model.rb similarity index 100% rename from spec/templates/pg/collapsed_test_model.rb rename to spec/templates/pre8/pg/collapsed_test_model.rb diff --git a/spec/templates/pg/nested_position_collapsed_test_model.rb b/spec/templates/pre8/pg/nested_position_collapsed_test_model.rb similarity index 100% rename from spec/templates/pg/nested_position_collapsed_test_model.rb rename to spec/templates/pre8/pg/nested_position_collapsed_test_model.rb diff --git a/spec/templates/pg/test_child_default.rb b/spec/templates/pre8/pg/test_child_default.rb similarity index 100% rename from spec/templates/pg/test_child_default.rb rename to spec/templates/pre8/pg/test_child_default.rb diff --git a/spec/templates/pg/test_default.rb b/spec/templates/pre8/pg/test_default.rb similarity index 100% rename from spec/templates/pg/test_default.rb rename to spec/templates/pre8/pg/test_default.rb diff --git a/spec/templates/pg/test_default_updated.rb b/spec/templates/pre8/pg/test_default_updated.rb similarity index 100% rename from spec/templates/pg/test_default_updated.rb rename to spec/templates/pre8/pg/test_default_updated.rb diff --git a/spec/templates/pg/test_default_with_bottom_annotations.rb b/spec/templates/pre8/pg/test_default_with_bottom_annotations.rb similarity index 100% rename from spec/templates/pg/test_default_with_bottom_annotations.rb rename to spec/templates/pre8/pg/test_default_with_bottom_annotations.rb diff --git a/spec/templates/pg/test_null_false.rb b/spec/templates/pre8/pg/test_null_false.rb similarity index 100% rename from spec/templates/pg/test_null_false.rb rename to spec/templates/pre8/pg/test_null_false.rb diff --git a/spec/templates/pg/test_parent.rb b/spec/templates/pre8/pg/test_parent.rb similarity index 100% rename from spec/templates/pg/test_parent.rb rename to spec/templates/pre8/pg/test_parent.rb diff --git a/spec/templates/pg/test_sibling_default.rb b/spec/templates/pre8/pg/test_sibling_default.rb similarity index 100% rename from spec/templates/pg/test_sibling_default.rb rename to spec/templates/pre8/pg/test_sibling_default.rb diff --git a/spec/templates/pg/test_true_sti.rb b/spec/templates/pre8/pg/test_true_sti.rb similarity index 100% rename from spec/templates/pg/test_true_sti.rb rename to spec/templates/pre8/pg/test_true_sti.rb diff --git a/spec/templates/sqlite3/collapsed_test_model.rb b/spec/templates/pre8/sqlite3/collapsed_test_model.rb similarity index 100% rename from spec/templates/sqlite3/collapsed_test_model.rb rename to spec/templates/pre8/sqlite3/collapsed_test_model.rb diff --git a/spec/templates/sqlite3/nested_position_collapsed_test_model.rb b/spec/templates/pre8/sqlite3/nested_position_collapsed_test_model.rb similarity index 100% rename from spec/templates/sqlite3/nested_position_collapsed_test_model.rb rename to spec/templates/pre8/sqlite3/nested_position_collapsed_test_model.rb diff --git a/spec/templates/sqlite3/test_child_default.rb b/spec/templates/pre8/sqlite3/test_child_default.rb similarity index 100% rename from spec/templates/sqlite3/test_child_default.rb rename to spec/templates/pre8/sqlite3/test_child_default.rb diff --git a/spec/templates/sqlite3/test_default.rb b/spec/templates/pre8/sqlite3/test_default.rb similarity index 100% rename from spec/templates/sqlite3/test_default.rb rename to spec/templates/pre8/sqlite3/test_default.rb diff --git a/spec/templates/sqlite3/test_default_updated.rb b/spec/templates/pre8/sqlite3/test_default_updated.rb similarity index 100% rename from spec/templates/sqlite3/test_default_updated.rb rename to spec/templates/pre8/sqlite3/test_default_updated.rb diff --git a/spec/templates/sqlite3/test_default_with_bottom_annotations.rb b/spec/templates/pre8/sqlite3/test_default_with_bottom_annotations.rb similarity index 100% rename from spec/templates/sqlite3/test_default_with_bottom_annotations.rb rename to spec/templates/pre8/sqlite3/test_default_with_bottom_annotations.rb diff --git a/spec/templates/sqlite3/test_null_false.rb b/spec/templates/pre8/sqlite3/test_null_false.rb similarity index 100% rename from spec/templates/sqlite3/test_null_false.rb rename to spec/templates/pre8/sqlite3/test_null_false.rb diff --git a/spec/templates/sqlite3/test_parent.rb b/spec/templates/pre8/sqlite3/test_parent.rb similarity index 100% rename from spec/templates/sqlite3/test_parent.rb rename to spec/templates/pre8/sqlite3/test_parent.rb diff --git a/spec/templates/sqlite3/test_sibling_default.rb b/spec/templates/pre8/sqlite3/test_sibling_default.rb similarity index 100% rename from spec/templates/sqlite3/test_sibling_default.rb rename to spec/templates/pre8/sqlite3/test_sibling_default.rb diff --git a/spec/templates/sqlite3/test_true_sti.rb b/spec/templates/pre8/sqlite3/test_true_sti.rb similarity index 100% rename from spec/templates/sqlite3/test_true_sti.rb rename to spec/templates/pre8/sqlite3/test_true_sti.rb diff --git a/spec/templates/rails8/mysql2/collapsed_test_model.rb b/spec/templates/rails8/mysql2/collapsed_test_model.rb new file mode 100644 index 00000000..50d4402e --- /dev/null +++ b/spec/templates/rails8/mysql2/collapsed_test_model.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: collapsed_test_models +# +# id :bigint not null, primary key +# collapsed :boolean +# name :string(255) +# created_at :datetime not null +# updated_at :datetime not null +# +module Collapsed + class TestModel < ApplicationRecord + def self.table_name_prefix + "collapsed_" + end + end +end diff --git a/spec/templates/rails8/mysql2/nested_position_collapsed_test_model.rb b/spec/templates/rails8/mysql2/nested_position_collapsed_test_model.rb new file mode 100644 index 00000000..6849ce0c --- /dev/null +++ b/spec/templates/rails8/mysql2/nested_position_collapsed_test_model.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +module Collapsed + # == Schema Information + # + # Table name: collapsed_test_models + # + # id :bigint not null, primary key + # collapsed :boolean + # name :string(255) + # created_at :datetime not null + # updated_at :datetime not null + # + class TestModel < ApplicationRecord + def self.table_name_prefix + "collapsed_" + end + end +end diff --git a/spec/templates/rails8/mysql2/test_child_default.rb b/spec/templates/rails8/mysql2/test_child_default.rb new file mode 100644 index 00000000..9bd632e8 --- /dev/null +++ b/spec/templates/rails8/mysql2/test_child_default.rb @@ -0,0 +1,20 @@ +# == Schema Information +# +# Table name: test_child_defaults +# +# id :bigint not null, primary key +# created_at :datetime not null +# updated_at :datetime not null +# test_default_id :bigint not null +# +# Indexes +# +# index_test_child_defaults_on_test_default_id (test_default_id) +# +# Foreign Keys +# +# fk_rails_... (test_default_id => test_defaults.id) +# +class TestChildDefault < ApplicationRecord + belongs_to :test_default +end diff --git a/spec/templates/rails8/mysql2/test_default.rb b/spec/templates/rails8/mysql2/test_default.rb new file mode 100644 index 00000000..c4f360a8 --- /dev/null +++ b/spec/templates/rails8/mysql2/test_default.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: test_defaults +# +# id :bigint not null, primary key +# boolean :boolean default(FALSE) +# date :date default(Tue, 04 Jul 2023) +# datetime :datetime default(2023-07-04 12:34:56.000000000 UTC +00:00) +# decimal :decimal(14, 2) default(43.21) +# float :float(24) default(12.34) +# integer :integer default(99) +# string :string(255) default("hello world!") +# created_at :datetime not null +# updated_at :datetime not null +# +class TestDefault < ApplicationRecord +end diff --git a/spec/templates/rails8/mysql2/test_default_updated.rb b/spec/templates/rails8/mysql2/test_default_updated.rb new file mode 100644 index 00000000..00dcf2fb --- /dev/null +++ b/spec/templates/rails8/mysql2/test_default_updated.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: test_defaults +# +# id :bigint not null, primary key +# boolean :boolean default(FALSE) +# date :date default(Tue, 04 Jul 2023) +# datetime :datetime default(2023-07-04 12:34:56.000000000 UTC +00:00) +# decimal :decimal(14, 2) default(43.21) +# float :float(24) default(12.34) +# int_field :integer +# integer :integer default(99) +# string :string(255) default("hello world!") +# created_at :datetime not null +# updated_at :datetime not null +# +class TestDefault < ApplicationRecord +end diff --git a/spec/templates/rails8/mysql2/test_default_with_bottom_annotations.rb b/spec/templates/rails8/mysql2/test_default_with_bottom_annotations.rb new file mode 100644 index 00000000..ff161ee9 --- /dev/null +++ b/spec/templates/rails8/mysql2/test_default_with_bottom_annotations.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true +class TestDefault < ApplicationRecord +end + +# == Schema Information +# +# Table name: test_defaults +# +# id :bigint not null, primary key +# boolean :boolean default(FALSE) +# date :date default(Tue, 04 Jul 2023) +# datetime :datetime default(2023-07-04 12:34:56.000000000 UTC +00:00) +# decimal :decimal(14, 2) default(43.21) +# float :float(24) default(12.34) +# integer :integer default(99) +# string :string(255) default("hello world!") +# created_at :datetime not null +# updated_at :datetime not null +# diff --git a/spec/templates/rails8/mysql2/test_null_false.rb b/spec/templates/rails8/mysql2/test_null_false.rb new file mode 100644 index 00000000..77932ad9 --- /dev/null +++ b/spec/templates/rails8/mysql2/test_null_false.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: test_null_falses +# +# id :bigint not null, primary key +# binary :binary(65535) not null +# boolean :boolean not null +# date :date not null +# datetime :datetime not null +# decimal :decimal(14, 2) not null +# float :float(24) not null +# integer :integer not null +# string :string(255) not null +# text :text(65535) not null +# timestamp :datetime not null +# created_at :datetime not null +# updated_at :datetime not null +# +# Indexes +# +# by_compound_bool_and_int (boolean,integer) +# index_test_null_falses_on_date (date) +# +class TestNullFalse < ApplicationRecord +end diff --git a/spec/templates/rails8/mysql2/test_parent.rb b/spec/templates/rails8/mysql2/test_parent.rb new file mode 100644 index 00000000..3ac9dd2d --- /dev/null +++ b/spec/templates/rails8/mysql2/test_parent.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: test_parents +# +# id :integer not null, primary key +# something :string +# type :string +# created_at :datetime not null +# updated_at :datetime not null +# +class TestParent < ApplicationRecord +end diff --git a/spec/templates/rails8/mysql2/test_sibling_default.rb b/spec/templates/rails8/mysql2/test_sibling_default.rb new file mode 100644 index 00000000..cfb23466 --- /dev/null +++ b/spec/templates/rails8/mysql2/test_sibling_default.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: test_defaults +# +# id :bigint not null, primary key +# boolean :boolean default(FALSE) +# date :date default(Tue, 04 Jul 2023) +# datetime :datetime default(2023-07-04 12:34:56.000000000 UTC +00:00) +# decimal :decimal(14, 2) default(43.21) +# float :float(24) default(12.34) +# integer :integer default(99) +# string :string(255) default("hello world!") +# created_at :datetime not null +# updated_at :datetime not null +# +class TestSiblingDefault < TestDefault +end diff --git a/spec/templates/rails8/mysql2/test_true_sti.rb b/spec/templates/rails8/mysql2/test_true_sti.rb new file mode 100644 index 00000000..63cecdb5 --- /dev/null +++ b/spec/templates/rails8/mysql2/test_true_sti.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: test_parents +# +# id :bigint not null, primary key +# something :string(255) +# type :string(255) +# created_at :datetime not null +# updated_at :datetime not null +# +class TestTrueSti < TestParent +end diff --git a/spec/templates/rails8/pg/collapsed_test_model.rb b/spec/templates/rails8/pg/collapsed_test_model.rb new file mode 100644 index 00000000..6ad7a530 --- /dev/null +++ b/spec/templates/rails8/pg/collapsed_test_model.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: collapsed_test_models +# +# id :bigint not null, primary key +# collapsed :boolean +# name :string +# created_at :datetime not null +# updated_at :datetime not null +# +module Collapsed + class TestModel < ApplicationRecord + def self.table_name_prefix + "collapsed_" + end + end +end diff --git a/spec/templates/rails8/pg/nested_position_collapsed_test_model.rb b/spec/templates/rails8/pg/nested_position_collapsed_test_model.rb new file mode 100644 index 00000000..d0afdf52 --- /dev/null +++ b/spec/templates/rails8/pg/nested_position_collapsed_test_model.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +module Collapsed + # == Schema Information + # + # Table name: collapsed_test_models + # + # id :bigint not null, primary key + # collapsed :boolean + # name :string + # created_at :datetime not null + # updated_at :datetime not null + # + class TestModel < ApplicationRecord + def self.table_name_prefix + "collapsed_" + end + end +end diff --git a/spec/templates/rails8/pg/test_child_default.rb b/spec/templates/rails8/pg/test_child_default.rb new file mode 100644 index 00000000..9bd632e8 --- /dev/null +++ b/spec/templates/rails8/pg/test_child_default.rb @@ -0,0 +1,20 @@ +# == Schema Information +# +# Table name: test_child_defaults +# +# id :bigint not null, primary key +# created_at :datetime not null +# updated_at :datetime not null +# test_default_id :bigint not null +# +# Indexes +# +# index_test_child_defaults_on_test_default_id (test_default_id) +# +# Foreign Keys +# +# fk_rails_... (test_default_id => test_defaults.id) +# +class TestChildDefault < ApplicationRecord + belongs_to :test_default +end diff --git a/spec/templates/rails8/pg/test_default.rb b/spec/templates/rails8/pg/test_default.rb new file mode 100644 index 00000000..ffa54f1a --- /dev/null +++ b/spec/templates/rails8/pg/test_default.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: test_defaults +# +# id :bigint not null, primary key +# boolean :boolean default(FALSE) +# date :date default(Tue, 04 Jul 2023) +# datetime :datetime default(2023-07-04 12:34:56.000000000 UTC +00:00) +# decimal :decimal(14, 2) default(43.21) +# float :float default(12.34) +# integer :integer default(99) +# string :string default("hello world!") +# created_at :datetime not null +# updated_at :datetime not null +# +class TestDefault < ApplicationRecord +end diff --git a/spec/templates/rails8/pg/test_default_updated.rb b/spec/templates/rails8/pg/test_default_updated.rb new file mode 100644 index 00000000..2975b325 --- /dev/null +++ b/spec/templates/rails8/pg/test_default_updated.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: test_defaults +# +# id :bigint not null, primary key +# boolean :boolean default(FALSE) +# date :date default(Tue, 04 Jul 2023) +# datetime :datetime default(2023-07-04 12:34:56.000000000 UTC +00:00) +# decimal :decimal(14, 2) default(43.21) +# float :float default(12.34) +# int_field :integer +# integer :integer default(99) +# string :string default("hello world!") +# created_at :datetime not null +# updated_at :datetime not null +# +class TestDefault < ApplicationRecord +end diff --git a/spec/templates/rails8/pg/test_default_with_bottom_annotations.rb b/spec/templates/rails8/pg/test_default_with_bottom_annotations.rb new file mode 100644 index 00000000..f45ad47f --- /dev/null +++ b/spec/templates/rails8/pg/test_default_with_bottom_annotations.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true +class TestDefault < ApplicationRecord +end + +# == Schema Information +# +# Table name: test_defaults +# +# id :bigint not null, primary key +# boolean :boolean default(FALSE) +# date :date default(Tue, 04 Jul 2023) +# datetime :datetime default(2023-07-04 12:34:56.000000000 UTC +00:00) +# decimal :decimal(14, 2) default(43.21) +# float :float default(12.34) +# integer :integer default(99) +# string :string default("hello world!") +# created_at :datetime not null +# updated_at :datetime not null +# diff --git a/spec/templates/rails8/pg/test_null_false.rb b/spec/templates/rails8/pg/test_null_false.rb new file mode 100644 index 00000000..98868ab6 --- /dev/null +++ b/spec/templates/rails8/pg/test_null_false.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: test_null_falses +# +# id :bigint not null, primary key +# binary :binary not null +# boolean :boolean not null +# date :date not null +# datetime :datetime not null +# decimal :decimal(14, 2) not null +# float :float not null +# integer :integer not null +# string :string not null +# text :text not null +# timestamp :datetime not null +# created_at :datetime not null +# updated_at :datetime not null +# +# Indexes +# +# by_compound_bool_and_int (boolean,integer) +# index_test_null_falses_on_date (date) +# +class TestNullFalse < ApplicationRecord +end diff --git a/spec/templates/rails8/pg/test_parent.rb b/spec/templates/rails8/pg/test_parent.rb new file mode 100644 index 00000000..3ac9dd2d --- /dev/null +++ b/spec/templates/rails8/pg/test_parent.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: test_parents +# +# id :integer not null, primary key +# something :string +# type :string +# created_at :datetime not null +# updated_at :datetime not null +# +class TestParent < ApplicationRecord +end diff --git a/spec/templates/rails8/pg/test_sibling_default.rb b/spec/templates/rails8/pg/test_sibling_default.rb new file mode 100644 index 00000000..b54bf384 --- /dev/null +++ b/spec/templates/rails8/pg/test_sibling_default.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: test_defaults +# +# id :bigint not null, primary key +# boolean :boolean default(FALSE) +# date :date default(Tue, 04 Jul 2023) +# datetime :datetime default(2023-07-04 12:34:56.000000000 UTC +00:00) +# decimal :decimal(14, 2) default(43.21) +# float :float default(12.34) +# integer :integer default(99) +# string :string default("hello world!") +# created_at :datetime not null +# updated_at :datetime not null +# +class TestSiblingDefault < TestDefault +end diff --git a/spec/templates/rails8/pg/test_true_sti.rb b/spec/templates/rails8/pg/test_true_sti.rb new file mode 100644 index 00000000..4e94bcc8 --- /dev/null +++ b/spec/templates/rails8/pg/test_true_sti.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: test_parents +# +# id :bigint not null, primary key +# something :string +# type :string +# created_at :datetime not null +# updated_at :datetime not null +# +class TestTrueSti < TestParent +end diff --git a/spec/templates/rails8/sqlite3/collapsed_test_model.rb b/spec/templates/rails8/sqlite3/collapsed_test_model.rb new file mode 100644 index 00000000..f63170ab --- /dev/null +++ b/spec/templates/rails8/sqlite3/collapsed_test_model.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: collapsed_test_models +# +# id :integer not null, primary key +# collapsed :boolean +# name :string +# created_at :datetime not null +# updated_at :datetime not null +# +module Collapsed + class TestModel < ApplicationRecord + def self.table_name_prefix + "collapsed_" + end + end +end diff --git a/spec/templates/rails8/sqlite3/nested_position_collapsed_test_model.rb b/spec/templates/rails8/sqlite3/nested_position_collapsed_test_model.rb new file mode 100644 index 00000000..54016301 --- /dev/null +++ b/spec/templates/rails8/sqlite3/nested_position_collapsed_test_model.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +module Collapsed + # == Schema Information + # + # Table name: collapsed_test_models + # + # id :integer not null, primary key + # collapsed :boolean + # name :string + # created_at :datetime not null + # updated_at :datetime not null + # + class TestModel < ApplicationRecord + def self.table_name_prefix + "collapsed_" + end + end +end diff --git a/spec/templates/rails8/sqlite3/test_child_default.rb b/spec/templates/rails8/sqlite3/test_child_default.rb new file mode 100644 index 00000000..a5b99b45 --- /dev/null +++ b/spec/templates/rails8/sqlite3/test_child_default.rb @@ -0,0 +1,20 @@ +# == Schema Information +# +# Table name: test_child_defaults +# +# id :integer not null, primary key +# created_at :datetime not null +# updated_at :datetime not null +# test_default_id :integer not null +# +# Indexes +# +# index_test_child_defaults_on_test_default_id (test_default_id) +# +# Foreign Keys +# +# test_default_id (test_default_id => test_defaults.id) +# +class TestChildDefault < ApplicationRecord + belongs_to :test_default +end diff --git a/spec/templates/rails8/sqlite3/test_default.rb b/spec/templates/rails8/sqlite3/test_default.rb new file mode 100644 index 00000000..bff272dd --- /dev/null +++ b/spec/templates/rails8/sqlite3/test_default.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: test_defaults +# +# id :integer not null, primary key +# boolean :boolean default(FALSE) +# date :date default(Tue, 04 Jul 2023) +# datetime :datetime default(2023-07-04 12:34:56.000000000 UTC +00:00) +# decimal :decimal(14, 2) default(43.21) +# float :float default(12.34) +# integer :integer default(99) +# string :string default("hello world!") +# created_at :datetime not null +# updated_at :datetime not null +# +class TestDefault < ApplicationRecord +end diff --git a/spec/templates/rails8/sqlite3/test_default_updated.rb b/spec/templates/rails8/sqlite3/test_default_updated.rb new file mode 100644 index 00000000..45adb34f --- /dev/null +++ b/spec/templates/rails8/sqlite3/test_default_updated.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: test_defaults +# +# id :integer not null, primary key +# boolean :boolean default(FALSE) +# date :date default(Tue, 04 Jul 2023) +# datetime :datetime default(2023-07-04 12:34:56.000000000 UTC +00:00) +# decimal :decimal(14, 2) default(43.21) +# float :float default(12.34) +# int_field :integer +# integer :integer default(99) +# string :string default("hello world!") +# created_at :datetime not null +# updated_at :datetime not null +# +class TestDefault < ApplicationRecord +end diff --git a/spec/templates/rails8/sqlite3/test_default_with_bottom_annotations.rb b/spec/templates/rails8/sqlite3/test_default_with_bottom_annotations.rb new file mode 100644 index 00000000..03540654 --- /dev/null +++ b/spec/templates/rails8/sqlite3/test_default_with_bottom_annotations.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true +class TestDefault < ApplicationRecord +end + +# == Schema Information +# +# Table name: test_defaults +# +# id :integer not null, primary key +# boolean :boolean default(FALSE) +# date :date default(Tue, 04 Jul 2023) +# datetime :datetime default(2023-07-04 12:34:56.000000000 UTC +00:00) +# decimal :decimal(14, 2) default(43.21) +# float :float default(12.34) +# integer :integer default(99) +# string :string default("hello world!") +# created_at :datetime not null +# updated_at :datetime not null +# diff --git a/spec/templates/rails8/sqlite3/test_null_false.rb b/spec/templates/rails8/sqlite3/test_null_false.rb new file mode 100644 index 00000000..0189d958 --- /dev/null +++ b/spec/templates/rails8/sqlite3/test_null_false.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: test_null_falses +# +# id :integer not null, primary key +# binary :binary not null +# boolean :boolean not null +# date :date not null +# datetime :datetime not null +# decimal :decimal(14, 2) not null +# float :float not null +# integer :integer not null +# string :string not null +# text :text not null +# timestamp :datetime not null +# created_at :datetime not null +# updated_at :datetime not null +# +# Indexes +# +# by_compound_bool_and_int (boolean,integer) +# index_test_null_falses_on_date (date) +# +class TestNullFalse < ApplicationRecord +end diff --git a/spec/templates/rails8/sqlite3/test_parent.rb b/spec/templates/rails8/sqlite3/test_parent.rb new file mode 100644 index 00000000..3ac9dd2d --- /dev/null +++ b/spec/templates/rails8/sqlite3/test_parent.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: test_parents +# +# id :integer not null, primary key +# something :string +# type :string +# created_at :datetime not null +# updated_at :datetime not null +# +class TestParent < ApplicationRecord +end diff --git a/spec/templates/rails8/sqlite3/test_sibling_default.rb b/spec/templates/rails8/sqlite3/test_sibling_default.rb new file mode 100644 index 00000000..14d552cc --- /dev/null +++ b/spec/templates/rails8/sqlite3/test_sibling_default.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: test_defaults +# +# id :integer not null, primary key +# boolean :boolean default(FALSE) +# date :date default(Tue, 04 Jul 2023) +# datetime :datetime default(2023-07-04 12:34:56.000000000 UTC +00:00) +# decimal :decimal(14, 2) default(43.21) +# float :float default(12.34) +# integer :integer default(99) +# string :string default("hello world!") +# created_at :datetime not null +# updated_at :datetime not null +# +class TestSiblingDefault < TestDefault +end diff --git a/spec/templates/rails8/sqlite3/test_true_sti.rb b/spec/templates/rails8/sqlite3/test_true_sti.rb new file mode 100644 index 00000000..7679c77a --- /dev/null +++ b/spec/templates/rails8/sqlite3/test_true_sti.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: test_parents +# +# id :integer not null, primary key +# something :string +# type :string +# created_at :datetime not null +# updated_at :datetime not null +# +class TestTrueSti < TestParent +end From 870e30ddaf6cd981acfccdc51b67b555b11229f7 Mon Sep 17 00:00:00 2001 From: OdenTakashi Date: Thu, 25 Jun 2026 17:31:31 +0900 Subject: [PATCH 3/4] Allow sqlite3 2.x in dummyapp for Rails 8 CI matrix Rails 8 requires sqlite3 >= 2.1 while older Rails minors keep the existing 1.x constraint so integration jobs can boot on both sides of the boundary. Co-authored-by: Cursor --- spec/dummyapp/Gemfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/spec/dummyapp/Gemfile b/spec/dummyapp/Gemfile index adf2c736..8f049c90 100644 --- a/spec/dummyapp/Gemfile +++ b/spec/dummyapp/Gemfile @@ -10,7 +10,11 @@ when 'mysql2' when 'pg' gem 'pg', '>= 1.5', '< 2' when 'sqlite3' - gem 'sqlite3', '>= 1.6', '< 2' + if ENV.fetch("RAILS_VERSION", "~> 7.1.0")[/(\d+)\./, 1].to_i >= 8 + gem 'sqlite3', '>= 2.1' + else + gem 'sqlite3', '>= 1.6', '< 2' + end else raise 'The environment variable DATABASE_ADAPTER must be one of mysql2, pg, or sqlite3' end From c7fb663a23730aef09a7d120848b328593c93a88 Mon Sep 17 00:00:00 2001 From: OdenTakashi Date: Thu, 25 Jun 2026 18:48:05 +0900 Subject: [PATCH 4/4] Keep only Rails 8 datetime overrides in rails8 templates Fall back to pre8 templates for unchanged files so only the four specs with datetime default differences need rails8-specific golden files. Co-authored-by: Cursor --- spec/support/aruba.rb | 13 +++++---- .../rails8/mysql2/collapsed_test_model.rb | 19 ------------- .../nested_position_collapsed_test_model.rb | 19 ------------- .../rails8/mysql2/test_child_default.rb | 20 -------------- .../rails8/mysql2/test_null_false.rb | 27 ------------------- spec/templates/rails8/mysql2/test_parent.rb | 14 ---------- spec/templates/rails8/mysql2/test_true_sti.rb | 14 ---------- .../rails8/pg/collapsed_test_model.rb | 19 ------------- .../nested_position_collapsed_test_model.rb | 19 ------------- .../templates/rails8/pg/test_child_default.rb | 20 -------------- spec/templates/rails8/pg/test_null_false.rb | 27 ------------------- spec/templates/rails8/pg/test_parent.rb | 14 ---------- spec/templates/rails8/pg/test_true_sti.rb | 14 ---------- .../rails8/sqlite3/collapsed_test_model.rb | 19 ------------- .../nested_position_collapsed_test_model.rb | 19 ------------- .../rails8/sqlite3/test_child_default.rb | 20 -------------- .../rails8/sqlite3/test_null_false.rb | 27 ------------------- spec/templates/rails8/sqlite3/test_parent.rb | 14 ---------- .../templates/rails8/sqlite3/test_true_sti.rb | 14 ---------- 19 files changed, 8 insertions(+), 344 deletions(-) delete mode 100644 spec/templates/rails8/mysql2/collapsed_test_model.rb delete mode 100644 spec/templates/rails8/mysql2/nested_position_collapsed_test_model.rb delete mode 100644 spec/templates/rails8/mysql2/test_child_default.rb delete mode 100644 spec/templates/rails8/mysql2/test_null_false.rb delete mode 100644 spec/templates/rails8/mysql2/test_parent.rb delete mode 100644 spec/templates/rails8/mysql2/test_true_sti.rb delete mode 100644 spec/templates/rails8/pg/collapsed_test_model.rb delete mode 100644 spec/templates/rails8/pg/nested_position_collapsed_test_model.rb delete mode 100644 spec/templates/rails8/pg/test_child_default.rb delete mode 100644 spec/templates/rails8/pg/test_null_false.rb delete mode 100644 spec/templates/rails8/pg/test_parent.rb delete mode 100644 spec/templates/rails8/pg/test_true_sti.rb delete mode 100644 spec/templates/rails8/sqlite3/collapsed_test_model.rb delete mode 100644 spec/templates/rails8/sqlite3/nested_position_collapsed_test_model.rb delete mode 100644 spec/templates/rails8/sqlite3/test_child_default.rb delete mode 100644 spec/templates/rails8/sqlite3/test_null_false.rb delete mode 100644 spec/templates/rails8/sqlite3/test_parent.rb delete mode 100644 spec/templates/rails8/sqlite3/test_true_sti.rb diff --git a/spec/support/aruba.rb b/spec/support/aruba.rb index 41c7a513..4d01f761 100644 --- a/spec/support/aruba.rb +++ b/spec/support/aruba.rb @@ -9,14 +9,12 @@ def read_file(name) read(name).join("\n") end - def rails_template_set - requirement = ENV.fetch("RAILS_VERSION", "~> 7.1.0") - major = requirement[/(\d+)\./, 1].to_i - (major >= 8) ? "rails8" : "pre8" + def rails8? + ENV.fetch("RAILS_VERSION", "~> 7.1.0")[/(\d+)\./, 1].to_i >= 8 end def models_template_dir - File.join(::Aruba.config.root_directory, "spec/templates/#{rails_template_set}/#{ENV["DATABASE_ADAPTER"]}") + File.join(::Aruba.config.root_directory, "spec/templates/pre8/#{ENV["DATABASE_ADAPTER"]}") end def migrations_template_dir @@ -24,6 +22,11 @@ def migrations_template_dir end def model_template(name) + if rails8? + rails8_path = File.join(::Aruba.config.root_directory, "spec/templates/rails8/#{ENV["DATABASE_ADAPTER"]}", name) + return rails8_path if File.exist?(rails8_path) + end + File.join(models_template_dir, name) end diff --git a/spec/templates/rails8/mysql2/collapsed_test_model.rb b/spec/templates/rails8/mysql2/collapsed_test_model.rb deleted file mode 100644 index 50d4402e..00000000 --- a/spec/templates/rails8/mysql2/collapsed_test_model.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -# == Schema Information -# -# Table name: collapsed_test_models -# -# id :bigint not null, primary key -# collapsed :boolean -# name :string(255) -# created_at :datetime not null -# updated_at :datetime not null -# -module Collapsed - class TestModel < ApplicationRecord - def self.table_name_prefix - "collapsed_" - end - end -end diff --git a/spec/templates/rails8/mysql2/nested_position_collapsed_test_model.rb b/spec/templates/rails8/mysql2/nested_position_collapsed_test_model.rb deleted file mode 100644 index 6849ce0c..00000000 --- a/spec/templates/rails8/mysql2/nested_position_collapsed_test_model.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -module Collapsed - # == Schema Information - # - # Table name: collapsed_test_models - # - # id :bigint not null, primary key - # collapsed :boolean - # name :string(255) - # created_at :datetime not null - # updated_at :datetime not null - # - class TestModel < ApplicationRecord - def self.table_name_prefix - "collapsed_" - end - end -end diff --git a/spec/templates/rails8/mysql2/test_child_default.rb b/spec/templates/rails8/mysql2/test_child_default.rb deleted file mode 100644 index 9bd632e8..00000000 --- a/spec/templates/rails8/mysql2/test_child_default.rb +++ /dev/null @@ -1,20 +0,0 @@ -# == Schema Information -# -# Table name: test_child_defaults -# -# id :bigint not null, primary key -# created_at :datetime not null -# updated_at :datetime not null -# test_default_id :bigint not null -# -# Indexes -# -# index_test_child_defaults_on_test_default_id (test_default_id) -# -# Foreign Keys -# -# fk_rails_... (test_default_id => test_defaults.id) -# -class TestChildDefault < ApplicationRecord - belongs_to :test_default -end diff --git a/spec/templates/rails8/mysql2/test_null_false.rb b/spec/templates/rails8/mysql2/test_null_false.rb deleted file mode 100644 index 77932ad9..00000000 --- a/spec/templates/rails8/mysql2/test_null_false.rb +++ /dev/null @@ -1,27 +0,0 @@ -# frozen_string_literal: true - -# == Schema Information -# -# Table name: test_null_falses -# -# id :bigint not null, primary key -# binary :binary(65535) not null -# boolean :boolean not null -# date :date not null -# datetime :datetime not null -# decimal :decimal(14, 2) not null -# float :float(24) not null -# integer :integer not null -# string :string(255) not null -# text :text(65535) not null -# timestamp :datetime not null -# created_at :datetime not null -# updated_at :datetime not null -# -# Indexes -# -# by_compound_bool_and_int (boolean,integer) -# index_test_null_falses_on_date (date) -# -class TestNullFalse < ApplicationRecord -end diff --git a/spec/templates/rails8/mysql2/test_parent.rb b/spec/templates/rails8/mysql2/test_parent.rb deleted file mode 100644 index 3ac9dd2d..00000000 --- a/spec/templates/rails8/mysql2/test_parent.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -# == Schema Information -# -# Table name: test_parents -# -# id :integer not null, primary key -# something :string -# type :string -# created_at :datetime not null -# updated_at :datetime not null -# -class TestParent < ApplicationRecord -end diff --git a/spec/templates/rails8/mysql2/test_true_sti.rb b/spec/templates/rails8/mysql2/test_true_sti.rb deleted file mode 100644 index 63cecdb5..00000000 --- a/spec/templates/rails8/mysql2/test_true_sti.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -# == Schema Information -# -# Table name: test_parents -# -# id :bigint not null, primary key -# something :string(255) -# type :string(255) -# created_at :datetime not null -# updated_at :datetime not null -# -class TestTrueSti < TestParent -end diff --git a/spec/templates/rails8/pg/collapsed_test_model.rb b/spec/templates/rails8/pg/collapsed_test_model.rb deleted file mode 100644 index 6ad7a530..00000000 --- a/spec/templates/rails8/pg/collapsed_test_model.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -# == Schema Information -# -# Table name: collapsed_test_models -# -# id :bigint not null, primary key -# collapsed :boolean -# name :string -# created_at :datetime not null -# updated_at :datetime not null -# -module Collapsed - class TestModel < ApplicationRecord - def self.table_name_prefix - "collapsed_" - end - end -end diff --git a/spec/templates/rails8/pg/nested_position_collapsed_test_model.rb b/spec/templates/rails8/pg/nested_position_collapsed_test_model.rb deleted file mode 100644 index d0afdf52..00000000 --- a/spec/templates/rails8/pg/nested_position_collapsed_test_model.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -module Collapsed - # == Schema Information - # - # Table name: collapsed_test_models - # - # id :bigint not null, primary key - # collapsed :boolean - # name :string - # created_at :datetime not null - # updated_at :datetime not null - # - class TestModel < ApplicationRecord - def self.table_name_prefix - "collapsed_" - end - end -end diff --git a/spec/templates/rails8/pg/test_child_default.rb b/spec/templates/rails8/pg/test_child_default.rb deleted file mode 100644 index 9bd632e8..00000000 --- a/spec/templates/rails8/pg/test_child_default.rb +++ /dev/null @@ -1,20 +0,0 @@ -# == Schema Information -# -# Table name: test_child_defaults -# -# id :bigint not null, primary key -# created_at :datetime not null -# updated_at :datetime not null -# test_default_id :bigint not null -# -# Indexes -# -# index_test_child_defaults_on_test_default_id (test_default_id) -# -# Foreign Keys -# -# fk_rails_... (test_default_id => test_defaults.id) -# -class TestChildDefault < ApplicationRecord - belongs_to :test_default -end diff --git a/spec/templates/rails8/pg/test_null_false.rb b/spec/templates/rails8/pg/test_null_false.rb deleted file mode 100644 index 98868ab6..00000000 --- a/spec/templates/rails8/pg/test_null_false.rb +++ /dev/null @@ -1,27 +0,0 @@ -# frozen_string_literal: true - -# == Schema Information -# -# Table name: test_null_falses -# -# id :bigint not null, primary key -# binary :binary not null -# boolean :boolean not null -# date :date not null -# datetime :datetime not null -# decimal :decimal(14, 2) not null -# float :float not null -# integer :integer not null -# string :string not null -# text :text not null -# timestamp :datetime not null -# created_at :datetime not null -# updated_at :datetime not null -# -# Indexes -# -# by_compound_bool_and_int (boolean,integer) -# index_test_null_falses_on_date (date) -# -class TestNullFalse < ApplicationRecord -end diff --git a/spec/templates/rails8/pg/test_parent.rb b/spec/templates/rails8/pg/test_parent.rb deleted file mode 100644 index 3ac9dd2d..00000000 --- a/spec/templates/rails8/pg/test_parent.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -# == Schema Information -# -# Table name: test_parents -# -# id :integer not null, primary key -# something :string -# type :string -# created_at :datetime not null -# updated_at :datetime not null -# -class TestParent < ApplicationRecord -end diff --git a/spec/templates/rails8/pg/test_true_sti.rb b/spec/templates/rails8/pg/test_true_sti.rb deleted file mode 100644 index 4e94bcc8..00000000 --- a/spec/templates/rails8/pg/test_true_sti.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -# == Schema Information -# -# Table name: test_parents -# -# id :bigint not null, primary key -# something :string -# type :string -# created_at :datetime not null -# updated_at :datetime not null -# -class TestTrueSti < TestParent -end diff --git a/spec/templates/rails8/sqlite3/collapsed_test_model.rb b/spec/templates/rails8/sqlite3/collapsed_test_model.rb deleted file mode 100644 index f63170ab..00000000 --- a/spec/templates/rails8/sqlite3/collapsed_test_model.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -# == Schema Information -# -# Table name: collapsed_test_models -# -# id :integer not null, primary key -# collapsed :boolean -# name :string -# created_at :datetime not null -# updated_at :datetime not null -# -module Collapsed - class TestModel < ApplicationRecord - def self.table_name_prefix - "collapsed_" - end - end -end diff --git a/spec/templates/rails8/sqlite3/nested_position_collapsed_test_model.rb b/spec/templates/rails8/sqlite3/nested_position_collapsed_test_model.rb deleted file mode 100644 index 54016301..00000000 --- a/spec/templates/rails8/sqlite3/nested_position_collapsed_test_model.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -module Collapsed - # == Schema Information - # - # Table name: collapsed_test_models - # - # id :integer not null, primary key - # collapsed :boolean - # name :string - # created_at :datetime not null - # updated_at :datetime not null - # - class TestModel < ApplicationRecord - def self.table_name_prefix - "collapsed_" - end - end -end diff --git a/spec/templates/rails8/sqlite3/test_child_default.rb b/spec/templates/rails8/sqlite3/test_child_default.rb deleted file mode 100644 index a5b99b45..00000000 --- a/spec/templates/rails8/sqlite3/test_child_default.rb +++ /dev/null @@ -1,20 +0,0 @@ -# == Schema Information -# -# Table name: test_child_defaults -# -# id :integer not null, primary key -# created_at :datetime not null -# updated_at :datetime not null -# test_default_id :integer not null -# -# Indexes -# -# index_test_child_defaults_on_test_default_id (test_default_id) -# -# Foreign Keys -# -# test_default_id (test_default_id => test_defaults.id) -# -class TestChildDefault < ApplicationRecord - belongs_to :test_default -end diff --git a/spec/templates/rails8/sqlite3/test_null_false.rb b/spec/templates/rails8/sqlite3/test_null_false.rb deleted file mode 100644 index 0189d958..00000000 --- a/spec/templates/rails8/sqlite3/test_null_false.rb +++ /dev/null @@ -1,27 +0,0 @@ -# frozen_string_literal: true - -# == Schema Information -# -# Table name: test_null_falses -# -# id :integer not null, primary key -# binary :binary not null -# boolean :boolean not null -# date :date not null -# datetime :datetime not null -# decimal :decimal(14, 2) not null -# float :float not null -# integer :integer not null -# string :string not null -# text :text not null -# timestamp :datetime not null -# created_at :datetime not null -# updated_at :datetime not null -# -# Indexes -# -# by_compound_bool_and_int (boolean,integer) -# index_test_null_falses_on_date (date) -# -class TestNullFalse < ApplicationRecord -end diff --git a/spec/templates/rails8/sqlite3/test_parent.rb b/spec/templates/rails8/sqlite3/test_parent.rb deleted file mode 100644 index 3ac9dd2d..00000000 --- a/spec/templates/rails8/sqlite3/test_parent.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -# == Schema Information -# -# Table name: test_parents -# -# id :integer not null, primary key -# something :string -# type :string -# created_at :datetime not null -# updated_at :datetime not null -# -class TestParent < ApplicationRecord -end diff --git a/spec/templates/rails8/sqlite3/test_true_sti.rb b/spec/templates/rails8/sqlite3/test_true_sti.rb deleted file mode 100644 index 7679c77a..00000000 --- a/spec/templates/rails8/sqlite3/test_true_sti.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -# == Schema Information -# -# Table name: test_parents -# -# id :integer not null, primary key -# something :string -# type :string -# created_at :datetime not null -# updated_at :datetime not null -# -class TestTrueSti < TestParent -end