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

Ruby 将Sinatra应用程序部署到Heroku时建立本地和生产数据库连接,ruby,database,postgresql,heroku,Ruby,Database,Postgresql,Heroku,我有一个需要使用数据库的sinatra应用程序,在我的应用程序中,我有一个类“Admin”,处理所有数据库的事情。如果我在本地运行,我需要“Admin”连接到本地数据库文件,但在联机运行时连接到Heroku postgres数据库。我已经按照说明进行了操作,但虽然这已经让我走了很远,但我不知道如何将我的数据库连接添加到我的类中。我认为这是一个非常简单的问题,我不知道答案。下面是我处理应用程序数据库连接的类 require 'sequel' require 'pg' #This class wi

我有一个需要使用数据库的sinatra应用程序,在我的应用程序中,我有一个类“Admin”,处理所有数据库的事情。如果我在本地运行,我需要“Admin”连接到本地数据库文件,但在联机运行时连接到Heroku postgres数据库。我已经按照说明进行了操作,但虽然这已经让我走了很远,但我不知道如何将我的数据库连接添加到我的类中。我认为这是一个非常简单的问题,我不知道答案。下面是我处理应用程序数据库连接的类

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来保存对数据库的本地或在线引用(如果我理解正确的话)

在这里,您使用
.new
?初始化了类,或者您正在使用
Admin.DB
?我在主ruby文件中将类初始化为“Admin=Admin.new”