Postgresql Heroku未加载do_postgres依赖项
在Heroku上入门,但它似乎没有为dm postgres适配器加载必要的依赖项(do_postgres(~>0.10.2)) 该文件如下所示:Postgresql Heroku未加载do_postgres依赖项,postgresql,dependencies,heroku,datamapper,bundler,Postgresql,Dependencies,Heroku,Datamapper,Bundler,在Heroku上入门,但它似乎没有为dm postgres适配器加载必要的依赖项(do_postgres(~>0.10.2)) 该文件如下所示: source :gemcutter gem 'dm-postgres-adapter', '1.0.2' gem 'dm-sqlite-adapter', '1.0.2' gem 'sinatra', '1.1.0' gem 'mustache', '0.9' gem 'datamapper', '1.0.2' gem 'json', '1.5.1'
source :gemcutter
gem 'dm-postgres-adapter', '1.0.2'
gem 'dm-sqlite-adapter', '1.0.2'
gem 'sinatra', '1.1.0'
gem 'mustache', '0.9'
gem 'datamapper', '1.0.2'
gem 'json', '1.5.1'
Gemfile.lock的相关部分如下所示:
dm-postgres-adapter (1.0.2)
dm-do-adapter (~> 1.0.2)
do_postgres (~> 0.10.2)
当推送到Heroku时,它似乎没有安装do_postgres:
-----> Heroku receiving push
-----> Sinatra app detected
-----> Gemfile detected, running Bundler version 1.0.7
Unresolved dependencies detected; Installing...
Using --without development:test
Fetching source index for http://rubygems.org/
Installing addressable (2.2.4)
Installing data_objects (0.10.3)
Installing extlib (0.9.15)
Installing dm-core (1.0.2)
Installing dm-aggregates (1.0.2)
Installing dm-migrations (1.0.2)
Installing dm-constraints (1.0.2)
Installing fastercsv (1.5.4)
Installing json_pure (1.5.1)
Installing dm-serializer (1.0.2)
Installing dm-timestamps (1.0.2)
Installing dm-transactions (1.0.2)
Installing stringex (1.1.0)
Installing uuidtools (2.1.2)
Installing dm-types (1.0.2)
Installing dm-validations (1.0.2)
Installing datamapper (1.0.2)
Installing dm-do-adapter (1.0.2)
Installing dm-postgres-adapter (1.0.2)
Installing dm-sqlite-adapter (1.0.2)
Installing mustache (0.9.0)
Installing rack (1.2.1)
Installing tilt (1.2.2)
Installing sinatra (1.1.0)
Using bundler (1.0.7)
Your bundle is complete! It was installed into ./.bundle/gems/
Compiled slug size is 1.7MB
-----> Launching... done
事实上,Heroku没有发现宝石,也没有发射:
2011-03-07T10:48:31-08:00 heroku[slugc]: Slug compilation finished
2011-03-07T10:48:35-08:00 app[web.1]: /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems.rb:779:in `report_activate_error': Could not find RubyGem do_postgres (~> 0.10.2) (Gem::LoadError)
2011-03-07T10:48:35-08:00 app[web.1]: from /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems.rb:214:in `activate'
2011-03-07T10:48:35-08:00 app[web.1]: from /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems.rb:249:in `activate'
2011-03-07T10:48:35-08:00 app[web.1]: from /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems.rb:248:in `activate'
2011-03-07T10:48:35-08:00 app[web.1]: from /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems.rb:248:in `each'
2011-03-07T10:48:35-08:00 app[web.1]: from /usr/ruby1.8.7/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:35:in `require'
2011-03-07T10:48:35-08:00 app[web.1]: from /app/04eca654-0ab6-43de-aae1-1dbed7bef1a1/home/.bundle/gems/ruby/1.8/gems/dm-core-1.0.2/lib/dm-core/adapters.rb:163:in `load_adapter'
2011-03-07T10:48:35-08:00 app[web.1]: from /app/04eca654-0ab6-43de-aae1-1dbed7bef1a1/home/.bundle/gems/ruby/1.8/gems/dm-core-1.0.2/lib/dm-core/adapters.rb:133:in `adapter_class'
2011-03-07T10:48:35-08:00 app[web.1]: from /app/04eca654-0ab6-43de-aae1-1dbed7bef1a1/home/.bundle/gems/ruby/1.8/gems/dm-core-1.0.2/lib/dm-core/adapters.rb:13:in `new'
2011-03-07T10:48:35-08:00 app[web.1]: from /app/04eca654-0ab6-43de-aae1-1dbed7bef1a1/home/.bundle/gems/ruby/1.8/gems/dm-core-1.0.2/lib/dm-core.rb:266:in `setup'
2011-03-07T10:48:35-08:00 app[web.1]: from ./lib/database.rb:21:in `initialize'
database.rb第21行是:
DataMapper.setup(:default, ENV['DATABASE_URL'] || 'sqlite3://' + Dir.pwd + '/database.db')
这是直接来自Heroku站点的代码:,位于“使用数据库\ URL环境变量”下。该应用程序在本地Sqlite上运行,但Heroku使用postgresql。我希望DataMapper能让这个转变变得轻而易举
我已尝试明确包括
gem 'do_postgres', '~>0.10.2'
在Gemfile中,无效。无论如何,这是不必要的。也向Heroku支持部门提交了一张罚单,但尚未收到他们的回复…Heroku很快回复了我: 你好, 我注意到你正在使用windows进行 您的开发环境。有 当前对bundler的限制 和跨平台使用,即如果 在windows上本地开发,但部署 到像heroku这样的unix服务器。这个 当前的解决方法是删除您的 Gemfile.lock 最好的 [删除]
实际上,在删除Gemfile.lock之后,Heroku正确地安装了do_postgres gem。我最初提交Gemfile.lock是因为Heroku接口推荐它(“很快就需要Gemfile.lock”),所以在某个地方发出一点警告,这可能会破坏与Windows的兼容性。当然,跨平台的事情不是我的决定 希罗库很快就给我回了电话: 你好, 我注意到你正在使用windows进行 您的开发环境。有 当前对bundler的限制 和跨平台使用,即如果 在windows上本地开发,但部署 到像heroku这样的unix服务器。这个 当前的解决方法是删除您的 Gemfile.lock 最好的 [删除] 实际上,在删除Gemfile.lock之后,Heroku正确地安装了do_postgres gem。我最初提交Gemfile.lock是因为Heroku接口推荐它(“很快就需要Gemfile.lock”),所以在某个地方发出一点警告,这可能会破坏与Windows的兼容性。当然,跨平台的事情不是我的决定