f0fc4b7f2180f25be809970477268ef730ec5ad7
[freeside.git] / bin / sequences.reset
1 #!/usr/bin/perl
2
3 use FS::UID qw(adminsuidsetup);
4 use FS::Record qw(dbdef dbh);
5
6 my $user = shift;
7 adminsuidsetup $user or die;
8
9 foreach my $table ( dbdef->tables ) {
10   my $primary_key = dbdef->table($table)->primary_key;
11   next unless $primary_key;
12   #my $local = dbdef->table($table)->column($primary_key)->local;
13   ##next unless $default =~ /nextval/;
14   #print "$local\n";
15
16   my $statement = "select setval('${table}_${primary_key}_seq', ( select max($primary_key) from $table ) )\n";
17   my $sth = dbh->prepare($statement) or do {
18     warn dbh->errstr. " preparing $statement\n";
19     next;
20   };
21   $sth->execute or do {
22     warn dbh->errstr. " executing $statement\n";
23     dbh->commit;
24     next;
25   }
26
27 }
28