File: //opt/openproject/db/migrate/20190312083304_rename_boards_to_forums.rb
require_relative './tables/forums'
class RenameBoardsToForums < ActiveRecord::Migration[5.2]
def up
# Create the new table, then copy from the oldt table to ensure indexes are correct
::Tables::Forums.create(self)
execute "INSERT INTO forums SELECT * FROM boards";
rename_column :messages, :board_id, :forum_id
rename_column :message_journals, :board_id, :forum_id
# Rename string references in DB to forums
EnabledModule.where(name: 'boards').update_all(name: 'forums')
RolePermission.where(permission: 'manage_boards').update_all(permission: 'manage_forums')
Watcher.where(watchable_type: 'Board').update_all(watchable_type: 'Forum')
# Finally, drop the old table
drop_table :boards
end
def down
rename_table :forums, :boards
rename_column :messages, :forum_id, :board_id
rename_column :message_journals, :forum_id, :board_id
# Rename back items
EnabledModule.where(name: 'forums').update_all(name: 'boards')
RolePermission.where(permission: 'manage_forums').update_all(permission: 'manage_boards')
Watcher.where(watchable_type: 'Forum').update_all(watchable_type: 'Board')
end
end