diff --git a/db/migrate/20200726215928_change_tag_ids_to_bigints.rb b/db/migrate/20200726215928_change_tag_ids_to_bigints.rb new file mode 100644 index 000000000..33b5fb987 --- /dev/null +++ b/db/migrate/20200726215928_change_tag_ids_to_bigints.rb @@ -0,0 +1,67 @@ +class ChangeTagIdsToBigints < ActiveRecord::Migration[6.0] + def up + ActiveRecord::Base.connection.execute("DROP VIEW IF EXISTS hypershield.tag_adjustments") + ActiveRecord::Base.connection.execute( + <<-SQL + ALTER TABLE tag_adjustments + ALTER COLUMN article_id TYPE bigint, + ALTER COLUMN user_id TYPE bigint, + ALTER COLUMN tag_id TYPE bigint + SQL + ) + + ActiveRecord::Base.connection.execute("DROP VIEW IF EXISTS hypershield.taggings") + ActiveRecord::Base.connection.execute( + <<-SQL + ALTER TABLE taggings + ALTER COLUMN id TYPE bigint, + ALTER COLUMN tag_id TYPE bigint, + ALTER COLUMN taggable_id TYPE bigint, + ALTER COLUMN tagger_id TYPE bigint + SQL + ) + + ActiveRecord::Base.connection.execute("DROP VIEW IF EXISTS hypershield.tags") + ActiveRecord::Base.connection.execute( + <<-SQL + ALTER TABLE tags + ALTER COLUMN id TYPE bigint, + ALTER COLUMN badge_id TYPE bigint, + ALTER COLUMN mod_chat_channel_id TYPE bigint + SQL + ) + end + + def down + ActiveRecord::Base.connection.execute("DROP VIEW IF EXISTS hypershield.tag_adjustments") + ActiveRecord::Base.connection.execute( + <<-SQL + ALTER TABLE tag_adjustments + ALTER COLUMN article_id TYPE int, + ALTER COLUMN user_id TYPE int, + ALTER COLUMN tag_id TYPE int + SQL + ) + + ActiveRecord::Base.connection.execute("DROP VIEW IF EXISTS hypershield.taggings") + ActiveRecord::Base.connection.execute( + <<-SQL + ALTER TABLE taggings + ALTER COLUMN id TYPE int, + ALTER COLUMN tag_id TYPE int, + ALTER COLUMN taggable_id TYPE int, + ALTER COLUMN tagger_id TYPE int + SQL + ) + + ActiveRecord::Base.connection.execute("DROP VIEW IF EXISTS hypershield.tags") + ActiveRecord::Base.connection.execute( + <<-SQL + ALTER TABLE tags + ALTER COLUMN id TYPE int, + ALTER COLUMN badge_id TYPE int, + ALTER COLUMN mod_chat_channel_id TYPE int + SQL + ) + end +end diff --git a/db/schema.rb b/db/schema.rb index 527164a25..beb9bae77 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2020_07_25_215546) do +ActiveRecord::Schema.define(version: 2020_07_26_215928) do # These are extensions that must be enabled in order to support this database enable_extension "pgcrypto" @@ -1021,24 +1021,24 @@ ActiveRecord::Schema.define(version: 2020_07_25_215546) do create_table "tag_adjustments", force: :cascade do |t| t.string "adjustment_type" - t.integer "article_id" + t.bigint "article_id" t.datetime "created_at", null: false t.string "reason_for_adjustment" t.string "status" - t.integer "tag_id" + t.bigint "tag_id" t.string "tag_name" t.datetime "updated_at", null: false - t.integer "user_id" + t.bigint "user_id" t.index ["tag_name", "article_id"], name: "index_tag_adjustments_on_tag_name_and_article_id", unique: true end - create_table "taggings", id: :serial, force: :cascade do |t| + create_table "taggings", force: :cascade do |t| t.string "context", limit: 128 t.datetime "created_at" - t.integer "tag_id" - t.integer "taggable_id" + t.bigint "tag_id" + t.bigint "taggable_id" t.string "taggable_type" - t.integer "tagger_id" + t.bigint "tagger_id" t.string "tagger_type" t.index ["context"], name: "index_taggings_on_context" t.index ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], name: "taggings_idx", unique: true @@ -1051,16 +1051,16 @@ ActiveRecord::Schema.define(version: 2020_07_25_215546) do t.index ["tagger_id"], name: "index_taggings_on_tagger_id" end - create_table "tags", id: :serial, force: :cascade do |t| + create_table "tags", force: :cascade do |t| t.string "alias_for" - t.integer "badge_id" + t.bigint "badge_id" t.string "bg_color_hex" t.string "buffer_profile_id_code" t.string "category", default: "uncategorized", null: false t.datetime "created_at" t.integer "hotness_score", default: 0 t.string "keywords_for_search" - t.integer "mod_chat_channel_id" + t.bigint "mod_chat_channel_id" t.string "name" t.string "pretty_name" t.string "profile_image"