Last active
December 15, 2015 16:19
-
-
Save lisovskyvlad/5288142 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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