87 lines
1.8 KiB
Perl
Executable File
87 lines
1.8 KiB
Perl
Executable File
#!/usr/bin/env perl
|
|
|
|
use strict;
|
|
use warnings;
|
|
|
|
use FindBin;
|
|
FindBin::again();
|
|
use Path::Class 'dir';
|
|
|
|
BEGIN {
|
|
# stuff useful locations into @INC
|
|
unshift @INC,
|
|
dir($FindBin::RealBin)->parent->subdir('lib')->stringify,
|
|
dir($FindBin::RealBin, 'lib')->stringify;
|
|
}
|
|
|
|
use App::Netdisco;
|
|
use Dancer ':script';
|
|
use Dancer::Plugin::DBIC 'schema';
|
|
|
|
use App::Netdisco::DB;
|
|
use Getopt::Long;
|
|
|
|
=head1 NAME
|
|
|
|
nd-dbic-versions - Create DB Schema Versions for Netdisco
|
|
|
|
=head1 USAGE
|
|
|
|
This script creates SQL DDL files of the Netdisco database schema.
|
|
|
|
If called without any CLI options, it makes one SQL DDL file which will
|
|
initialize the complete schema to the current DBIx::Class specification.
|
|
|
|
If called with the "-p <version>" option, upgrade SQL DDL command files
|
|
are created between the specified version and the current DBIx::Class
|
|
specification.
|
|
|
|
=head1 NEW VERSION
|
|
|
|
=over 4
|
|
|
|
=item 1.
|
|
|
|
Alter the DBIC DDL files as you wish.
|
|
|
|
=item 2.
|
|
|
|
Increment the Schema's C<$VERSION> number.
|
|
|
|
=item 3.
|
|
|
|
Run this script with "C<-p $current_db_version>".
|
|
|
|
=back
|
|
|
|
=cut
|
|
|
|
my $sql_dir = $App::Netdisco::DB::schema_versions_dir;
|
|
my $version = schema('netdisco')->schema_version;
|
|
|
|
my ( $preversion, $help );
|
|
GetOptions(
|
|
'p|preversion:s' => \$preversion,
|
|
) or do {
|
|
print <<ENDHELP;
|
|
$0 [-p <version>]
|
|
|
|
This script creates SQL DDL files of the Netdisco database schema.
|
|
|
|
If called without any CLI options, it makes one SQL DDL file which will
|
|
initialize the complete schema to the current DBIx::Class specification.
|
|
|
|
If called with the "-p <version>" option, upgrade SQL DDL command files
|
|
are created between the specified version and the current DBIx::Class
|
|
specification.
|
|
|
|
SQL DDL files are stored in:
|
|
$sql_dir
|
|
ENDHELP
|
|
exit(1);
|
|
};
|
|
|
|
schema('netdisco')->create_ddl_dir(
|
|
'PostgreSQL', $version, $sql_dir, $preversion );
|
|
|