| #!/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(<F>) { $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; | |||||
| } |