summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormark <mark>2011-03-29 01:04:31 +0000
committermark <mark>2011-03-29 01:04:31 +0000
commitf40cdebc5e55cb0a209f7fd3e8c3858402c71f9f (patch)
tree3d8d534ba1e40c3e01f15bffdf113c4d3f3ad710
parent07c89b3d2c2b306ed04f1e12306e74fd7381d004 (diff)
primary key for areacode table
-rw-r--r--FS/FS/Schema.pm5
-rw-r--r--FS/FS/areacode.pm22
-rwxr-xr-xFS/bin/freeside-upgrade13
3 files changed, 24 insertions, 16 deletions
diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm
index 6d4fb03d9..25eafa345 100644
--- a/FS/FS/Schema.pm
+++ b/FS/FS/Schema.pm
@@ -3270,13 +3270,14 @@ sub tables_hashref {
'areacode' => {
'columns' => [
+ 'areanum', 'serial', '', '', '', '',
'code', 'char', '', 3, '', '',
'country', 'char', 'NULL', 2, '', '',
'state', 'char', 'NULL', 2, '', '',
'description','varchar', 'NULL', 255, '', '',
],
- 'primary_key' => 'code',
- 'unique' => [],
+ 'primary_key' => 'areanum',
+ 'unique' => [ [ 'areanum' ] ],
'index' => [],
},
diff --git a/FS/FS/areacode.pm b/FS/FS/areacode.pm
index 58b498c09..b6defa2fc 100644
--- a/FS/FS/areacode.pm
+++ b/FS/FS/areacode.pm
@@ -25,27 +25,20 @@ FS::areacode - Object methods for areacode records
=head1 DESCRIPTION
-An FS::areacode object represents an example. FS::areacode inherits from
+An FS::areacode object represents an area code. FS::areacode inherits from
FS::Record. The following fields are currently supported:
=over 4
-=item code
+=item areanum - primary key
-area code (primary key)
+=item code - area code
-=item country
+=item country - two-letter country code
-two-letter country code
-
-=item state
-
-two-letter state code, if appropriate
-
-=item description
-
-description (optional)
+=item state - two-letter state code, if appropriate
+=item description - description (optional)
=back
@@ -92,7 +85,8 @@ sub check {
my $self = shift;
my $error =
- $self->ut_number('code')
+ $self->ut_numbern('areanum')
+ || $self->ut_number('code')
|| $self->ut_text('country')
|| $self->ut_textn('state')
|| $self->ut_textn('description')
diff --git a/FS/bin/freeside-upgrade b/FS/bin/freeside-upgrade
index aca545b84..e11a0a7fe 100755
--- a/FS/bin/freeside-upgrade
+++ b/FS/bin/freeside-upgrade
@@ -71,6 +71,19 @@ if ( dbdef->table('cgp_rule_condition') &&
}
+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';
+ }
+}
+
# RT required field flag
# for consistency with RT schema: mysql is in CamelCase,
# pg is in lowercase, and they use different data types.