add data migrations for artifacts and artifact_skills

This commit is contained in:
Justin Edmund 2025-12-03 13:00:45 -08:00
parent c0f13c6b9c
commit 183641b842
2 changed files with 68 additions and 0 deletions

View file

@ -0,0 +1,31 @@
# frozen_string_literal: true
class PopulateArtifacts < ActiveRecord::Migration[8.0]
def up
require 'csv'
csv_path = Rails.root.join('lib', 'seeds', 'artifacts.csv')
csv_text = File.read(csv_path)
csv = CSV.parse(csv_text, headers: true, encoding: 'UTF-8')
puts 'Creating artifact records...'
csv.each do |row|
artifact = Artifact.find_or_initialize_by(granblue_id: row['granblue_id'])
artifact.assign_attributes(
name_en: row['name_en'],
name_jp: row['name_jp'],
proficiency: row['proficiency'].presence,
rarity: row['rarity'],
release_date: row['release_date']
)
artifact.save!
puts " #{artifact.granblue_id}: #{artifact.name_en}"
end
puts "\nCreated #{Artifact.count} artifact records"
end
def down
Artifact.delete_all
end
end

View file

@ -0,0 +1,37 @@
# frozen_string_literal: true
class PopulateArtifactSkills < ActiveRecord::Migration[8.0]
def up
json_path = Rails.root.join('lib', 'seeds', 'artifact_skills.json')
json_text = File.read(json_path)
skills = JSON.parse(json_text)
puts 'Creating artifact skill records...'
skills.each do |skill_data|
skill = ArtifactSkill.find_or_initialize_by(
skill_group: skill_data['skill_group'],
modifier: skill_data['modifier']
)
skill.assign_attributes(
name_en: skill_data['name_en'],
name_jp: skill_data['name_jp'],
base_values: skill_data['base_values'],
growth: skill_data['growth'],
suffix_en: skill_data['suffix_en'] || '',
suffix_jp: skill_data['suffix_jp'] || '',
polarity: skill_data['polarity']
)
skill.save!
puts " Group #{skill_data['skill_group']}, Mod #{skill_data['modifier']}: #{skill.name_en}"
end
# Clear cache after seeding
ArtifactSkill.clear_cache!
puts "\nCreated #{ArtifactSkill.count} artifact skill records"
end
def down
ArtifactSkill.delete_all
end
end