4 use FS::UID qw( adminsuidsetup driver_name );
5 use FS::Record qw( dbdef );
7 my $user = shift or die;
8 my $dbh = adminsuidsetup $user;
12 my @tables = scalar(@ARGV)
14 : grep { ! /^h_/ } $schema->tables;
16 foreach my $table ( @tables ) {
17 my $tableobj = $schema->table($table)
18 or die "unknown table $table (did you run dbdef-create?)\n";
20 my $primary_key = $tableobj->primary_key;
21 next unless $primary_key;
23 my $col = $tableobj->column($primary_key);
25 #warn "$table ". $col->type;
26 #warn "$table ". $col->default;
28 next if uc($col->type) eq 'SERIAL'
29 || ( driver_name eq 'Pg'
30 && defined($col->default)
31 && $col->quoted_default =~ /^nextval\(/i
33 || ( driver_name eq 'mysql'
34 && defined($col->local)
35 && $col->local =~ /AUTO_INCREMENT/i
38 my $value = FS::Record->scalar_sql("SELECT max($primary_key) FROM $table")
41 warn "setting counter for $table to $value\n";
42 open(FILE, ">/usr/local/etc/freeside/counters.DBI:Pg:dbname=freeside/$table.$primary_key")
44 print FILE "#COUNTER-1.0\n$value\n";