--- /dev/null
+#!/usr/bin/perl -w
+
+use strict;
+use FS::UID qw(adminsuidsetup dbh);
+use FS::Schema qw(dbdef);
+use FS::Record; #why is this necessary
+
+adminsuidsetup shift or die "usage: pg-sizer user";
+
+my $verbose = 1;
+
+my %size = ();
+my %prettysize = ();
+
+foreach my $table ( dbdef->tables ) {
+ warn "sizing $table...\n" if $verbose;
+ my $sth = dbh->prepare("SELECT pg_total_relation_size('$table')")
+ or die dbh->errstr;
+ $sth->execute or die $sth->errstr;
+ my $size = $sth->fetchrow_arrayref->[0];
+ $size{$table} = $size;
+
+ my $psth = dbh->prepare("SELECT pg_size_pretty( $size )")
+ or die dbh->errstr;
+ $psth->execute or die $psth->errstr;
+ my $prettysize = $psth->fetchrow_arrayref->[0];
+ $prettysize{$table} = $prettysize;
+
+ warn "$table: $prettysize{$table}\n" if $verbose;
+}
+
+foreach my $table ( reverse sort { $size{$a} <=> $size{$b} } keys %size ) {
+ #print "$table: $size{$table}\n";
+ print "$table: $prettysize{$table}\n";
+}
+