Files
Alvand-P/bin/sync_peatio_seed.rb
2026-08-13 19:42:08 +03:30

46 lines
1.2 KiB
Ruby

# frozen_string_literal: true
# Sync Alvand-P config/peatio/seed into a running Peatio DB (insert missing rows, refresh IRT).
# Usage: bundle exec rails runner ./bin/sync_peatio_seed.rb
require 'yaml'
def seed_file(name)
Rails.root.join('config/seed', name)
end
puts '--- sync currencies ---'
YAML.load_file(seed_file('currencies.yml')).each do |hash|
id = hash.fetch('id')
currency = Currency.find_by(id: id)
if currency
currency.update!(hash.except('id'))
puts " updated currency #{id}"
else
Currency.create!(hash)
puts " created currency #{id}"
end
end
puts '--- sync markets ---'
engine = Engine.find_by!(name: 'peatio-default-engine')
YAML.load_file(seed_file('markets.yml')).map(&:symbolize_keys).each do |hash|
id = hash.fetch(:id)
enabled = hash.delete(:enabled)
hash[:state] ||= enabled ? :enabled : :disabled
hash.delete(:engine_name)
hash[:engine_id] = engine.id
market = Market.find_by(id: id)
if market
market.update!(hash.except(:id))
puts " updated market #{id} (#{hash[:state]})"
else
Market.create!(hash.except(:id).merge(id: id))
puts " created market #{id} (#{hash[:state]})"
end
end
puts '--- done ---'
puts "Markets by quote: #{Market.group(:quote_unit).count}"