From df03590ba60e7595cb08fccf13b3c3b502b2a100 Mon Sep 17 00:00:00 2001 From: ivan Date: Sat, 27 Mar 2010 03:32:17 +0000 Subject: [PATCH] - mysql: when reverse engineering, transform a default of CURRENT_TIMESTAMP into the more common NOW() - 0.39 --- Changes | 6 ++++-- DBSchema.pm | 2 +- DBSchema/Column.pm | 7 ++++++- DBSchema/DBD/mysql.pm | 8 +++++++- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/Changes b/Changes index eae6f74..f4d33e1 100644 --- a/Changes +++ b/Changes @@ -1,7 +1,9 @@ Revision history for Perl extension DBIx::DBSchema. -0.39 unreleased - - MySQL TEXT->LONGTEXT +0.39 Fri Mar 26 20:24:58 PDT 2010 + - mysql: TEXT->LONGTEXT + - mysql: when reverse engineering, transform a default of + CURRENT_TIMESTAMP into the more common NOW() 0.38 Thu Jan 14 15:26:13 PST 2010 - Bump version number for ->quoted_default availability & default diff --git a/DBSchema.pm b/DBSchema.pm index 59cd147..a778cf0 100644 --- a/DBSchema.pm +++ b/DBSchema.pm @@ -10,7 +10,7 @@ use DBIx::DBSchema::Column; use DBIx::DBSchema::ColGroup::Unique; use DBIx::DBSchema::ColGroup::Index; -$VERSION = "0.39_01"; +$VERSION = "0.39"; $VERSION = eval $VERSION; # modperlstyle: convert the string into a number $DEBUG = 0; diff --git a/DBSchema/Column.pm b/DBSchema/Column.pm index 1f0c016..f10d43a 100644 --- a/DBSchema/Column.pm +++ b/DBSchema/Column.pm @@ -461,7 +461,12 @@ sub sql_alter_column { # change default my $old_default = $self->quoted_default($dbh); my $new_default = $new->quoted_default($dbh); - if ( $old_default ne $new_default ) { + if ( $old_default ne $new_default + && ( uc($old_default) ne 'NOW()' || uc($new_default) ne 'NOW()' ) + ) + { + + #warn "old default: $old_default / new default: $new_default\n"; my $alter = "ALTER TABLE $table ALTER COLUMN $name"; diff --git a/DBSchema/DBD/mysql.pm b/DBSchema/DBD/mysql.pm index 925e15a..148d215 100644 --- a/DBSchema/DBD/mysql.pm +++ b/DBSchema/DBD/mysql.pm @@ -46,12 +46,18 @@ sub columns { $_->{'Type'} =~ /^(\w+)\(?([^)]+)?\)?( \d+)?$/ or die "Illegal type: ". $_->{'Type'}. "\n"; my($type, $length) = ($1, $2); + + my $default = $_->{'Default'}; + $default = '' unless defined($default); + $default = \0 if $default eq '0'; + $default = \'NOW()' if uc($default) eq 'CURRENT_TIMESTAMP'; + [ $_->{'Field'}, $type, ( $_->{'Null'} =~ /^YES$/i ? 'NULL' : '' ), $length, - $_->{'Default'}, + $default, $_->{'Extra'} ] } @{ $sth->fetchall_arrayref( {} ) }; -- 2.11.0