require_relative '../../versions' Sequel.migration do change do alter_table(:pokemon) do FO::Versions::VERSIONS_BY_GENERATION .values .map { |g| g[:version_groups] } .reduce(&:+) .each { |version| drop_column ("version_#{version}").to_sym drop_column ("version_#{version}_sprite").to_sym } end create_table(:sprites) do primary_key :id foreign_key :pokemon_id, :pokemon, null: false, on_delete: :cascade File :sprite, null: false end create_table(:sprites_versions) do foreign_key :version_id, :versions, null: false, on_delete: :cascade foreign_key :sprite_id, :versions, null: false, on_delete: :cascade primary_key [:version_id, :sprite_id] end end end