在将Sinatra应用程序部署到Heroku时建立本地和生产数据库连接

时间:2014-03-15 17:05:24

标签: ruby database postgresql heroku

我有一个需要使用数据库的sinatra应用程序,并且在我的应用程序中我有一个班级'管理员'处理所有数据库事物。我需要' Admin'如果我在本地运行,则建立与本地数据库文件的连接,但在联机运行时连接到Heroku postgres数据库。我已经按照here的说明操作了,但是虽然它已经让我走得很远,但我不知道如何将我的数据库连接添加到我的班级。我认为这是一个非常简单的问题,我不知道答案。这是我的类处理应用程序的数据库连接

require 'sequel'
require 'pg'

#This class will handle making the database
class Admin

#A getter/setter for DB
attr_accessor :DB

#Our constructor that makes the database and tables we need
def initialize
    configure :development do
        set :@DB, "sqlite://database.db"
    end

    configure :production do
        @DB = URI.parse(ENV['DATABASE_URL'] || 'postgres://localhost/mydb')

        ActiveRecord::Base.establish_connection(
            :adapter  => @DB.scheme == 'postgres' ? 'postgresql' : @DB.scheme,
            :host     => @DB.host,
            :username => @DB.user,
            :password => @DB.password,
            :database => @DB.path[1..-1],
            :encoding => 'utf8'
        )
    end

    #@DB = Sequel.connect('sqlite://database.db')# || ENV['DATABASE_URL'])
end

#.....
end

我只需要Admin.DB来保存对数据库的本地或在线引用(如果我理解正确的话)

0 个答案:

没有答案