2012-09-14 16 views
32

El título resume bastante bien mi pregunta, pero aquí hay más detalles:¿Cómo encontrar el número de filas en la base de datos heroku

estoy corriendo un script para importar filas en una base de datos de heroku. Empecé a recibir errores:

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

El script se ejecuta sin problemas en mi localhost, así que no estoy buscando problemas allí. Recientemente recibí un correo electrónico de heroku que decía "Me estoy acercando al límite de filas para la base de datos de desarrollo"

Supongo que llegué al límite de la fila, pero me gustaría confirmarlo antes de tomar medidas adicionales.

¿Alguien sabe cómo puedo encontrar mi recuento de filas actual para toda la base de datos? (Sé que sólo puede hacer un recuento de cada mesa, pero estoy esperando que hay una manera más limpia)

Respuesta

68

Si tiene la herramienta heroku CLI, esto le dará, entre otras cosas, el número de filas de la base de datos de

heroku pg:info -a your_app 

Además se ha dado son el tipo de plan, el estado db, el número de corriente conexiones, versión de postgres, cuando se creó la base de datos, el número de filas en su plan, el tamaño de datos, el número de tablas y si su base de datos tiene activadas opciones de seguimiento/seguimiento.

+0

impresionante, heroku tenía algo más fácil. muy apreciado – mea36

+4

Hmm. En mi aplicación, este comando no me dice el número de filas. Me da todas las propiedades que mencionas, excepto el número de filas utilizadas y el número de filas en mi plan. (Sé que este último es de 10 millones, ya que esta aplicación está en el plan "básico"). – zem

+0

tampoco veo filas. Utilizo el último heroku 2.35.0 – jpwynn

20

Esto le dará el recuento aproximado de todas las filas dentro de su base de datos:

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)); 

Aunque el error mensaje indica algún error en su base de datos, probablemente una violación de restricción versus algo con sus privilegios de inserción revocados.

+0

gracias por la instrucción sql. Esperaba que Heroku tuviera algo más fácil pero funcionó perfectamente. tiene razón al suponer que es una violación de restricción, pero la mitad de las importaciones funcionó, así que no creo que sea eso. Estoy por encima del límite de mi fila, así que con suerte ese es el problema – mea36

Cuestiones relacionadas