#!/usr/bin/perl use strict; use JSON; use DBI; use warnings; my $conf = load_conf("../etc/autodoc.json"); my $dbh = sqlconnect($conf->{sql}); my @del = ( 'pages', 'documents', 'tags', 'words' ); foreach ( @del ) { print "DELETE FROM $_\n"; sqlquery($dbh, "DELETE FROM $_"); } my $q = sqlquery($dbh, "SHOW TABLE STATUS"); while(my $h = $q->fetchrow_hashref()) { print "="x80 . "\n"; foreach my $name ( sort keys %{$h} ) { next if $name !~ /^(Name|Rows)$/; printf("%10s: %s\n", $name, defined $h->{$name} ? $h->{$name} : 'NULL' ); } } sub load_conf { my($file) = @_; my $x=''; open(F,"$file") || fatal_api_error(500,"Failed to load configuration file"); while() { $x.=$_; } close(F); return from_json($x); } sub sqlconnect { my($sql) = @_; my $dsn = "DBI:mysql:database=$sql->{base};host=$sql->{host}"; my $dbh = DBI->connect($dsn, $sql->{user}, $sql->{pass}) || \\ print STDERR "Failed to connect to database\n"; return $dbh; } sub sqlquery { my $dbh = shift; my $query = shift; my @args = @_; my $sth = $dbh->prepare($query) || print STDERR $dbh->error(); $sth->execute(@args) || print STDERR $sth->error(); return $sth; }