#!/usr/bin/perl -w use strict; use vars qw($DEBUG $DRY_RUN); use Term::ReadKey; use DBIx::DBSchema 0.31; use FS::UID qw(adminsuidsetup checkeuid datasrc ); #getsecrets); use FS::Schema qw( dbdef dbdef_dist reload_dbdef ); $DEBUG = 1; die "Not running uid freeside!" unless checkeuid(); my $user = shift or die &usage; my $dbh = adminsuidsetup($user); #needs to match FS::Schema... my $dbdef_file = "/usr/local/etc/freeside/dbdef.". datasrc; dbdef_create($dbh, $dbdef_file); delete $FS::Schema::dbdef_cache{$dbdef_file}; #force an actual reload reload_dbdef($dbdef_file); $DBIx::DBSchema::DEBUG = $DEBUG; $DBIx::DBSchema::Table::DEBUG = $DEBUG; dbdef->update_schema( dbdef_dist, $dbh ); $dbh->commit or die $dbh->errstr; dbdef_create($dbh, $dbdef_file); $dbh->disconnect or die $dbh->errstr; ### 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-upgrade user\n"; } 1;