4 use vars qw($DEBUG $DRY_RUN);
6 use DBIx::DBSchema 0.31;
7 use FS::UID qw(adminsuidsetup checkeuid datasrc ); #getsecrets);
8 use FS::Schema qw( dbdef dbdef_dist reload_dbdef );
12 die "Not running uid freeside!" unless checkeuid();
14 my $user = shift or die &usage;
15 my $dbh = adminsuidsetup($user);
17 #needs to match FS::Schema...
18 my $dbdef_file = "/usr/local/etc/freeside/dbdef.". datasrc;
20 dbdef_create($dbh, $dbdef_file);
22 delete $FS::Schema::dbdef_cache{$dbdef_file}; #force an actual reload
23 reload_dbdef($dbdef_file);
25 $DBIx::DBSchema::DEBUG = $DEBUG;
26 $DBIx::DBSchema::Table::DEBUG = $DEBUG;
27 dbdef->update_schema( dbdef_dist, $dbh );
29 $dbh->commit or die $dbh->errstr;
31 dbdef_create($dbh, $dbdef_file);
33 $dbh->disconnect or die $dbh->errstr;
37 sub dbdef_create { # reverse engineer the schema from the DB and save to file
38 my( $dbh, $file ) = @_;
39 my $dbdef = new_native DBIx::DBSchema $dbh;
44 die "Usage:\n freeside-upgrade user\n";