heroku db:push sqlite://mydatabase.db错误 [英] heroku db:push sqlite://mydatabase.db error

查看:130
本文介绍了heroku db:push sqlite://mydatabase.db错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

**当我做heroku db:push sqlite://mydatabase.db我遇到了Ruby + Sinatra + Sqlite3 + Heroku的问题:

当我这样做:heroku db:push sqlite://anotador.db
$ b 控制台日志:

  2013-01-21T12:37:11 + 00:00 app [web.1]:Errno :: ENOENT  - 没有这样的文件或目录 -  /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'

My anotador.rb:

  require'rubygems'
require'sinatra'
需要'data_mapper'

DataMapper :: setup(:default,ENV ['DATABASE_URL'] ||sqlite3://#{Dir.pwd} /anotador.db)
class Nota
包含DataMapper :: Resource
属性:id,Serial
属性: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:

 来源:rubygems 
gem'sinatra'
gem'data_mapper'
gem'rack-flash'
gem'sinatra- '
gem'builder'
gem'dm-postgres-adapter',:group => :生产
gem'dm-sqlite-adapter',:group => :开发
gem'thin'

组:开发,:test do
gem'sqlite3'
结束
组:生产do
gem'pg'
end

在命令行中:

  $ bundle 
$ git init
$ git add。
$ git commit -mcomentario
$ heroku创建nombreAPP - 堆栈cedar
$ git push heroku大师

$ 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-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

解决方案

据我所知,你不能在Heroku上使用SQLite3。您可以使用Postgres或Mysql数据库。



因此,当您说

  heroku db:push sqlite://mydatabase.db 

您不应该这样做。它不会工作,因为SQLite Gem在Heroku上不可用。什么是 db:push ?这是一些耙子任务吗?我想你仍然需要将它指定给Heroku。




**When I do "heroku db:push sqlite://mydatabase.db" I have a problem with Ruby + Sinatra + Sqlite3 + Heroku :

When i do : "heroku db:push sqlite://anotador.db"

Console log:

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'

My 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! 

My 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

In command Line :

$ 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 

I know Heroku uses Postgres and SQLite not

But Heroku has the ability to move a database and use SQLite to Postgres exemplified in this link:

https://devcenter.heroku.com/articles/ruby # using-a-sql-database

I use sqlite3 in development and in production use Postgres

In GemFile :

group :development, :test do
  gem 'sqlite3'
end
group :production do
  gem 'pg'
end

This link have an example :

http://yamilurbina.com/post/4854924459/deploying-a-sinatra-datamapper-sqlite-app-to-heroku

解决方案

As far as I know, you cannot use SQLite3 on Heroku. You can use Postgres or Mysql database instead.

So when you say

heroku db:push sqlite://mydatabase.db

You should not be doing that. It will not work because SQLite Gem is not available on Heroku. What is db:push? Is it some rake task? I suppose you would still need to specify that to Heroku.

这篇关于heroku db:push sqlite://mydatabase.db错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆