gpt4 book ai didi

ruby-on-rails - Heroku] 处理数据库

转载 作者:行者123 更新时间:2023-11-29 13:35:13 26 4
gpt4 key购买 nike

我最近在处理 heroku postgresql 数据库时遇到了一个问题。

我想更新某个用户的属性(让他成为管理员),所以我从 heroku 中提取数据库以在本地更新他的属性并再次将其推回。

heroku db:pull
UPDATE users SET user_type = 'admin' WHERE name = 'thisuser'; //in postgres
heroku db:push

然后,就出现了下面的问题。

!!! Caught Server Exception
HTTP CODE: 500
Taps Server Error: PGError: ERROR: time zone displacement out of range: "2013-01-21 12:00:00.000000+5895153600"
LINE 1: ....facebook.com/thisuser', 'facebook', '2374538475', '2013-01-2...

所以我再次运行以下命令以从错误中恢复。

heroku db:pull
heroku db:push

这导致我的整个数据库从生产和开发中消失​​。我有两个问题要问。

  1. 在 Heroku 环境中更新某些用户的属性的正确方法是什么?仅仅为了更新一个小对象的一个​​属性而拉取整个数据库似乎有点过分。
  2. 为什么我的操作会导致从数据库中清除所有内容?

感谢您的帮助。我非常感激。

最佳答案

为了你的命令,我建议你做这种小事in a console :

$ heroku run rails console

您可以像在本地计算机上一样键入一次性命令。

关于不稳定性:显然是 bug在 Ruby 1.9.3 上使用 Heroku。在 1.9.2 上你不会遇到这个问题。所以如果你使用 rbenv 或 rvm,你可以在执行 heroku 之前切换 rubies。您甚至可能想编写一个小的 shell 脚本,例如:

#!/bin/sh
#safe_heroku.sh
HEROKU_CMD=/usr/local/heroku/bin/heroku # Check which heroku
RBENV_CMD=/usr/bin/rbenv # Check which rbenv
SAFE_RUBY_VERION=1.9.2 # Check rbenv versions

$RBENV_CMD shell $SAFE_RUBY_VERSION
$HEROKU_CMD "$@"

用法:

$ safe_heroku rake db:push   # Or whatever command you want to run...

关于ruby-on-rails - Heroku] 处理数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14431830/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com