2016-09-09 8 views
1

私は単純にRubyスクリプトを使って、ローカルでCSVファイルを自分のモデルにインポートできます。これは、開発に動作しますが、生産に失敗した(Herokuの)`retrieve_connection ':Model(ActiveRecord :: ConnectionNotEstablished)の接続プールがありません

私は次のエラーを乗り越えることができないよう

`retrieve_connection ':会社のための接続なしプール(ActiveRecordは:: ConnectionNotEstablished)

open_csv_prod.rb 

require 'csv' 
require_relative 'helpers' 
require 'active_record' 
require 'rails' 

# Connect to database 
ActiveRecord::Base.configurations[Rails.env] || Rails.application.config.database_configuration[Rails.env] 

class Company < ActiveRecord::Base 
print_memory_usage do 
print_time_spent do 


    #open the file 
    filename = 'lib/assets/1/BasicCompanyData-2016-09-01-part1_5.csv' 
    # count how many rows? 
    line_count = `wc -l "#{filename}"`.strip.split(' ')[0].to_i 
    # Print that result 
    puts "#{line_count}" 

    count = 0 


    CSV.foreach(filename, headers: true) do |row| 
     Company.create! row.to_hash 
     count += 1 
     p "#{count}" 
    end 

    end 
    end 
    end 

heroku run ruby open_csv_prod.rb

この結果、上記のエラーが報告されます。私はHeroku RailsコンソールでActiveRecord :: Base.configurations [Rails.env]をチェックすると、Herokuがプールについて不平を言う理由が分かりません。

私はこれを次のデータベース構成で試してみたはずですが、herokuが[DATABASE_URL]にデータベース情報を格納しているため、これも失敗します。

ActiveRecord::Base.establish_connection(
adapter: 'postgresql', 
host:  ENV['IP'], 
username: ENV['USERNAME'], 
password: ENV['PASSWORD'], 
database: 'dbb_development' 
) 

とても私はターミナルで実行Rubyスクリプトの私の会社のモデルに記述する必要がある場合、私は、すべて間違っを接続しようとしていますが可能です。

答えて

2

これは長いことですが、あなたはherokuがDB設定情報をURLに格納すると言っています。私は後にした正確な溶液であった

ActiveRecord::Base.establish_connection(
    ENV['DATABASE_URL'] 
) 
+1

:次のスニペットは、たぶん、あなたはこのように接続することができ、レールのドキュメント

http://api.rubyonrails.org/classes/ActiveRecord/ConnectionHandling.html

ActiveRecord::Base.establish_connection( "postgres://myuser:[email protected]/somedatabase" ) 

からです。本当にありがとう!、それは答えとして受け入れる – Dearg

関連する問題