From c86ea4bb46792a5f175e9887c2e60d9bd3612056 Mon Sep 17 00:00:00 2001 From: ivan Date: Wed, 3 Jun 1998 07:22:52 +0000 Subject: Initial revision --- bin/dbdef-create | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100755 bin/dbdef-create (limited to 'bin/dbdef-create') diff --git a/bin/dbdef-create b/bin/dbdef-create new file mode 100755 index 000000000..eb62c77e3 --- /dev/null +++ b/bin/dbdef-create @@ -0,0 +1,85 @@ +#!/usr/bin/perl -Tw +# +# create dbdef file for existing mySQL database (needs SHOW|DESCRIBE command +# not in Pg) based on fs-setup +# +# ivan@sisd.com 98-jun-2 + +use strict; +use DBI; +use FS::dbdef; +use FS::UID qw(adminsuidsetup datasrc); + +#needs to match FS::Record +my($dbdef_file) = "/var/spool/freeside/dbdef.". datasrc; + +my($dbh)=adminsuidsetup; + +my($tables_sth)=$dbh->prepare("SHOW TABLES"); +my($tables_rv)=$tables_sth->execute; + +my(@tables); +foreach ( @{$tables_sth->fetchall_arrayref} ) { + my($table)=${$_}[0]; + #print "TABLE\t$table\n"; + + my($index_sth)=$dbh->prepare("SHOW INDEX FROM $table"); + my($primary_key)=''; + my(%index,%unique); + for ( 1 .. $index_sth->execute ) { + my($row)=$index_sth->fetchrow_hashref; + if ( ${$row}{'Key_name'} eq "PRIMARY" ) { + $primary_key=${$row}{'Column_name'}; + next; + } + if ( ${$row}{'Non_unique'} ) { #index + push @{$index{${$row}{'Key_name'}}}, ${$row}{'Column_name'}; + } else { #unique + push @{$unique{${$row}{'Key_name'}}}, ${$row}{'Column_name'}; + } + } + + my(@index)=values %index; + my(@unique)=values %unique; + #print "\tPRIMARY KEY $primary_key\n"; + foreach (@index) { + #print "\tINDEX\t", join(', ', @{$_}), "\n"; + } + foreach (@unique) { + #print "\tUNIQUE\t", join(', ', @{$_}), "\n"; + } + + my($columns_sth)=$dbh->prepare("SHOW COLUMNS FROM $table"); + my(@columns); + for ( 1 .. $columns_sth->execute ) { + my($row)=$columns_sth->fetchrow_hashref; + #print "\t", ${$row}{'Field'}, "\n"; + ${$row}{'Type'} =~ /^(\w+)\(?([\d\,]+)?\)?( unsigned)?$/ + or die "Illegal type ${$row}{'Type'}\n"; + my($type,$length)=($1,$2); + my($null)=${$row}{'Null'}; + $null =~ s/YES/NULL/; + push @columns, new FS::dbdef_column ( + ${$row}{'Field'}, + $type, + $null, + $length, + ); + } + + #print "\n"; + push @tables, new FS::dbdef_table ( + $table, + $primary_key, + new FS::dbdef_unique (\@unique), + new FS::dbdef_index (\@index), + @columns, + ); + +} + +my($dbdef) = new FS::dbdef ( @tables ); + +#important +$dbdef->save($dbdef_file); + -- cgit v1.2.1 From 8935cf3566726a2757c3b8f988acfcc0b7ac9352 Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 19 Nov 1998 11:17:44 +0000 Subject: adminsuidsetup requires argument --- bin/dbdef-create | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'bin/dbdef-create') diff --git a/bin/dbdef-create b/bin/dbdef-create index eb62c77e3..fe7475bec 100755 --- a/bin/dbdef-create +++ b/bin/dbdef-create @@ -1,19 +1,28 @@ #!/usr/bin/perl -Tw # +# $Id: dbdef-create,v 1.2 1998-11-19 11:17:44 ivan Exp $ +# # create dbdef file for existing mySQL database (needs SHOW|DESCRIBE command # not in Pg) based on fs-setup # # ivan@sisd.com 98-jun-2 +# +# $Log: dbdef-create,v $ +# Revision 1.2 1998-11-19 11:17:44 ivan +# adminsuidsetup requires argument +# use strict; use DBI; use FS::dbdef; use FS::UID qw(adminsuidsetup datasrc); -#needs to match FS::Record -my($dbdef_file) = "/var/spool/freeside/dbdef.". datasrc; +my $user = shift or die &usage; -my($dbh)=adminsuidsetup; +my($dbh)=adminsuidsetup $user; + +#needs to match FS::Record +my($dbdef_file) = "/usr/local/etc/freeside/dbdef.". datasrc; my($tables_sth)=$dbh->prepare("SHOW TABLES"); my($tables_rv)=$tables_sth->execute; @@ -83,3 +92,6 @@ my($dbdef) = new FS::dbdef ( @tables ); #important $dbdef->save($dbdef_file); +sub usage { + die "Usage:\n dbdef-create user\n"; +} -- cgit v1.2.1 From 018f6678557506e68cc6b8643862143cc332f7da Mon Sep 17 00:00:00 2001 From: ivan Date: Sun, 15 Apr 2001 12:56:31 +0000 Subject: s/dbdef/DBIx::DBSchema/ --- bin/dbdef-create | 76 ++++++-------------------------------------------------- 1 file changed, 8 insertions(+), 68 deletions(-) (limited to 'bin/dbdef-create') diff --git a/bin/dbdef-create b/bin/dbdef-create index fe7475bec..902f7f145 100755 --- a/bin/dbdef-create +++ b/bin/dbdef-create @@ -1,6 +1,6 @@ #!/usr/bin/perl -Tw # -# $Id: dbdef-create,v 1.2 1998-11-19 11:17:44 ivan Exp $ +# $Id: dbdef-create,v 1.3 2001-04-15 12:56:31 ivan Exp $ # # create dbdef file for existing mySQL database (needs SHOW|DESCRIBE command # not in Pg) based on fs-setup @@ -8,14 +8,17 @@ # ivan@sisd.com 98-jun-2 # # $Log: dbdef-create,v $ -# Revision 1.2 1998-11-19 11:17:44 ivan +# Revision 1.3 2001-04-15 12:56:31 ivan +# s/dbdef/DBIx::DBSchema/ +# +# Revision 1.2 1998/11/19 11:17:44 ivan # adminsuidsetup requires argument # use strict; use DBI; -use FS::dbdef; -use FS::UID qw(adminsuidsetup datasrc); +use DBIx::DBSchema; +use FS::UID qw(adminsuidsetup datasrc driver_name); my $user = shift or die &usage; @@ -24,70 +27,7 @@ my($dbh)=adminsuidsetup $user; #needs to match FS::Record my($dbdef_file) = "/usr/local/etc/freeside/dbdef.". datasrc; -my($tables_sth)=$dbh->prepare("SHOW TABLES"); -my($tables_rv)=$tables_sth->execute; - -my(@tables); -foreach ( @{$tables_sth->fetchall_arrayref} ) { - my($table)=${$_}[0]; - #print "TABLE\t$table\n"; - - my($index_sth)=$dbh->prepare("SHOW INDEX FROM $table"); - my($primary_key)=''; - my(%index,%unique); - for ( 1 .. $index_sth->execute ) { - my($row)=$index_sth->fetchrow_hashref; - if ( ${$row}{'Key_name'} eq "PRIMARY" ) { - $primary_key=${$row}{'Column_name'}; - next; - } - if ( ${$row}{'Non_unique'} ) { #index - push @{$index{${$row}{'Key_name'}}}, ${$row}{'Column_name'}; - } else { #unique - push @{$unique{${$row}{'Key_name'}}}, ${$row}{'Column_name'}; - } - } - - my(@index)=values %index; - my(@unique)=values %unique; - #print "\tPRIMARY KEY $primary_key\n"; - foreach (@index) { - #print "\tINDEX\t", join(', ', @{$_}), "\n"; - } - foreach (@unique) { - #print "\tUNIQUE\t", join(', ', @{$_}), "\n"; - } - - my($columns_sth)=$dbh->prepare("SHOW COLUMNS FROM $table"); - my(@columns); - for ( 1 .. $columns_sth->execute ) { - my($row)=$columns_sth->fetchrow_hashref; - #print "\t", ${$row}{'Field'}, "\n"; - ${$row}{'Type'} =~ /^(\w+)\(?([\d\,]+)?\)?( unsigned)?$/ - or die "Illegal type ${$row}{'Type'}\n"; - my($type,$length)=($1,$2); - my($null)=${$row}{'Null'}; - $null =~ s/YES/NULL/; - push @columns, new FS::dbdef_column ( - ${$row}{'Field'}, - $type, - $null, - $length, - ); - } - - #print "\n"; - push @tables, new FS::dbdef_table ( - $table, - $primary_key, - new FS::dbdef_unique (\@unique), - new FS::dbdef_index (\@index), - @columns, - ); - -} - -my($dbdef) = new FS::dbdef ( @tables ); +my $dbdef = new_native DBIx::DBSchema $dbh; #important $dbdef->save($dbdef_file); -- cgit v1.2.1 From 55b29dc1d28b0c27e7f8271e7fe382a36d75d268 Mon Sep 17 00:00:00 2001 From: ivan Date: Fri, 17 Aug 2001 10:57:40 +0000 Subject: gah --- bin/dbdef-create | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'bin/dbdef-create') diff --git a/bin/dbdef-create b/bin/dbdef-create index 902f7f145..e71eb36b4 100755 --- a/bin/dbdef-create +++ b/bin/dbdef-create @@ -1,6 +1,6 @@ #!/usr/bin/perl -Tw # -# $Id: dbdef-create,v 1.3 2001-04-15 12:56:31 ivan Exp $ +# $Id: dbdef-create,v 1.4 2001-08-17 10:57:40 ivan Exp $ # # create dbdef file for existing mySQL database (needs SHOW|DESCRIBE command # not in Pg) based on fs-setup @@ -8,7 +8,10 @@ # ivan@sisd.com 98-jun-2 # # $Log: dbdef-create,v $ -# Revision 1.3 2001-04-15 12:56:31 ivan +# Revision 1.4 2001-08-17 10:57:40 ivan +# gah +# +# Revision 1.3 2001/04/15 12:56:31 ivan # s/dbdef/DBIx::DBSchema/ # # Revision 1.2 1998/11/19 11:17:44 ivan @@ -29,6 +32,8 @@ my($dbdef_file) = "/usr/local/etc/freeside/dbdef.". datasrc; my $dbdef = new_native DBIx::DBSchema $dbh; +#print $dbdef->pretty_print; + #important $dbdef->save($dbdef_file); -- cgit v1.2.1 From 4ac49026e732c19ef88103ab85536cea40cbc41c Mon Sep 17 00:00:00 2001 From: ivan Date: Tue, 21 Aug 2001 02:43:18 +0000 Subject: i think svc_acct_sm.import should go away, but... --- bin/dbdef-create | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) (limited to 'bin/dbdef-create') diff --git a/bin/dbdef-create b/bin/dbdef-create index e71eb36b4..0b297b9e6 100755 --- a/bin/dbdef-create +++ b/bin/dbdef-create @@ -1,22 +1,6 @@ #!/usr/bin/perl -Tw # -# $Id: dbdef-create,v 1.4 2001-08-17 10:57:40 ivan Exp $ -# -# create dbdef file for existing mySQL database (needs SHOW|DESCRIBE command -# not in Pg) based on fs-setup -# -# ivan@sisd.com 98-jun-2 -# -# $Log: dbdef-create,v $ -# Revision 1.4 2001-08-17 10:57:40 ivan -# gah -# -# Revision 1.3 2001/04/15 12:56:31 ivan -# s/dbdef/DBIx::DBSchema/ -# -# Revision 1.2 1998/11/19 11:17:44 ivan -# adminsuidsetup requires argument -# +# $Id: dbdef-create,v 1.5 2001-08-21 02:43:18 ivan Exp $ use strict; use DBI; -- cgit v1.2.1 From 4c5b1b08168b20da1a87e9b82ee87ad18cb3ddd6 Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 19 Sep 2002 13:34:52 +0000 Subject: use database SERIAL or AUTO_INCREMENT for primary keys, finally, yay! closes: bug#69 --- bin/dbdef-create | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'bin/dbdef-create') diff --git a/bin/dbdef-create b/bin/dbdef-create index 0b297b9e6..c977f876e 100755 --- a/bin/dbdef-create +++ b/bin/dbdef-create @@ -1,10 +1,10 @@ #!/usr/bin/perl -Tw # -# $Id: dbdef-create,v 1.5 2001-08-21 02:43:18 ivan Exp $ +# $Id: dbdef-create,v 1.6 2002-09-19 13:34:52 ivan Exp $ use strict; use DBI; -use DBIx::DBSchema; +use DBIx::DBSchema 0.21; use FS::UID qw(adminsuidsetup datasrc driver_name); my $user = shift or die &usage; -- cgit v1.2.1 From 952ce66262265a57634240373c18ddb6d8dd57bd Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 23 Oct 2003 22:37:03 +0000 Subject: require DBIx::DBSchema 0.22 to deal with Pg version problems --- bin/dbdef-create | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'bin/dbdef-create') diff --git a/bin/dbdef-create b/bin/dbdef-create index c977f876e..a449d67cc 100755 --- a/bin/dbdef-create +++ b/bin/dbdef-create @@ -1,10 +1,8 @@ #!/usr/bin/perl -Tw -# -# $Id: dbdef-create,v 1.6 2002-09-19 13:34:52 ivan Exp $ use strict; use DBI; -use DBIx::DBSchema 0.21; +use DBIx::DBSchema 0.22; use FS::UID qw(adminsuidsetup datasrc driver_name); my $user = shift or die &usage; -- cgit v1.2.1 From d18a2abec5a0323c26fbc5704fb1a2675eaea352 Mon Sep 17 00:00:00 2001 From: ivan Date: Thu, 7 Apr 2005 09:26:18 +0000 Subject: depend on DBIx::DBSchema 0.26 for dbdef-create (for Pg 'public' schema fix) and 0.25 in freeside-setup and Record.pm (for DBD::Pg 1.40 is bunk fix) --- bin/dbdef-create | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'bin/dbdef-create') diff --git a/bin/dbdef-create b/bin/dbdef-create index a449d67cc..fea02c8c5 100755 --- a/bin/dbdef-create +++ b/bin/dbdef-create @@ -2,7 +2,7 @@ use strict; use DBI; -use DBIx::DBSchema 0.22; +use DBIx::DBSchema 0.26; use FS::UID qw(adminsuidsetup datasrc driver_name); my $user = shift or die &usage; -- cgit v1.2.1