ruby-on-rails - Rails - "heroku db:push"命令失败

标签 ruby-on-rails ruby sqlite heroku

我正在尝试将我的应用程序从我的开发环境推送到heroku 上的生产环境。我已经使用

转移了我的所有代码
git push heroku master

现在我需要推送我的数据库,我正在尝试这个

heroku db:push

但它失败了,我在控制台收到此消息。

ruby-1.9.3-p194@app0907api @~/Documents/myapp06     
>heroku db:push
/Users/hj/.rvm/gems/ruby-1.9.3-p194@app0907api/gems/sqlite3-1.3.6/lib/sqlite3/sqlite3_native.bundle: [BUG] Segmentation fault
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]

这有点奇怪,因为我的应用程序使用 postgres 进行开发、生产和测试,我根本没有使用 sqlite,也没有为 sqlite3 安装任何 gem

可能出了什么问题?


 source 'https://rubygems.org/'

 gem 'rails', '3.2.8'



 gem 'rails-api'

 gem 'pg'

 gem 'taps'

 gem 'thin'

 gem 'foreman'

 gem 'rabl'



 gem 'paperclip', '~>3.2.0'
 gem 'aws-sdk', '~>1.3.4'

 group :development do

 gem 'annotate', ">=2.5.0"
 gem 'debugger'
 end

找到解决方案:

在我的终端控制台上输入以下行:

 gem install heroku
 sudo gem install taps

这允许我运行命令:

heroku db:push

...但是现在,在发送数据库时,我收到此错误:

 Saving session to push_201209202159.dat..
 !!! Caught Server Exception
 HTTP CODE: 500
 Taps Server Error: PGError: ERROR: time zone displacement out of range: "2012-09-18 12:00:00.000000+5894853600"
 LINE 1: ...ated_at") VALUES (45, '37.785834', '-122.406417', '2012-09-1...

最佳答案

更新:导入/导出 PG 数据的功能现在是 CLI 的一部分,如 heroku pg:push and heroku pg:pull

我强烈建议使用 pg:transfer Heroku CLI 的插件。您可以使用该插件做很多事情,包括 transferring data from your local environment up to the Heroku environment .

db:pushdb:pull 对于在两个 postgres 数据库之间传输来说非常脆弱。要从本地传输到远程,请执行以下操作来安装插件并传输数据:

$ heroku plugins:install https://github.com/ddollar/heroku-pg-transfer
$ heroku pg:transfer --from $DATABASE_URL --to HEROKU_POSTGRESQL_JADE_URL

--from $DATABASE_URL 标志表示从环境变量 DATABASE_URL 中提取作为本地数据库位置,并推送到 Heroku 应用的 HEROKU_POSTGRESQL_JADE_URL 数据库。您可以使用 heroku config 找到您的 Heroku 数据库名称:

$ heroku config | grep POSTGRES
HEROKU_POSTGRESQL_JADE_URL: postgres://ads8a8d9asd:<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="385954000a535c594d0f00535259785d5b0a150a0b150a0b150a0b0f1508165b5755484d4c5d150916595559425756594f4b165b5755" rel="noreferrer noopener nofollow">[email protected]</a>:5432/resource123

关于ruby-on-rails - Rails - "heroku db:push"命令失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12522742/

相关文章:

ruby - 在继承自 String 的 Ruby 类中,如何使用显式 .to_s 获取 "#{my_string}"

javascript - JwPlayer:找不到 HTML5 播放器

python-3.x - 是否可以在 EFS 中可靠地使用 SQLite?

SQLite - UPSERT *不是* INSERT 或 REPLACE

java - Android中为什么无法从SqlLiteDatabase读取数据

ruby-on-rails - 在onclick javascript中的Rails link_to ruby​​变量

ruby-on-rails - Phusion Passenger 4 & nginx 在 Ubuntu Linux 中看不到环境变量

ruby-on-rails - 如何为关联工厂使用特征?

ruby-on-rails - Rails.strip_tags 用于带回车的 html

ruby - 查找数组是否为二维数组的简单方法?