**當我做 「的Heroku DB:推源碼://mydatabase.db」 我用Ruby +西納特拉+ SQLITE3 + Heroku的一個問題:Heroku的DB:推源碼://mydatabase.db錯誤
當我這樣做: 「Heroku的DB:推源碼://anotador.db」
控制檯日誌:
2013-01-21T12:37:11+00:00 app[web.1]: Errno::ENOENT - No such file or directory - /app/views/home.erb:
2013-01-21T12:37:11+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/sinatra-1.3.3/lib/sinatra/base.rb:572:in `erb'
我anotador.rb:
require 'rubygems'
require 'sinatra'
require 'data_mapper'
DataMapper::setup(:default, ENV['DATABASE_URL'] || "sqlite3://#{Dir.pwd}/anotador.db")
class Nota
include DataMapper::Resource
property :id, Serial
property :content, Text, :required => true
property :complete, Boolean, :required => true, :default => false
property :created_at, DateTime
property :updated_at, DateTime
end
DataMapper.finalize.auto_upgrade!
我的Gemfile:
source :rubygems
gem 'sinatra'
gem 'data_mapper'
gem 'rack-flash'
gem 'sinatra-redirect-with-flash'
gem 'builder'
gem 'dm-postgres-adapter', :group => :production
gem 'dm-sqlite-adapter', :group => :development
gem 'thin'
group :development, :test do
gem 'sqlite3'
end
group :production do
gem 'pg'
end
在命令行:
$ bundle
$ git init
$ git add .
$ git commit -m "comentario"
$ heroku create nombreAPP --stack cedar
$ git push heroku master
$ heroku addons:add heroku-postgresql:dev
$ heroku pg:promote <DATABASE_URL>
$ heroku db:push sqlite://anotador.db
我知道Heroku的使用的Postgres和SQLite不
但是Heroku的有能力移動一個數據庫,並使用SQLite在這個環節爲例Postgres的:
https://devcenter.heroku.com/articles/ruby#使用-A-SQL的數據庫
我用sqlite3的開發和在生產中使用的Postgres
在Gemfile中:
group :development, :test do
gem 'sqlite3'
end
group :production do
gem 'pg'
end
此鏈接有一個示例:
http://yamilurbina.com/post/4854924459/deploying-a-sinatra-datamapper-sqlite-app-to-heroku
完整的錯誤堆棧跟蹤將有助於 – ch4nd4n
請原諒我問明顯,但有一個叫當你運行'意見/ home.erb'文件'git ls-files | grep home'? – iain
您顯示的錯誤看起來像來自普通請求('web.1'),而不是'db:push'的結果,並且說Sinatra無法找到模板文件'home.erb' - 與數據庫無關。運行'db:push'後立即得到什麼信息? – matt