Как найти количество строк в базе данных heroku
Название в значительной степени подводит итог моему вопросу, но вот подробности:
Я запускаю script для импорта строк в базу данных heroku. Я начал получать ошибки:
<class 'django.db.utils.DatabaseError'> current transaction is
aborted, commands ignored until end of transaction block
script работает плавно на моем локальном хосте, поэтому я не ищу там проблем. Недавно я получил электронное письмо от heroku, в котором говорилось, что я "приближается к пределу строки для базы данных разработчиков"
Я предполагаю, что я ударил по строкам, но я хотел бы подтвердить это, прежде чем предпринимать дальнейшие действия.
Кто-нибудь знает, как я могу найти текущее количество строк для всей базы данных? (Я знаю, что могу просто рассчитывать на каждый стол, но я надеюсь, что там будет более чистый способ)
Ответы
Ответ 1
Если у вас есть инструмент heroku cli, это даст вам, помимо прочего, количество строк в вашей базе данных
heroku pg:info -a your_app
Также указаны тип вашего плана, статус db, количество текущих соединений, версия postgres, когда был создан db, количество строк в вашем плане, размер данных, количество таблиц и если ваш db имеет активируются любые функции fork/follow.
Ответ 2
Это даст вам приблизительное количество всех строк в вашей базе данных:
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));
Хотя сообщение об ошибке указывает на некоторую ошибку в вашей базе данных, вероятно, нарушение ограничений в сравнении с чем-то с отменой ваших привилегий вставки.