Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 我正在尝试使用调度器在heroku上运行一个涉及datamapper的rake任务,但heroku似乎正在尝试使用sqlite?!_Ruby_Sqlite_Postgresql_Heroku_Datamapper - Fatal编程技术网

Ruby 我正在尝试使用调度器在heroku上运行一个涉及datamapper的rake任务,但heroku似乎正在尝试使用sqlite?!

Ruby 我正在尝试使用调度器在heroku上运行一个涉及datamapper的rake任务,但heroku似乎正在尝试使用sqlite?!,ruby,sqlite,postgresql,heroku,datamapper,Ruby,Sqlite,Postgresql,Heroku,Datamapper,我有一个rakefile.rb,其中有一个名为添加最新应用程序的任务。此任务在数据库中创建一些表(如果尚未使用datamapper创建),从xml提要中提取一些信息,然后将数据放入表中。问题是我似乎无法运行我的rake任务 如果我使用以下命令heroku run rake add\u latest\u apps,那么我得到:rake中止!没有这样的文件要加载--dm sqlite adapter,这对我来说意味着正在尝试使用sqlite适配器,即使它应该使用postgres适配器。我做错了什么

我有一个rakefile.rb,其中有一个名为
添加最新应用程序的任务。此任务在数据库中创建一些表(如果尚未使用datamapper创建),从xml提要中提取一些信息,然后将数据放入表中。问题是我似乎无法运行我的rake任务

如果我使用以下命令
heroku run rake add\u latest\u apps
,那么我得到:
rake中止!没有这样的文件要加载--dm sqlite adapter
,这对我来说意味着正在尝试使用sqlite适配器,即使它应该使用postgres适配器。我做错了什么

rakefile.rb:

require 'open-uri'
require 'nokogiri'
require 'awesome_print'
require 'data_mapper'
require 'dm-postgres-adapter'
require 'pg'

task :add_latest_apps do
    DataMapper.setup(:default, ENV['DATABASE_URL'] || "sqlite3://#{Dir.pwd}/app.db")

class Company
    include DataMapper::Resource

    property :id, Serial
    property :company_name, String
    property :company_id, Text, :unique => true

    has n, :apps
end

class App
    include DataMapper::Resource

    property :id, Serial
    property :app_id, Integer
    property :bundle_id, Text
    property :app_name, Text
    property :company_name, Text
    property :created_at, DateTime
    property :rank, Integer

    belongs_to :company
end

DataMapper.finalize.auto_upgrade!

puts 'Database and tables created'

#Get App data from Apple
#Insert apps and companies into database

end
档案:

source :rubygems
gem 'sinatra', '1.1.0'
gem 'thin'
gem 'nokogiri'
gem 'awesome_print'
gem 'data_mapper'
gem 'dm-postgres-adapter'
gem 'pg'

请帮忙

您需要设置
数据库URL
环境变量

问题在于线路:

DataMapper.setup(:default, ENV['DATABASE_URL'] || "sqlite3://#{Dir.pwd}/app.db")
在这里,
DataMapper
查找
ENV['DATABASE_URL']
,如果未设置,则返回到
“sqlite3://{Dir.pwd}/app.db”
,这会导致它尝试加载
dm sqlite适配器


运行以显示您的环境变量,它可能不会显示
数据库\u URL
。查看以确定您的URL应该是什么。你可以做一些类似于heroku pg:Promotion heroku\u POSTGRESQL\u GRAY\u URL的事情(尽管你需要检查你应该使用什么颜色)。

看起来这个应用程序目前还没有建立数据库。我正在尝试使用用户
DataMapper.setup
进行设置。从我读到的关于让DataMapper与heroku一起工作的内容来看,
ENV['DATABASE\u URL']
实际上应该包含我数据库的地址(当然它还不存在?!)