From 5b1cd237e6036355f0cb883ba35d22622bc31da0 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Wed, 18 Feb 2026 22:23:55 +0000 Subject: [PATCH] Fix some null constraint database consistency warnings --- .database_consistency.yml | 28 ---------------------------- app/models/changeset_comment.rb | 2 +- app/models/language.rb | 2 ++ app/models/oauth2_application.rb | 2 ++ app/models/social_link.rb | 2 +- app/models/tracetag.rb | 2 +- app/models/user_block.rb | 3 ++- app/models/user_preference.rb | 2 +- 8 files changed, 10 insertions(+), 33 deletions(-) diff --git a/.database_consistency.yml b/.database_consistency.yml index 9bf9d8a4c..68dcbea66 100644 --- a/.database_consistency.yml +++ b/.database_consistency.yml @@ -32,9 +32,6 @@ ChangesetComment: author: MissingDependentDestroyChecker: enabled: false - body: - NullConstraintChecker: - enabled: false changeset: MissingDependentDestroyChecker: enabled: false @@ -131,9 +128,6 @@ Language: enabled: false MissingIndexChecker: enabled: false - english_name: - NullConstraintChecker: - enabled: false Message: recipient: MissingDependentDestroyChecker: @@ -189,9 +183,6 @@ NoteSubscription: MissingDependentDestroyChecker: enabled: false Oauth2Application: - redirect_uri: - NullConstraintChecker: - enabled: false secret: ColumnPresenceChecker: enabled: false @@ -352,9 +343,6 @@ Report: MissingDependentDestroyChecker: enabled: false SocialLink: - url: - NullConstraintChecker: - enabled: false user: MissingDependentDestroyChecker: enabled: false @@ -375,10 +363,6 @@ Tracepoint: timestamp: ColumnPresenceChecker: enabled: false -Tracetag: - tag: - NullConstraintChecker: - enabled: false User: blocks_revoked: MissingIndexChecker: @@ -420,15 +404,9 @@ UserBlock: creator: MissingDependentDestroyChecker: enabled: false - ends_at: - NullConstraintChecker: - enabled: false id: PrimaryKeyTypeChecker: enabled: false - reason: - NullConstraintChecker: - enabled: false revoker: MissingDependentDestroyChecker: enabled: false @@ -443,15 +421,9 @@ UserMute: MissingDependentDestroyChecker: enabled: false UserPreference: - k: - NullConstraintChecker: - enabled: false user: MissingDependentDestroyChecker: enabled: false - v: - NullConstraintChecker: - enabled: false UserRole: granter: MissingDependentDestroyChecker: diff --git a/app/models/changeset_comment.rb b/app/models/changeset_comment.rb index 5ffe7616c..744bd4382 100644 --- a/app/models/changeset_comment.rb +++ b/app/models/changeset_comment.rb @@ -35,7 +35,7 @@ class ChangesetComment < ApplicationRecord validates :changeset, :associated => true validates :author, :associated => true validates :visible, :inclusion => [true, false] - validates :body, :characters => true + validates :body, :characters => true, :presence => true # Return the comment text def body diff --git a/app/models/language.rb b/app/models/language.rb index cee0530ef..d5d05e09e 100644 --- a/app/models/language.rb +++ b/app/models/language.rb @@ -12,6 +12,8 @@ class Language < ApplicationRecord has_many :diary_entries, :foreign_key => "language", :inverse_of => :language + validates :english_name, :presence => true + def self.load(file) Language.transaction do YAML.safe_load_file(file).each do |k, v| diff --git a/app/models/oauth2_application.rb b/app/models/oauth2_application.rb index 7edbdf1ee..365d8f6df 100644 --- a/app/models/oauth2_application.rb +++ b/app/models/oauth2_application.rb @@ -28,6 +28,8 @@ class Oauth2Application < Doorkeeper::Application belongs_to :owner, :polymorphic => true + validates :redirect_uri, :presence => true + validate :allowed_scopes def authorized_scopes_for(user) diff --git a/app/models/social_link.rb b/app/models/social_link.rb index 8b640364f..633d0ef9b 100644 --- a/app/models/social_link.rb +++ b/app/models/social_link.rb @@ -22,7 +22,7 @@ class SocialLink < ApplicationRecord belongs_to :user - validates :url, :format => { :with => %r{\A(https?://.+|@([a-zA-Z0-9_]+)@([\w\-.]+))\z}, :message => :http_parse_error } + validates :url, :format => { :with => %r{\A(https?://.+|@([a-zA-Z0-9_]+)@([\w\-.]+))\z}, :message => :http_parse_error }, :presence => true URL_PATTERNS = { :bluesky => %r{\Ahttps?://(?:www\.)?bsky\.app/profile/([a-zA-Z0-9._-]+)}, diff --git a/app/models/tracetag.rb b/app/models/tracetag.rb index 2d26df21b..6e9a345e9 100644 --- a/app/models/tracetag.rb +++ b/app/models/tracetag.rb @@ -24,5 +24,5 @@ class Tracetag < ApplicationRecord belongs_to :trace, :foreign_key => "gpx_id", :inverse_of => :tags validates :trace, :associated => true - validates :tag, :length => 1..255, :characters => { :url_safe => true } + validates :tag, :length => 1..255, :characters => { :url_safe => true }, :presence => true end diff --git a/app/models/user_block.rb b/app/models/user_block.rb index ab851cfdd..cd01f55af 100644 --- a/app/models/user_block.rb +++ b/app/models/user_block.rb @@ -30,9 +30,10 @@ class UserBlock < ApplicationRecord validate :moderator_permissions - validates :reason, :characters => true, :length => { :maximum => 10000 } + validates :reason, :characters => true, :length => { :maximum => 10000 }, :presence => true validates :deactivates_at, :comparison => { :greater_than_or_equal_to => :ends_at }, :unless => -> { needs_view } validates :deactivates_at, :absence => true, :if => -> { needs_view } + validates :ends_at, :presence => true belongs_to :user, :class_name => "User" belongs_to :creator, :class_name => "User" diff --git a/app/models/user_preference.rb b/app/models/user_preference.rb index 61090bdda..46082b930 100644 --- a/app/models/user_preference.rb +++ b/app/models/user_preference.rb @@ -17,7 +17,7 @@ class UserPreference < ApplicationRecord belongs_to :user validates :user, :associated => true - validates :k, :v, :length => 1..255, :characters => true + validates :k, :v, :length => 1..255, :characters => true, :presence => true scope :color_schemes, -> { where("k LIKE '%.color_scheme'") } end -- 2.39.5