diff options
Diffstat (limited to 'bin/sequences.reset')
| -rw-r--r-- | bin/sequences.reset | 32 | 
1 files changed, 32 insertions, 0 deletions
| diff --git a/bin/sequences.reset b/bin/sequences.reset new file mode 100644 index 000000000..2dc1d3bb2 --- /dev/null +++ b/bin/sequences.reset @@ -0,0 +1,32 @@ +#!/usr/bin/perl + +use FS::UID qw(adminsuidsetup); +use FS::Record qw(dbdef dbh); + +my $user = shift; +adminsuidsetup $user or die; + +foreach my $table ( dbdef->tables ) { +  my $primary_key = dbdef->table($table)->primary_key; +  next unless $primary_key; +  #my $local = dbdef->table($table)->column($primary_key)->local; +  ##next unless $default =~ /nextval/; +  #print "$local\n"; + +  my $statement = "select setval('${table}_${primary_key}_seq', ( select max($primary_key) from $table ) )"; + +  print "$statement;\n"; +  next; +   +  my $sth = dbh->prepare($statement) or do { +    warn dbh->errstr. " preparing $statement\n"; +    next; +  }; +  $sth->execute or do { +    warn dbh->errstr. " executing $statement\n"; +    dbh->commit; +    next; +  } + +} + | 
