pup*_*eno 27 postgresql heroku taps
我运行以下命令将本地数据库的内容推送到Heroku:
heroku db:push --app my-app
Run Code Online (Sandbox Code Playgroud)
从我的家用电脑这完美无缺,但从我的工作电脑我得到这个错误:
点击服务器错误:PGError:错误:时区位移超出范围:"2011-11-15 12:00:00.000000 + 5894114400"
我不确定那个日期的来源,我无法在任何地方的数据中找到它.有什么想法正在发生和/或如何修复它?
pup*_*eno 32
使用Ruby 1.9.2-p290而不是1.9.3-p0为我修复它.根据Roger Braun的说法,这就是原因:
问题是(我认为),编组在Ruby 1.9.2和1.9.3之间发生了变化,所以这不是一个真正的水龙头错误.只需使用heroku运行的任何版本来推送和拉取数据库(可能是1.9.2).
从Ruby 1.9.3降级到Ruby 1.9.2对我来说听起来不是一个吸引人的选择.
Heroku的devcentre页面实际上建议使用pgbackups插件来管理数据库(https://devcenter.heroku.com/articles/pgbackups).听起来它只是将生产数据库的备份下载到本地机器,但如果仔细阅读,它们有一个大的部分处理"导入数据库".他们建议您将数据库上传到可公开访问的位置并运行建议的命令
heroku pgbackups:restore DATABASE 'http://s3.amazonaws.com/.....mydb.dump?authparameters'
Run Code Online (Sandbox Code Playgroud)
因此,实际上它们提供了转储本地数据库的命令,建议将其上传到heroku的服务器可以从中获取数据库转储的位置的方法(假设您的本地开发机器不能从Internet公开访问),然后使用上面的命令它将被上传到heroku的生产环境中.
只是把它放在这里,因为我认为问题一直持续很长一段时间没有充分解决真正的问题.
我在Heroku上运行1.9.3p125,在本地机器上运行1.9.3p125.如果我想在上传时db:push切换到1.9.2 :
rvm use ruby-1.9.2-p290
heroku db:push --app my-app
rvm use ruby-1.9.3-p125
Run Code Online (Sandbox Code Playgroud)
然后推送完成后,我切换回1.9.3.
| 归档时间: |
|
| 查看次数: |
6060 次 |
| 最近记录: |