46 lines
1.2 KiB
Ruby
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}"
|