Fix `mentions.account_id` and `mentions.status_id` not having `NOT NULL` database constraints (#30591)
This commit is contained in:
		
							parent
							
								
									37e4d96b70
								
							
						
					
					
						commit
						9e9613b286
					
				| 
						 | 
				
			
			@ -5,10 +5,10 @@
 | 
			
		|||
# Table name: mentions
 | 
			
		||||
#
 | 
			
		||||
#  id         :bigint(8)        not null, primary key
 | 
			
		||||
#  status_id  :bigint(8)
 | 
			
		||||
#  status_id  :bigint(8)        not null
 | 
			
		||||
#  created_at :datetime         not null
 | 
			
		||||
#  updated_at :datetime         not null
 | 
			
		||||
#  account_id :bigint(8)
 | 
			
		||||
#  account_id :bigint(8)        not null
 | 
			
		||||
#  silent     :boolean          default(FALSE), not null
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class ChangeMentionStatusIdNonNullable < ActiveRecord::Migration[7.1]
 | 
			
		||||
  def change
 | 
			
		||||
    add_check_constraint :mentions, 'status_id IS NOT NULL', name: 'mentions_status_id_null', validate: false
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class ValidateChangeMentionStatusIdNonNullable < ActiveRecord::Migration[7.1]
 | 
			
		||||
  def up
 | 
			
		||||
    validate_check_constraint :mentions, name: 'mentions_status_id_null'
 | 
			
		||||
    change_column_null :mentions, :status_id, false
 | 
			
		||||
    remove_check_constraint :mentions, name: 'mentions_status_id_null'
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def down
 | 
			
		||||
    add_check_constraint :mentions, 'status_id IS NOT NULL', name: 'mentions_status_id_null', validate: false
 | 
			
		||||
    change_column_null :mentions, :status_id, true
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class ChangeMentionAccountIdNonNullable < ActiveRecord::Migration[7.1]
 | 
			
		||||
  def change
 | 
			
		||||
    add_check_constraint :mentions, 'account_id IS NOT NULL', name: 'mentions_account_id_null', validate: false
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
class ValidateChangeMentionAccountIdNonNullable < ActiveRecord::Migration[7.1]
 | 
			
		||||
  def up
 | 
			
		||||
    validate_check_constraint :mentions, name: 'mentions_account_id_null'
 | 
			
		||||
    change_column_null :mentions, :account_id, false
 | 
			
		||||
    remove_check_constraint :mentions, name: 'mentions_account_id_null'
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def down
 | 
			
		||||
    add_check_constraint :mentions, 'account_id IS NOT NULL', name: 'mentions_account_id_null', validate: false
 | 
			
		||||
    change_column_null :mentions, :account_id, true
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -10,7 +10,7 @@
 | 
			
		|||
#
 | 
			
		||||
# It's strongly recommended that you check this file into your version control system.
 | 
			
		||||
 | 
			
		||||
ActiveRecord::Schema[7.1].define(version: 2024_06_03_195202) do
 | 
			
		||||
ActiveRecord::Schema[7.1].define(version: 2024_06_07_094856) do
 | 
			
		||||
  # These are extensions that must be enabled in order to support this database
 | 
			
		||||
  enable_extension "plpgsql"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -661,10 +661,10 @@ ActiveRecord::Schema[7.1].define(version: 2024_06_03_195202) do
 | 
			
		|||
  end
 | 
			
		||||
 | 
			
		||||
  create_table "mentions", force: :cascade do |t|
 | 
			
		||||
    t.bigint "status_id"
 | 
			
		||||
    t.bigint "status_id", null: false
 | 
			
		||||
    t.datetime "created_at", precision: nil, null: false
 | 
			
		||||
    t.datetime "updated_at", precision: nil, null: false
 | 
			
		||||
    t.bigint "account_id"
 | 
			
		||||
    t.bigint "account_id", null: false
 | 
			
		||||
    t.boolean "silent", default: false, null: false
 | 
			
		||||
    t.index ["account_id", "status_id"], name: "index_mentions_on_account_id_and_status_id", unique: true
 | 
			
		||||
    t.index ["status_id"], name: "index_mentions_on_status_id"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue