better error message for blank schema
Arthur Axel 'fREW' Schmidt [Fri, 16 Jul 2010 01:12:46 +0000 (20:12 -0500)]
lib/DBIx/Class/DeploymentHandler/Dad.pm
lib/DBIx/Class/DeploymentHandler/Types.pm

index ad76a7a..86043e8 100644 (file)
@@ -7,6 +7,7 @@ use Method::Signatures::Simple;
 require DBIx::Class::Schema;    # loaded for type constraint
 use Carp::Clan '^DBIx::Class::DeploymentHandler';
 use DBIx::Class::DeploymentHandler::Logger;
+use DBIx::Class::DeploymentHandler::Types;
 use Log::Contextual ':log', -package_logger =>
   DBIx::Class::DeploymentHandler::Logger->new({
     env_prefix => 'DBICDH'
@@ -34,7 +35,7 @@ sub _build_to_version { $_[0]->schema_version }
 
 has schema_version => (
   is         => 'ro',
-  isa        => 'Str',
+  isa        => 'StrSchemaVersion',
   lazy_build => 1,
 );
 
index 67e4780..2cefab6 100644 (file)
@@ -11,8 +11,16 @@ subtype 'DBIx::Class::DeploymentHandler::Databases'
 coerce 'DBIx::Class::DeploymentHandler::Databases'
  => from 'Str'
  => via { [$_] };
-no Moose::Util::TypeConstraints;
 
+subtype 'StrSchemaVersion'
+ => as 'Str'
+ => message {
+  defined $_
+    ? "Schema version (currently '$_') must be a string"
+    : 'Schema version must be defined'
+ };
+
+no Moose::Util::TypeConstraints;
 1;
 
 # vim: ts=2 sw=2 expandtab