由于某种原因,heroku 尝试要求 dm-sqlite-adapter,尽管它应该在这里使用 Postgres。请注意,这种情况发生在我打开任何 URL 时,而不是在 git 推送本身期间。
我构建了一个默认的 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'
尝试过相关解决方案,但目前没有任何帮助。
BTW: bundle install
says Using do_postgres
and Using dm-postgres-adapter
。我是否遗漏了有关 Datamapper 设置的信息?
好吧,Heroku 上有太多 Rails 应用程序,我认为共享数据库的存在是理所当然的。heroku config
两者都没有表现出DATABASE_URL
or SHARED_DATABASE_URL
set.
Issuing heroku addons:add shared-database:5mb
解决了问题。
奇怪的是,尽管 Gemfile 中有“pg”gem,但数据库并未自动添加。
引用自http://devcenter.heroku.com/articles/cedar http://devcenter.heroku.com/articles/cedar:
Heroku 共享 PostgreSQL 数据库 (shared-database:5mb
) 将
在以下任何情况下都会自动添加到您的应用程序中:
- 该应用程序是一个 Rails 应用程序
- The
pg
gem 被指定在Gemfile
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)