heroku db:push sqlite://mydatabase.db грешка

**Когато направя "heroku db:push sqlite://mydatabase.db" имам проблем с Ruby + Sinatra + Sqlite3 + Heroku:

Когато го направя: "heroku db:push sqlite://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 # using-a-sql-database

Използвам 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


person Gabriel    schedule 21.01.2013    source източник
comment
Пълното проследяване на стека на грешката ще бъде полезно   -  person ch4nd4n    schedule 21.01.2013
comment
Извинете, че питам очевидното, но има ли файл, наречен views/home.erb, когато стартирате git ls-files | grep home?   -  person iain    schedule 22.01.2013
comment
Грешката, която показвате, изглежда, че идва от нормална заявка (web.1), а не в резултат на db:push, и казва, че Синатра не може да намери шаблонния файл home.erb – нищо общо с базата данни. Какво съобщение получавате веднага след стартиране на db:push?   -  person matt    schedule 22.01.2013
comment
Дубликат на натискането на Rails с SQLite3 към Heroku е неуспешно   -  person    schedule 26.05.2014
comment
Или по-добър дубликат?: Изпратете SQLite база данни към Heroku с докосвания?.   -  person    schedule 26.05.2014


Отговори (1)


Доколкото знам, не можете да използвате SQLite3 на Heroku. Вместо това можете да използвате Postgres или Mysql база данни.

Така че, когато казвате

heroku db:push sqlite://mydatabase.db

Не трябва да правиш това. Няма да работи, защото SQLite Gem не е наличен на Heroku. Какво е db:push? Това някаква рейк задача ли е? Предполагам, че все пак ще трябва да уточните това на Heroku.

person ch4nd4n    schedule 21.01.2013
comment
Мисля, че Ck- е прав, AFAIK няма да можете да изпратите Sqlite база данни към Heroku, но можете да изтеглите postgres db от Heroku във вашия локален SQLite. Никога не съм опитвал обратното. - person Jasdeep Singh; 21.01.2013
comment
Знам, че Heroku използва Postgres, а не SQL, но Heroku има способността да премести база данни и да използва SQL към Postgres, илюстрирано в тази връзка: devcenter.heroku.com/articles/ruby # using-a-sql-database - person Gabriel; 21.01.2013
comment
Сигурни ли сте, че съобщението за грешка е специфично за sqlite? Пише се за /app/views/home.erb можете ли да проверите дали базата данни има данни? - person ch4nd4n; 21.01.2013
comment
Не моята база данни Prosgress е създадена, но без данни. Използвам sqlite3 в разработката, а в производството използвам Postgres. подобно например тази връзка yamilurbina.com/post /4854924459/ - person Gabriel; 21.01.2013
comment
+1, Ck е правилно и какво точно прави db:push? IMO, вие търсите проблеми, като не използвате Postgres и за разработка, и е много лесно да го настроите сега или от инсталатора на Heroku, или от инсталатора на Postgres. - person iain; 22.01.2013
comment
@Gabriel имаш предвид blog.heroku.com/archives/2009/3 /18/ блог (2009). SO heroku db:push трябва да избутва данните от локалната db към heroku. В случай, че не е, можете ли да проверите дали вашата локална база данни има данни? Ако е така, тогава тази команда heroku все още ли е валидна? - person ch4nd4n; 22.01.2013
comment
Най-накрая открих какъв е проблемът. Папката с изгледи в моето локално хранилище беше изписана с главна буква, посочена като Изгледи Това трябва да работи в Windows, докато Heroku работи в linux, това дойде грешката. Все пак благодаря на всички за помощта - person Gabriel; 23.01.2013