Skip to content

Instantly share code, notes, and snippets.

@lisovskyvlad
Last active December 15, 2015 16:19
Show Gist options
  • Save lisovskyvlad/5288142 to your computer and use it in GitHub Desktop.
Save lisovskyvlad/5288142 to your computer and use it in GitHub Desktop.
require 'active_record'
require 'pg'
require 'roo'
ActiveRecord::Base.establish_connection(
:adapter => 'postgresql',
:host => 'localhost',
:username => 'kevin',
:database => 'tinkov_dev',
:password => '123'
)
# (account_rk) - Идентификатор клиента. Если две операции имеют одинаковый идентификатор клиента – значит, их проводил один и тот же клиент
# (transaction_amt) - Сумма операции в рублях
# (transaction_dt) Дата операции
# (online_transaction_flg) Флаг онлайн-операции. Значение поля Y означает, что операция была произведена без физического присутствия карты
# (mcc_code) Поле Merchant Category Code
# (country, city) Страна и город совершения операции по данным международной платежной системы
# (gender_cd) Пол клиента
# (age) Возраст клиента
# (Субъект Федерации, lvn_region)Регион проживания клиента
# (merchant_id) Идентификатор торговой сети (мерчанта). Если две операции имеют одинаковый идентификатор мерчанта – значит, они были проведены в одной и той же сети (но неизвестно какой).
# account_rk transaction_amt transaction_dttm online_transaction_flg merchant_type country_cd city lvn_region gender_cd age merchant_id
class Schema < ActiveRecord::Migration
def change
create_table :transactions do |t|
t.integer :account_rk
t.integer :transaction_amt
t.string :transaction_dttm
t.string :online_transaction_flg
t.integer :merchant_type
t.string :country_cd
t.string :city
t.string :lvn_region
t.string :gender_cd
t.integer :age
t.integer :merchant_id
end
add_index :merchants, :account_rk
add_index :merchants, :age
end
end
Schema.new.change
# Model
class Transaction < ActiveRecord::Base
attr_accessible :account_rk, :transaction_amt ,:transaction_dttm,
:online_transaction_flg, :merchant_type, :country_cd, :city,
:lvn_region, :gender_cd, :age ,:merchant_id
end
# Get data from spreadsheet
transactions = Roo::Spreadsheet.open('./transactions.xlsx').to_a
# Add to table
Transaction.transaction do
transactions.each do |transaction|
m = Merchant.create!(
:account_rk => transaction[0],
:transaction_amt => transaction[1],
:transaction_dttm => transaction[2],
:online_transaction_flg => transaction[3],
:merchant_type => transaction[4],
:country_cd => transaction[5],
:city => transaction[6],
:lvn_region => transaction[7],
:gender_cd => transaction[8],
:age => transaction[9],
:merchant_id => transaction[10]
)
puts "add transaction for account - #{account_rk}"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment