Rails的3.1 – 推向Heroku – 错误安装postgres适配器?
我刚刚升级到Rails 3.1,我试图部署到Heroku的第一个应用程序遇到了与Postgres适配器有关的问题。 我能够把应用程序推到heroku,但是当我尝试迁移数据库时,我得到以下错误:
heroku rake db:migrate
rake aborted! Please install the postgresql adapter: `gem install activerecord-postgresql-adapter` (pg is not part of the bundle. Add it to Gemfile.) Tasks: TOP => db:migrate => db:load_config (See full trace by running task with --trace)
当我尝试他们的build议安装我得到:
ERROR: Could not find a valid gem 'activerecord-postgresql-adapter' (>= 0) in any repository ERROR: Possible alternatives: activerecord-postgis-adapter, activerecord-jdbcpostgresql-adapter, activerecord-postgresql-cursors, activerecord-jdbcmysql-adapter, activerecord-jdbcmssql-adapter
这似乎已经很奇怪了……那么我应该安装什么样的gem来让这个东西工作,如果不是他们说我应该安装?
当我尝试安装gempg我得到:
Building native extensions. This could take a while... ERROR: Error installing pg: ERROR: Failed to build gem native extension. /Users/jerometufte/.rvm/rubies/ruby-1.9.2-p180/bin/ruby extconf.rb checking for pg_config... no No pg_config... trying anyway. If building fails, please try again with --with-pg-config=/path/to/pg_config checking for libpq-fe.h... no Can't find the 'libpq-fe.h header *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir ...
我目前正在使用SQLite3。 任何帮助不胜感激,这是莫名其妙。
选项1:
将pg
添加到您的Gemfile
但跳过尝试在本地安装。
$ cat Gemfile ... group :production do # gems specifically for Heroku go here gem "pg" end # Skip attempting to install the pg gem $ bundle install --without production
选项2(Debian / Ubuntu):
将pg
添加到您的Gemfile
但首先安装先决条件。
$ cat Gemfile ... group :production do # gems specifically for Heroku go here gem "pg" end # Install the pg gem's dependencies first $ sudo apt-get install libpq-dev # Then install the pg gem along with all the other gems $ bundle install
你一定需要在Gemfile for Heroku中使用pg。
关于你在本地获得的错误:确保你安装了postgres,运行gem install pq -- --with-pg-config=[path to wherever your pg-config binary is]
,然后安装bundle。
或者,如果你的本地数据库工作正常(因为你使用的是sqlite或postgres-pr),你可以把gem'pg gem 'pg'
行放在一个名为production的组中,然后bundle install --without production
在本地没有bundle install --without production
。
更新的信息:这与本地不同版本的pg gem有关。
我已经在一个生产组(我在本地运行sqllite)pg,但Heroku仍然在呕吐。
我的新Rails 3.1应用程序出现问题,
rm Gemfile.lock touch Gemfile bundle install git add . git commit -am "wiped Gemfile.lock re-ran bundle install" git push heroku master
当我然后运行heroku run rake db:migrate
时,就像一个魅力工作
- Rails 3和Heroku:自动“rake db:migrate”推?
- 如何重置Heroku应用程序并重新提交一切?
- 为什么在AWS存在的时候人们使用Heroku? Heroku与AWS有什么区别?
- 如何解决错误“”生产环境“中缺less`secret_key_base`(Rails 4.1)
- 将UUID作为PostgreSQL中的主键会给索引性能带来不好的影响吗?
- windows heroku运行rake db:迁移错误“/ usr / bin / env:ruby.exe:没有这样的文件或目录”
- 无法在heroku django中导入名称_uuid_generate_random
- 使用Rails 4和bootstrap-sass gem无法在Heroku上运行CSS
- 由于密钥指纹,无法推送到Heroku