discourse/db/migrate/20140425135354_add_topic_custom_fields.rb
Sam Saffron 30990006a9 DEV: enable frozen string literal on all files
This reduces chances of errors where consumers of strings mutate inputs
and reduces memory usage of the app.

Test suite passes now, but there may be some stuff left, so we will run
a few sites on a branch prior to merging
2019-05-13 09:31:32 +08:00

24 lines
640 B
Ruby

# frozen_string_literal: true
class AddTopicCustomFields < ActiveRecord::Migration[4.2]
def change
create_table :topic_custom_fields do |t|
t.integer :topic_id, null: false
t.string :name, limit: 256, null: false
t.text :value
t.timestamps null: false
end
add_index :topic_custom_fields, [:topic_id, :name]
# migrate meta_data into custom fields
execute <<-SQL
INSERT INTO topic_custom_fields(topic_id, name, value)
SELECT id, (each(meta_data)).key, (each(meta_data)).value
FROM topics WHERE meta_data <> ''
SQL
remove_column :topics, :meta_data
end
end