X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=bin%2Ffix-sequences;h=2ff89d3e58299b75e52abe7cb8b14cd08da337af;hp=55639d962624d5200464cc93040a78258cc56b97;hb=e975ed0585280f4cbb90b02f57114dedc43f58be;hpb=1957a30d2616acadba23324b764eb03ba008b590 diff --git a/bin/fix-sequences b/bin/fix-sequences index 55639d962..2ff89d3e5 100755 --- a/bin/fix-sequences +++ b/bin/fix-sequences @@ -1,5 +1,7 @@ #!/usr/bin/perl -Tw +# run dbdef-create first! + use strict; use DBI; use DBIx::DBSchema 0.21; @@ -42,16 +44,19 @@ foreach my $table ( @tables ) { my $seq = "${table}_${primary_key}_seq"; if ( driver_name eq 'Pg' && defined($col->default) - && $col->default =~ /^nextval\('"(\w+_seq)"'::text\)$/ + && $col->default =~ /^nextval\('"(public\.)?(\w+_seq)"'::text\)$/ ) { - $seq = $1; + $seq = $2; } warn "fixing sequence for $table\n"; - $dbh->do( "SELECT setval( '$seq', - ( SELECT max($primary_key) FROM $table ) );" ) - or die $dbh->errstr; + + my $sql = "SELECT setval( '$seq', + ( SELECT max($primary_key) FROM $table ) );"; + + #warn $col->default. " $seq\n$sql\n"; + $dbh->do( $sql ) or die $dbh->errstr; }