Fix boolean columns sometimes having a null value (#4162)
* Fix boolean columns sometimes having a null value * Fix wrong value being set instead of null
This commit is contained in:
parent
e48d3bfd01
commit
880a5eb25c
6 changed files with 31 additions and 13 deletions
|
@ -8,7 +8,7 @@
|
||||||
# created_at :datetime not null
|
# created_at :datetime not null
|
||||||
# updated_at :datetime not null
|
# updated_at :datetime not null
|
||||||
# severity :integer default("silence")
|
# severity :integer default("silence")
|
||||||
# reject_media :boolean
|
# reject_media :boolean default(FALSE), not null
|
||||||
#
|
#
|
||||||
|
|
||||||
class DomainBlock < ApplicationRecord
|
class DomainBlock < ApplicationRecord
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
# id :integer not null, primary key
|
# id :integer not null, primary key
|
||||||
# account_id :integer not null
|
# account_id :integer not null
|
||||||
# type :integer not null
|
# type :integer not null
|
||||||
# approved :boolean
|
# approved :boolean default(FALSE), not null
|
||||||
# created_at :datetime not null
|
# created_at :datetime not null
|
||||||
# updated_at :datetime not null
|
# updated_at :datetime not null
|
||||||
# data_file_name :string
|
# data_file_name :string
|
||||||
|
|
|
@ -12,12 +12,12 @@
|
||||||
# in_reply_to_id :integer
|
# in_reply_to_id :integer
|
||||||
# reblog_of_id :integer
|
# reblog_of_id :integer
|
||||||
# url :string
|
# url :string
|
||||||
# sensitive :boolean default(FALSE)
|
# sensitive :boolean default(FALSE), not null
|
||||||
# visibility :integer default("public"), not null
|
# visibility :integer default("public"), not null
|
||||||
# in_reply_to_account_id :integer
|
# in_reply_to_account_id :integer
|
||||||
# application_id :integer
|
# application_id :integer
|
||||||
# spoiler_text :text default(""), not null
|
# spoiler_text :text default(""), not null
|
||||||
# reply :boolean default(FALSE)
|
# reply :boolean default(FALSE), not null
|
||||||
# favourites_count :integer default(0), not null
|
# favourites_count :integer default(0), not null
|
||||||
# reblogs_count :integer default(0), not null
|
# reblogs_count :integer default(0), not null
|
||||||
# language :string
|
# language :string
|
||||||
|
@ -249,6 +249,7 @@ class Status < ApplicationRecord
|
||||||
|
|
||||||
def set_visibility
|
def set_visibility
|
||||||
self.visibility = (account.locked? ? :private : :public) if visibility.nil?
|
self.visibility = (account.locked? ? :private : :public) if visibility.nil?
|
||||||
|
self.sensitive = false if sensitive.nil?
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_sensitivity
|
def set_sensitivity
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
# last_sign_in_at :datetime
|
# last_sign_in_at :datetime
|
||||||
# current_sign_in_ip :inet
|
# current_sign_in_ip :inet
|
||||||
# last_sign_in_ip :inet
|
# last_sign_in_ip :inet
|
||||||
# admin :boolean default(FALSE)
|
# admin :boolean default(FALSE), not null
|
||||||
# confirmation_token :string
|
# confirmation_token :string
|
||||||
# confirmed_at :datetime
|
# confirmed_at :datetime
|
||||||
# confirmation_sent_at :datetime
|
# confirmation_sent_at :datetime
|
||||||
|
@ -27,7 +27,7 @@
|
||||||
# encrypted_otp_secret_iv :string
|
# encrypted_otp_secret_iv :string
|
||||||
# encrypted_otp_secret_salt :string
|
# encrypted_otp_secret_salt :string
|
||||||
# consumed_timestep :integer
|
# consumed_timestep :integer
|
||||||
# otp_required_for_login :boolean
|
# otp_required_for_login :boolean default(FALSE), not null
|
||||||
# last_emailed_at :datetime
|
# last_emailed_at :datetime
|
||||||
# otp_backup_codes :string is an Array
|
# otp_backup_codes :string is an Array
|
||||||
# filtered_languages :string default([]), not null, is an Array
|
# filtered_languages :string default([]), not null, is an Array
|
||||||
|
|
17
db/migrate/20170711225116_fix_null_booleans.rb
Normal file
17
db/migrate/20170711225116_fix_null_booleans.rb
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
class FixNullBooleans < ActiveRecord::Migration[5.1]
|
||||||
|
def change
|
||||||
|
change_column_default :domain_blocks, :reject_media, false
|
||||||
|
change_column_null :domain_blocks, :reject_media, false, false
|
||||||
|
|
||||||
|
change_column_default :imports, :approved, false
|
||||||
|
change_column_null :imports, :approved, false, false
|
||||||
|
|
||||||
|
change_column_null :statuses, :sensitive, false, false
|
||||||
|
change_column_null :statuses, :reply, false, false
|
||||||
|
|
||||||
|
change_column_null :users, :admin, false, false
|
||||||
|
|
||||||
|
change_column_default :users, :otp_required_for_login, false
|
||||||
|
change_column_null :users, :otp_required_for_login, false, false
|
||||||
|
end
|
||||||
|
end
|
14
db/schema.rb
14
db/schema.rb
|
@ -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.define(version: 20170625140443) do
|
ActiveRecord::Schema.define(version: 20170711225116) 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"
|
||||||
|
@ -89,7 +89,7 @@ ActiveRecord::Schema.define(version: 20170625140443) do
|
||||||
t.datetime "created_at", null: false
|
t.datetime "created_at", null: false
|
||||||
t.datetime "updated_at", null: false
|
t.datetime "updated_at", null: false
|
||||||
t.integer "severity", default: 0
|
t.integer "severity", default: 0
|
||||||
t.boolean "reject_media"
|
t.boolean "reject_media", default: false, null: false
|
||||||
t.index ["domain"], name: "index_domain_blocks_on_domain", unique: true
|
t.index ["domain"], name: "index_domain_blocks_on_domain", unique: true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -121,7 +121,7 @@ ActiveRecord::Schema.define(version: 20170625140443) do
|
||||||
create_table "imports", id: :serial, force: :cascade do |t|
|
create_table "imports", id: :serial, force: :cascade do |t|
|
||||||
t.integer "account_id", null: false
|
t.integer "account_id", null: false
|
||||||
t.integer "type", null: false
|
t.integer "type", null: false
|
||||||
t.boolean "approved"
|
t.boolean "approved", default: false, null: false
|
||||||
t.datetime "created_at", null: false
|
t.datetime "created_at", null: false
|
||||||
t.datetime "updated_at", null: false
|
t.datetime "updated_at", null: false
|
||||||
t.string "data_file_name"
|
t.string "data_file_name"
|
||||||
|
@ -281,12 +281,12 @@ ActiveRecord::Schema.define(version: 20170625140443) do
|
||||||
t.bigint "in_reply_to_id"
|
t.bigint "in_reply_to_id"
|
||||||
t.bigint "reblog_of_id"
|
t.bigint "reblog_of_id"
|
||||||
t.string "url"
|
t.string "url"
|
||||||
t.boolean "sensitive", default: false
|
t.boolean "sensitive", default: false, null: false
|
||||||
t.integer "visibility", default: 0, null: false
|
t.integer "visibility", default: 0, null: false
|
||||||
t.integer "in_reply_to_account_id"
|
t.integer "in_reply_to_account_id"
|
||||||
t.integer "application_id"
|
t.integer "application_id"
|
||||||
t.text "spoiler_text", default: "", null: false
|
t.text "spoiler_text", default: "", null: false
|
||||||
t.boolean "reply", default: false
|
t.boolean "reply", default: false, null: false
|
||||||
t.integer "favourites_count", default: 0, null: false
|
t.integer "favourites_count", default: 0, null: false
|
||||||
t.integer "reblogs_count", default: 0, null: false
|
t.integer "reblogs_count", default: 0, null: false
|
||||||
t.string "language"
|
t.string "language"
|
||||||
|
@ -350,7 +350,7 @@ ActiveRecord::Schema.define(version: 20170625140443) do
|
||||||
t.datetime "last_sign_in_at"
|
t.datetime "last_sign_in_at"
|
||||||
t.inet "current_sign_in_ip"
|
t.inet "current_sign_in_ip"
|
||||||
t.inet "last_sign_in_ip"
|
t.inet "last_sign_in_ip"
|
||||||
t.boolean "admin", default: false
|
t.boolean "admin", default: false, null: false
|
||||||
t.string "confirmation_token"
|
t.string "confirmation_token"
|
||||||
t.datetime "confirmed_at"
|
t.datetime "confirmed_at"
|
||||||
t.datetime "confirmation_sent_at"
|
t.datetime "confirmation_sent_at"
|
||||||
|
@ -360,7 +360,7 @@ ActiveRecord::Schema.define(version: 20170625140443) do
|
||||||
t.string "encrypted_otp_secret_iv"
|
t.string "encrypted_otp_secret_iv"
|
||||||
t.string "encrypted_otp_secret_salt"
|
t.string "encrypted_otp_secret_salt"
|
||||||
t.integer "consumed_timestep"
|
t.integer "consumed_timestep"
|
||||||
t.boolean "otp_required_for_login"
|
t.boolean "otp_required_for_login", default: false, null: false
|
||||||
t.datetime "last_emailed_at"
|
t.datetime "last_emailed_at"
|
||||||
t.string "otp_backup_codes", array: true
|
t.string "otp_backup_codes", array: true
|
||||||
t.string "filtered_languages", default: [], null: false, array: true
|
t.string "filtered_languages", default: [], null: false, array: true
|
||||||
|
|
Loading…
Reference in a new issue