2012-10-03 7 views
21

私は自分のアプリケーションにherokuを使用していましたが、行数が10,000行を超えているため、今日シャットダウンしました。Heroku行数が正しくない

私はこの数字がどのように到着したのか理解していません。レールには私にはデータベースに2000レコードしかありません。 PG実行

:情報を、私は以下を参照してください。

Plan:  Dev 
Status:  available 
Connections: 1 
PG Version: 9.1.5 
Created:  2012-09-25 03:12 UTC 
Data Size: 11.0 MB 
Tables:  9 
Rows:  15686/10000 (Write access revoked) 
Fork/Follow: Unavailable 

誰も私が唯一のデータベースで2,000レコードを持っているにもかかわらず、15,000行を持っているように見える方法を私に説明できますか?

ありがとうございます!

+0

5分前にテーブルを切り捨ててアプリを再起動しても同じことが起こりますが、「書き込みアクセスが取り消されました」という誤った行数が表示されます。 – microspino

+0

UPDATE:30分後に 'heroku pg:info'が正しいレコード数を報告します。 – microspino

+1

ありがとう! 'heroku maintenance:on'でもあなたのテーブルや' TRUNCATE your_table'を更新してから 'heroku maintenance:off'をお勧めします。それは私にとって完璧に働いた。 [link](https://devcenter.heroku.com/articles/maintenance-mode) – hernanvicente

答えて

42

レールだけでは不十分です。

heroku pg:psql YOUR_DB_URL 

は、あなたがテーブルごとのレコードのランクを取得するために、このクエリを記述することができます:

SELECT schemaname,relname,n_live_tup 
    FROM pg_stat_user_tables 
    ORDER BY n_live_tup DESC; 

あなただけの更新NUMが必要な場合はHerokuのは、あなたがアクセスできる素敵なSQLコンソールを持っています。行の、あなたは

SELECT sum(n_live_tup) FROM pg_stat_user_tables; 

を使用することができ、あなたの設定(heroku pg:infoによるアクセスに)に新しいDEVプランデシベルと古いSHARED 1の両方を持つことができることに注意してください。あなたは正しいdb urlを挿入する必要があります。おそらくは色付きです。

任意のSQL truncateRowsの更新間隔の間に30分の遅延を許容します。

私のケースではhttp://heroku.comのウェブコンソールが正しいnumで更新されました。私のSQLクエリ中に。 herokuのツールベルトコンソールのアップデートがあるかもしれませんが、遅いです。私はこの上でHerokuのサポートに連絡し、彼らは私の番号を取得するには、次のコマンドを実行した

+0

ありがとうございます - セッションデータベースには狂った量の行がありました。私はすべてのレールをチェックしてこれを回しませんでしたモデル。 ファンタスティックな答え:) – Averenix

+0

@microspinoありがとう – hernanvicente

0

30分には、私のために十分ではありませんでしたので、私はバックアップを取って、データベースを回復しました。その後、私のアプリはオンラインに戻りました。

関連する問題