簡體   English   中英

如何在Heroku中為Sinatra應用程序設置數據庫?

[英]How do I set up a database for a Sinatra app in Heroku?

我制作了一個運行SQLite3數據庫的Sinatra應用程序。 一切都在我的本地計算機上順利運行。

將其部署到Heroku時,我必須更改一些東西,即Gemfile和Procfile,同時還要將數據庫代碼更改為:

#Within a class

#Before
@DB = Sequel.connect('sqlite://database.db')

#After
@DB = Sequel.connect(ENV['DATABASE_URL'] || 'postgres://localhost/db')

我將數據庫更改為Postgres,而不是SQLite3,因為Heroku不支持SQLite3。 (這可能是我的問題所在。)

這是我的Gemfile:

source "https://rubygems.org"
ruby "1.9.3"

gem "sinatra"
gem "sequel"
gem "pg"
gem "postgres"
gem "json"

而我的Procfile:

web: bundle exec ruby main.rb -p $PORT

我創建了一個git存儲庫,並運行heroku create 我添加了所有文件,使用git提交並推送了它們,我得到了Heroku URL,一切都很好。 我運行heroku config來檢查我的URL並得到以下結果:

DATABASE_URL:postgres://uhyodailuzazve:hUSIuD_4MOYWmoiSGNZCPrQNyg@ec2-54-204-40-     140.compute-1.amazonaws.com:5432/d1qkn1ivl7p013HEROKU_POSTGRESQL_BLACK_URL:postgres://uhyodailuzazve:hUSIuD_4MOYWmoiSGNZCPrQNyg@ec2-54-204-40-140.compute-1.amazonaws.com:5432/d1qkn1ivl7p013

(他們是一樣的)。 我的籌碼也是“雪松”

=== enigmatic-taiga-5020 Available Stacks
bamboo-mri-1.9.2
bamboo-ree-1.8.7
* cedar

如何從Sequel到Postgres使用Sinatra配置數據庫? 我看過教程,到現在為止。 有人做過嗎?

@DB = Sequel.connect(ENV['DATABASE_URL'])應該可以正常工作,盡管通常您會將數據庫分配給常量,而不是實例變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM