1
0
Fork 0
mirror of https://github.com/mastodon/mastodon.git synced 2024-08-20 21:08:15 -07:00

Fix mentions.account_id and mentions.status_id not having NOT NULL database constraints (#30591)

This commit is contained in:
Claire 2024-06-07 15:45:11 +02:00 committed by GitHub
parent 37e4d96b70
commit 9e9613b286
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 47 additions and 5 deletions

View file

@ -5,10 +5,10 @@
# Table name: mentions # Table name: mentions
# #
# id :bigint(8) not null, primary key # id :bigint(8) not null, primary key
# status_id :bigint(8) # status_id :bigint(8) not null
# created_at :datetime not null # created_at :datetime not null
# updated_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 # silent :boolean default(FALSE), not null
# #

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -10,7 +10,7 @@
# #
# It's strongly recommended that you check this file into your version control system. # 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 # These are extensions that must be enabled in order to support this database
enable_extension "plpgsql" enable_extension "plpgsql"
@ -661,10 +661,10 @@ ActiveRecord::Schema[7.1].define(version: 2024_06_03_195202) do
end end
create_table "mentions", force: :cascade do |t| 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 "created_at", precision: nil, null: false
t.datetime "updated_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.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 ["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" t.index ["status_id"], name: "index_mentions_on_status_id"