0

我似乎无法使用 heroku 推送,heroku db:pull 工作正常,但heroku db:push 不行

,这是我得到的错误

Taps服务器错误:PGError:错误:时区位移超出范围

我的宝石文件

source 'https://rubygems.org'

gem 'rails', '3.2.11'
gem 'jquery-rails'
gem 'kaminari'
gem 'bootstrap-kaminari-views'

gem 'devise'

gem 'pg'

gem 'rmagick'
gem 'carrierwave'
gem 'fog', '~> 1.3.1'

group :development do
  gem 'taps'
  gem 'sequel'
  gem 'sqlite3'
  gem 'pry'
end

group :assets do
  gem 'bootstrap-sass', '~> 2.2.1.1'
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
end

我正在使用ruby-1.9.3-p327,我也尝试过ruby-1.9.2-p318使用 rvm 安装,但它也不起作用,它与以前有相同的时区错误


我也尝试过使用heroku的pgbackups将我的本地数据库转储到s3,然后从那里恢复到heroku,但无济于事。


我用于 pgbackups 的命令是

PGPASSWORD=mypassword pg_dump -Fc --no-acl --no-owner -h localhost -U myuser mydb > mydb.dump

然后我将它复制到我的 s3 存储桶并将其公开

并使用将其从 s3 恢复到 heroku db

heroku pgbackups:restore DATABASE 'https://s3.amazonaws.com/my_bucket/my_db.dump'

这是来自 pgbackups 的错误

2013-01-23T19:19:23+00:00 app[pgbackups]: psql: bin//psql-9.2.1-64bit
2013-01-23T19:19:23+00:00 app[pgbackups]: pv: bin//pv-1.1.4-64bit
2013-01-23T19:19:23+00:00 app[pgbackups]:       SELECT count(*) = 0 as is_empty
2013-01-23T19:19:23+00:00 app[pgbackups]:       FROM pg_class INNER JOIN pg_roles ON relowner = pg_roles.oid
2013-01-23T19:19:23+00:00 app[pgbackups]:       WHERE rolname <> '\''postgres'\'''
2013-01-23T19:19:44+00:00 app[pgbackups]: psql-9.2.1-64bit: could not connect to server: Connection timed out
4

2 回答 2

0

看看这个讨论: https ://github.com/ricardochimal/taps/issues/93

于 2013-01-23T20:52:41.727 回答
0

删除 heroku-toolbelt 后,它现在可以使用 ruby​​-1.9.2-p318

这是我所做的(Ubuntu 12.04)


1.删​​除heroku工具带

sudo rm -rf /usr/local/heroku
sudo rm -rf /usr/bin/heroku

2.更新gemfile

我在水龙头上加了 require false

group :development do
  gem 'taps', :require => false
end

如果您的gemfile中还没有heroku gem,还可以添加它

gem 'heroku'

3. 安装 ruby​​ 1.9.2 和 gems

导航到您的应用程序 (cd ~/sites/myapp) 并执行

rvm install ruby-1.9.2-p318
rvm use ruby-1.9.2-p318
bundle install
gem install rb-readline

您现在应该安装了 heroku gem

仔细检查在控制台中运行它
ls ~/.rvm/gems/ruby-1.9.2-p318/gems
您现在应该看到一个名为 heroku 的文件夹,其中附加了一个版本。例如。heroku-2.26.3


4. 再次运行该推送

现在您应该仍然在您的应用程序文件夹中,例如 (~/sites/myapp)

尝试使用您刚刚安装的 heroku gem 进行推送,如果您下载了不同的版本,请记住更改您的版本。

~/.rvm/gems/ruby-1.9.2-p318/gems/heroku-2.26.3/bin/heroku db:push

看来您需要切换回 ruby​​ 1.9.3 才能使用 rake db:migrate 等

我在使用 rake db:migrate 时遇到的错误

You're running a version of ruby with no Readline support
Please `gem install rb-readline` or recompile ruby --with-readline.


rvm use ruby-1.9.3-p327


你应该在路上了!

于 2013-01-23T21:11:21.987 回答