diff options
| author | mark <mark> | 2011-03-29 01:04:31 +0000 | 
|---|---|---|
| committer | mark <mark> | 2011-03-29 01:04:31 +0000 | 
| commit | f40cdebc5e55cb0a209f7fd3e8c3858402c71f9f (patch) | |
| tree | 3d8d534ba1e40c3e01f15bffdf113c4d3f3ad710 | |
| parent | 07c89b3d2c2b306ed04f1e12306e74fd7381d004 (diff) | |
primary key for areacode table
| -rw-r--r-- | FS/FS/Schema.pm | 5 | ||||
| -rw-r--r-- | FS/FS/areacode.pm | 22 | ||||
| -rwxr-xr-x | FS/bin/freeside-upgrade | 13 | 
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.  | 
