diff --git a/db/migrate/20251221104708_change_audits_id_to_bigint.rb b/db/migrate/20251221104708_change_audits_id_to_bigint.rb new file mode 100644 index 0000000000..69c2a4ad37 --- /dev/null +++ b/db/migrate/20251221104708_change_audits_id_to_bigint.rb @@ -0,0 +1,11 @@ +class ChangeAuditsIdToBigint < ActiveRecord::Migration[7.1] + uses_departure! if Rails.env.staging? || Rails.env.production? + + def up + change_column :audits, :id, "bigint NOT NULL AUTO_INCREMENT" + end + + def down + raise ActiveRecord::IrreversibleMigration, "This migration cannot be reverted because we can't safely migrate to a smaller id" + end +end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index d55c1bf1f3..d90c7b8c68 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -1,6 +1,17 @@ require "spec_helper" describe User do + describe "audits" do + let(:user) { create(:user) } + + it "can have an id larger than unsigned int" do + audit = Audited::Audit.new(id: 5_294_967_295, auditable: user) + + expect(audit).to be_valid + expect(audit.save).to be_truthy + end + end + describe "validations" do context "with a forbidden user name" do let(:forbidden_username) { Faker::Lorem.characters(number: 8) }