X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2Fbin%2Ffreeside-setup;fp=FS%2Fbin%2Ffreeside-setup;h=a16e517490f26c1cb8056d2ff542bb3ec1b0b3c1;hp=14c5a84ab1bb2a0225e2d3359db62eabf47227a4;hb=5d03c5bf1e774050bbdad9964408f248855ec317;hpb=4b2ee72b32274f78c1c8a859b34e0d49dfb6cd4b diff --git a/FS/bin/freeside-setup b/FS/bin/freeside-setup index 14c5a84ab..a16e51749 100755 --- a/FS/bin/freeside-setup +++ b/FS/bin/freeside-setup @@ -9,7 +9,7 @@ use Getopt::Std; use Locale::Country; use Locale::SubCountry; use FS::UID qw(adminsuidsetup datasrc checkeuid getsecrets); -use FS::Schema qw( dbdef_dist ); +use FS::Schema qw( dbdef_dist reload_dbdef ); use FS::Record; use FS::cust_main_county; #use FS::raddb; @@ -98,6 +98,12 @@ foreach my $statement ( $dbdef->sql($dbh) ) { or die "CREATE error: ". $dbh->errstr. "\ndoing statement: $statement"; } +#now go back and reverse engineer the db +#so we pick up the correct column DEFAULTs for #oidless inserts +dbdef_create($dbh, $dbdef_file); +delete $FS::Schema::dbdef_cache{$dbdef_file}; #force an actual reload +reload_dbdef($dbdef_file); + #cust_main_county foreach my $country ( sort map uc($_), all_country_codes ) { @@ -162,6 +168,12 @@ $dbh->disconnect or die $dbh->errstr; #print "Freeside database initialized sucessfully\n"; +sub dbdef_create { # reverse engineer the schema from the DB and save to file + my( $dbh, $file ) = @_; + my $dbdef = new_native DBIx::DBSchema $dbh; + $dbdef->save($file); +} + sub usage { die "Usage:\n freeside-setup user\n"; }