diff options
Diffstat (limited to 'FS/bin/freeside-dbdef-create')
-rwxr-xr-x | FS/bin/freeside-dbdef-create | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/FS/bin/freeside-dbdef-create b/FS/bin/freeside-dbdef-create new file mode 100755 index 0000000..6c448c7 --- /dev/null +++ b/FS/bin/freeside-dbdef-create @@ -0,0 +1,47 @@ +#!/usr/bin/perl -w + +use strict; +use DBI; +use DBIx::DBSchema 0.26; +use FS::UID qw(adminsuidsetup datasrc driver_name); +use FS::Schema; + +my $user = shift or die &usage; + +$FS::Schema::setup_hack = 1; +$FS::CurrentUser::upgrade_hack = 1; +my($dbh)=adminsuidsetup $user; + +#needs to match FS::Record +my($dbdef_file) = "%%%FREESIDE_CONF%%%/dbdef.". datasrc; + +my $dbdef = new_native DBIx::DBSchema $dbh; + +#print $dbdef->pretty_print; + +#important +$dbdef->save($dbdef_file); + +sub usage { + die "Usage:\n dbdef-create user\n"; +} + +=head1 NAME + +freeside-dbdef-create - Recreate database schema cache + +=head1 SYNOPSIS + + freeside-dbdef-create user + +=head1 DESCRIPTION + +Reverse engineers the database schema and recreates the dbdef cache file. + +=head1 SEE ALSO + +L<DBIx::DBSchema> + +=cut + +1; |