* Add recruits column to weapons * Populate recruits column with granblue_ids * Remove recruits_id and index recruits
30 lines
762 B
Ruby
30 lines
762 B
Ruby
# frozen_string_literal: true
|
|
|
|
class PopulateWeaponRecruits < ActiveRecord::Migration[7.0]
|
|
def up
|
|
# Get all character mappings and convert to hash properly
|
|
results = execute(<<-SQL)
|
|
SELECT id, granblue_id
|
|
FROM characters
|
|
WHERE granblue_id IS NOT NULL
|
|
SQL
|
|
|
|
character_mapping = {}
|
|
results.each do |row|
|
|
character_mapping[row['id']] = row['granblue_id']
|
|
end
|
|
|
|
# Update weapons table using the mapping
|
|
character_mapping.each do |char_id, granblue_id|
|
|
execute(<<-SQL)
|
|
UPDATE weapons
|
|
SET recruits = #{connection.quote(granblue_id)}
|
|
WHERE recruits_id = #{connection.quote(char_id)}
|
|
SQL
|
|
end
|
|
end
|
|
|
|
def down
|
|
execute("UPDATE weapons SET recruits = NULL")
|
|
end
|
|
end
|