db: fix types of various string columns.

Fix various columns to be either `character varying` or `text`,
depending on what kind of text is stored in the column. `text` is used
for columns that contain free-form natural language, like pool and forum
topic titles, while `character varying` is used for short strings that
don't contain free-form text, like URLs and status fields.

Both types are treated the same by Postgres; the only difference is how
we treat them in Rails. In edit forms, `text` fields use multi-line
textboxes, while `character varying` fields use single-line inputs. And
during search, we allow `text` fields to be searched using full-text
search, but not `character varying` fields.
This commit is contained in:
evazion
2022-09-21 21:36:43 -05:00
parent d730bd5882
commit 91fca27126
3 changed files with 48 additions and 16 deletions

View File

@@ -0,0 +1,31 @@
class FixStringTypesOnMultipleTables < ActiveRecord::Migration[7.0]
def up
change_column :artist_urls, :url, :string
change_column :saved_searches, :query, :string
change_column :tag_aliases, :status, :string
change_column :tag_implications, :status, :string
change_column :uploads, :source, :string
change_column :uploads, :status, :string
change_column :uploads, :referer_url, :string
change_column :post_replacements, :original_url, :string
change_column :post_replacements, :replacement_url, :string
change_column :forum_topics, :title, :text
change_column :pools, :name, :text
end
def down
change_column :artist_urls, :url, :text
change_column :saved_searches, :query, :text
change_column :tag_aliases, :status, :text
change_column :tag_implications, :status, :text
change_column :uploads, :source, :text
change_column :uploads, :status, :text
change_column :uploads, :referer_url, :text
change_column :post_replacements, :original_url, :text
change_column :post_replacements, :replacement_url, :text
change_column :forum_topics, :title, :string
change_column :pools, :name, :string
end
end