Câu trả lời hóc búa, thiết thực cho những người đang cố gắng đánh giá kế hoạch Heroku nào họ cần và không thể chờ bộ đếm hàng chậm của heroku để làm mới:
Về cơ bản bạn muốn chạy \dt
vào psql
, sao chép kết quả vào trình soạn thảo văn bản yêu thích của bạn (nó sẽ trông như thế này:
public | auth_group | table | axrsosvelhutvw
public | auth_group_permissions | table | axrsosvelhutvw
public | auth_permission | table | axrsosvelhutvw
public | auth_user | table | axrsosvelhutvw
public | auth_user_groups | table | axrsosvelhutvw
public | auth_user_user_permissions | table | axrsosvelhutvw
public | background_task | table | axrsosvelhutvw
public | django_admin_log | table | axrsosvelhutvw
public | django_content_type | table | axrsosvelhutvw
public | django_migrations | table | axrsosvelhutvw
public | django_session | table | axrsosvelhutvw
public | exercises_assignment | table | axrsosvelhutvw
), sau đó chạy tìm kiếm regex và thay thế như thế này:
^[^|]*\|\s+([^|]*?)\s+\| table \|.*$
đến:
select '\1', count(*) from \1 union/g
sẽ mang lại cho bạn một cái gì đó rất giống với điều này:
select 'auth_group', count(*) from auth_group union
select 'auth_group_permissions', count(*) from auth_group_permissions union
select 'auth_permission', count(*) from auth_permission union
select 'auth_user', count(*) from auth_user union
select 'auth_user_groups', count(*) from auth_user_groups union
select 'auth_user_user_permissions', count(*) from auth_user_user_permissions union
select 'background_task', count(*) from background_task union
select 'django_admin_log', count(*) from django_admin_log union
select 'django_content_type', count(*) from django_content_type union
select 'django_migrations', count(*) from django_migrations union
select 'django_session', count(*) from django_session
;
(Bạn sẽ cần xóa phần cuối cùng union
và thêm dấu chấm phẩy ở cuối bằng tay)
Chạy nó vào psql
và bạn đã hoàn thành.
?column? | count
--------------------------------+-------
auth_group_permissions | 0
auth_user_user_permissions | 0
django_session | 1306
django_content_type | 17
auth_user_groups | 162
django_admin_log | 9106
django_migrations | 19
[..]
with tbl as (SELECT table_schema,table_name FROM information_schema.tables where table_name not like 'pg_%' and table_schema in ('public')) select table_schema, table_name, (xpath('/row/c/text()', query_to_xml(format('select count(*) as c from %I.%I', table_schema, table_name), false, true, '')))[1]::text::int as rows_n from tbl ORDER BY 3 DESC;