Prevent schema.rb reverting from datetime_with_timezone to datetime
This commit is contained in:
parent
7619bdd659
commit
d2ebc9b931
|
@ -79,3 +79,8 @@ elsif Gitlab::Database.mysql?
|
||||||
NATIVE_DATABASE_TYPES[:datetime_with_timezone] = { name: 'timestamp' }
|
NATIVE_DATABASE_TYPES[:datetime_with_timezone] = { name: 'timestamp' }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Ensure `datetime_with_timezone` columns are correctly written to schema.rb
|
||||||
|
if (ActiveRecord::Base.connection.active? rescue false)
|
||||||
|
ActiveRecord::Base.connection.send :reload_type_map
|
||||||
|
end
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
class FixDevTimezoneSchema < ActiveRecord::Migration
|
||||||
|
include Gitlab::Database::MigrationHelpers
|
||||||
|
|
||||||
|
# The this migrations tries to help solve unwanted changes to `schema.rb`
|
||||||
|
# while developing GitLab. Installations created before we started using
|
||||||
|
# `datetime_with_timezone` are likely to face this problem. Updating those
|
||||||
|
# columns to the new type should help fix this.
|
||||||
|
|
||||||
|
# Set this constant to true if this migration requires downtime.
|
||||||
|
DOWNTIME = false
|
||||||
|
|
||||||
|
TIMEZONE_TABLES = %i(appearances ci_group_variables ci_pipeline_schedule_variables events gpg_keys gpg_signatures project_auto_devops)
|
||||||
|
|
||||||
|
def up
|
||||||
|
return unless Rails.env.development? || Rails.env.test?
|
||||||
|
|
||||||
|
TIMEZONE_TABLES.each do |table|
|
||||||
|
change_column table, :created_at, :datetime_with_timezone
|
||||||
|
change_column table, :updated_at, :datetime_with_timezone
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
end
|
||||||
|
end
|
|
@ -649,8 +649,8 @@ ActiveRecord::Schema.define(version: 20171124150326) do
|
||||||
t.datetime "created_at"
|
t.datetime "created_at"
|
||||||
t.datetime "updated_at"
|
t.datetime "updated_at"
|
||||||
t.string "confirmation_token"
|
t.string "confirmation_token"
|
||||||
t.datetime "confirmed_at"
|
t.datetime_with_timezone "confirmed_at"
|
||||||
t.datetime "confirmation_sent_at"
|
t.datetime_with_timezone "confirmation_sent_at"
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "emails", ["confirmation_token"], name: "index_emails_on_confirmation_token", unique: true, using: :btree
|
add_index "emails", ["confirmation_token"], name: "index_emails_on_confirmation_token", unique: true, using: :btree
|
||||||
|
@ -1762,8 +1762,8 @@ ActiveRecord::Schema.define(version: 20171124150326) do
|
||||||
add_index "user_agent_details", ["subject_id", "subject_type"], name: "index_user_agent_details_on_subject_id_and_subject_type", using: :btree
|
add_index "user_agent_details", ["subject_id", "subject_type"], name: "index_user_agent_details_on_subject_id_and_subject_type", using: :btree
|
||||||
|
|
||||||
create_table "user_custom_attributes", force: :cascade do |t|
|
create_table "user_custom_attributes", force: :cascade do |t|
|
||||||
t.datetime "created_at", null: false
|
t.datetime_with_timezone "created_at", null: false
|
||||||
t.datetime "updated_at", null: false
|
t.datetime_with_timezone "updated_at", null: false
|
||||||
t.integer "user_id", null: false
|
t.integer "user_id", null: false
|
||||||
t.string "key", null: false
|
t.string "key", null: false
|
||||||
t.string "value", null: false
|
t.string "value", null: false
|
||||||
|
|
Loading…
Reference in New Issue