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