39

タイトルは私の質問をほぼ要約していますが、詳細は次のとおりです。

行をherokuデータベースにインポートするスクリプトを実行しています。エラーが発生し始めました:

<class 'django.db.utils.DatabaseError'> current transaction is aborted, commands ignored until end of transaction block`

スクリプトはローカルホストでスムーズに実行されるため、そこで問題を探しているわけではありません。最近、heroku から「dev データベースの行制限に近づいています」というメールを受け取りました。

行数の制限に達したと思いますが、さらに行動を起こす前にこれを確認したいと思います。

データベース全体の現在の行数を見つける方法を知っている人はいますか? (各テーブルでカウントできることは知っていますが、もっとクリーンな方法があることを願っています)

4

3 に答える 3

79

heroku cli ツールを使用している場合、データベース内の行数などを確認できます。

heroku pg:info -a your_app

また、プラン タイプ、データベース ステータス、現在の接続数、postgres バージョン、データベースが作成されたとき、プラン内の行数、データ サイズ、テーブル数、およびデータベースに fork/ があるかどうかも示されます。アクティブ化されたオプションに従います。

于 2012-09-26T07:54:41.320 に答える
22

これにより、データベース内のすべての行のおおよその数が得られます。

 SELECT sum(reltuples) from pg_class where relname IN (SELECT c.relname
 FROM pg_catalog.pg_class c
 LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
 WHERE c.relkind = 'r'
 AND n.nspname <> 'pg_catalog'
 AND n.nspname <> 'information_schema'
 AND n.nspname !~ '^pg_toast'
 AND pg_catalog.pg_table_is_visible(c.oid));

エラー メッセージはデータベースのエラーを示していますが、制約違反と、挿入権限が取り消されている可能性があります。

于 2012-09-14T23:18:22.180 に答える