summaryrefslogtreecommitdiff
path: root/bin/sequences.reset
diff options
context:
space:
mode:
authorivan <ivan>2004-05-12 18:03:47 +0000
committerivan <ivan>2004-05-12 18:03:47 +0000
commite43ee0863e66d8d3e3a4453690561638ed4a92dd (patch)
tree771d851484b46ecddad2ef8ae213f6ead77d9a60 /bin/sequences.reset
parentb53f5fb951a5fdf89ba3fb597c18682e699b95e7 (diff)
adding
Diffstat (limited to 'bin/sequences.reset')
-rw-r--r--bin/sequences.reset28
1 files changed, 28 insertions, 0 deletions
diff --git a/bin/sequences.reset b/bin/sequences.reset
new file mode 100644
index 000000000..f0fc4b7f2
--- /dev/null
+++ b/bin/sequences.reset
@@ -0,0 +1,28 @@
+#!/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 ) )\n";
+ 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;
+ }
+
+}
+