#!/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 " 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 <] 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 " 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 );