【发布时间】:2012-02-13 07:49:32
【问题描述】:
出于某种原因,heroku 尝试要求 dm-sqlite-adapter,即使它应该在这里使用 Postgres。请注意,这发生在我打开任何 URL 时 - 而不是在 git push 本身期间。
我构建了一个默认的 Facebook 应用程序。
宝石文件:
source :gemcutter
gem "foreman"
gem "sinatra"
gem "mogli"
gem "json"
gem "httparty"
gem "thin"
gem "data_mapper"
gem "heroku"
group :production do
gem "pg"
gem "dm-postgres-adapter"
end
group :development, :test do
gem "sqlite3"
gem "dm-sqlite-adapter"
end
数据映射器设置:
# Setting up the database
DataMapper.setup(:default, ENV['DATABASE_URL'] || "sqlite3://#{Dir.pwd}/data/mydatabase.db")
相关日志片段,当打开任何 URL 时:
Starting process with command `bundle exec thin -R config.ru start -p 34984`
2012-01-18T15:11:55+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/dm-core-1.2.0/lib/dm-core/adapters.rb:163:in `require': no such file to load -- dm-sqlite-adapter (LoadError)
2012-01-18T15:11:55+00:00 app[web.1]: from /app/vendor/bundle/ruby/1.9.1/gems/dm-core-1.2.0/lib/dm-core/adapters.rb:163:in `load_adapter'
尝试了相关的解决方案,但到目前为止没有任何帮助。
顺便说一句:bundle install 表示 Using do_postgres 和 Using dm-postgres-adapter。我是否缺少有关 Datamapper 设置的信息?
【问题讨论】:
-
尝试使用
development:test的值设置BUNDLE_WITHOUT的配置变量,看看会发生什么 -
我猜当我发出
git push heroku master:Running: bundle install --without development:test --path vendor/bundle --binstubs bin/ --deployment时它已经运行了 -
可以在本地使用 Postgres 吗?真是个好主意:12factor.net/dev-prod-parity
-
不错的网站,以前没见过。 TBH,重点是制作一个模拟应用程序,使用最简单的路径。现在我只是在浪费时间修补 dm 适配器,而不是完成任务。
-
这表明
DATABASE_URL环境变量不知何故未设置。你把它去掉了吗?当你运行heroku config时它会出现吗?
标签: ruby heroku sinatra datamapper