这是我的应用程序:价格通胀计算器。如果单击“计算”,您可能会收到与服务器相关的错误。当我在 Sinatra 中测试应用程序时,我收到一条错误消息
PG::Error: FATAL: too many connections for role "********"
经过调查,Heroku 将其免费数据库限制为 20 个连接。
我想继续在 Heroku 上开发小型应用程序(尤其是数据库驱动的应用程序),但如果我无法绕过这个限制,我可能无法做到。我愿意每月支付 50 美元来获得一个允许更多连接的数据库,但我还不知道这是否值得。
我的问题是:有谁知道是否可以免费绕过这个限制,或者是否有 Heroku 的替代品可以托管数据库驱动的 Sinatra 应用程序?
这是我使用的将通货膨胀数据添加到数据库的代码:
require 'rubygems'
require 'rest-client'
require 'nokogiri'
require 'sequel'
### MAKE CPI DATABASE ###
db_name = 'DATABASE_NAME_HERE'
DB = Sequel.postgres(db_name,:user=>'USER_NAME',:password=>'PASSWORD',:host=>'HOST',:port=>5432,:sslmode=>'require')
DB.create_table! :cpi_nsa_annual do
primary_key :id
Integer :year
Float :cpi
end # DONE: DB.create_table :cpi_nsa_annual do
cpi_annual = DB[:cpi_nsa_annual]
### DONE MAKING CPI DATABASE ###
post_url = "http://data.bls.gov/pdq/SurveyOutputServlet"
post_params = {
'delimiter'=>'comma',
'output_format'=>'html',
'output_type'=>'column',
'periods_option'=>'all_periods',
'series_id'=>'CUUR0000SA0',
'years_option'=>'all_years'
}
if page = RestClient.post(post_url,post_params)
npage = Nokogiri::HTML(page)
data = npage.css('table.regular-data tbody tr')
data.each{|row|
month_prefix = (row.css('th')[2].text)[0]
year = row.css('th')[1].text
month = (row.css('th')[2].text)[1..2]
cpi = row.css('td').text
if month_prefix=='M' and month=='13'
cpi_annual.insert(
:year=>year,
:cpi=>cpi
) # DONE: cpi_annual_insert
p ["YEAR",year,cpi]
end # DONE: month_prefix=='M' and month!='13'
}
end # DONE: if page
p cpi_annual.each{|row| p row}