+if ( dbdef->table('cgp_rule_condition') &&
+ dbdef->table('cgp_rule_condition')->column('condition')
+ )
+{
+ push @bugfix,
+ "ALTER TABLE ${_}cgp_rule_condition RENAME COLUMN condition TO conditionname"
+ for '', 'h_';
+
+}
+
+if ( dbdef->table('areacode') and
+ dbdef->table('areacode')->primary_key eq 'code' )
+{
+ if ( driver_name =~ /^mysql/i ) {
+ push @bugfix,
+ 'ALTER TABLE areacode DROP PRIMARY KEY',
+ 'ALTER TABLE areacode ADD COLUMN (areanum int auto_increment primary key)';
+ }
+ else {
+ push @bugfix, 'ALTER TABLE areacode DROP CONSTRAINT areacode_pkey';
+ }
+}
+
+if ( $DRY_RUN ) {
+ print
+ join(";\n", @bugfix ). ";\n";
+} elsif ( @bugfix ) {
+
+ foreach my $statement ( @bugfix ) {
+ warn "$statement\n";
+ $dbh->do( $statement )
+ or die "Error: ". $dbh->errstr. "\n executing: $statement";
+ }
+
+ upgrade_schema();
+
+ dbdef_create($dbh, $dbdef_file);
+ delete $FS::Schema::dbdef_cache{$dbdef_file}; #force an actual reload
+ reload_dbdef($dbdef_file);
+
+}
+