33 lines
		
	
	
		
			780 B
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			780 B
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env perl
 | |
| 
 | |
| use strict;
 | |
| use warnings FATAL => 'all';
 | |
| 
 | |
| use Dancer ':script';
 | |
| use Dancer::Plugin::DBIC 'schema';
 | |
| 
 | |
| use Netdisco::DB;
 | |
| use Try::Tiny;
 | |
| use feature 'say';
 | |
| 
 | |
| try {
 | |
|   my $count = schema->resultset('Device')->count();
 | |
| }
 | |
| catch {
 | |
|   # fresh install? deploy the Netdisco::DB schema
 | |
|   say 'Deploying Netdisco::DB schema...';
 | |
|   schema->txn_do(sub { schema->deploy() });
 | |
|   exec $0;
 | |
| };
 | |
| 
 | |
| if (not schema->get_db_version()) {
 | |
|   # installs the dbix_class_schema_versions table with version "0"
 | |
|   say 'Installing DBIx::Class versioning to Netdisco::DB schema...';
 | |
|   schema->txn_do(sub { schema->install("1") });
 | |
|   exec $0;
 | |
| }
 | |
| 
 | |
| # upgrades from whatever dbix_class_schema_versions says, to $VERSION
 | |
| say 'Upgrading Netdisco::DB schema...';
 | |
| schema->txn_do(sub { schema->upgrade() });
 |