));
}
-sub preinstall_scripts {
+sub preinstall {
my $self = shift;
my $version = shift || $self->schema_version;
|- down
| `- 2-1
| `- 001-auto.sql
+ |- preinstall
+ | `- 1
+ | |- 001-create_database.pl
+ | `- 002-create_users_and_permissions.pl
|- schema
| `- 1
| `- 001-auto.sql
C<_generic> exists for when you for some reason are sure that your SQL is
generic enough to run on all databases. Good luck with that one.
+Note that unlike most steps in the process, C<preinstall> will not run SQL, as
+there may not even be an database at preinstall time. It will run perl scripts
+just like the other steps in the process, but nothing is passed to them.
+Until people have used this more it will remain freeform, but a recommended use
+of preinstall is to have it prompt for username and password, and then call the
+appropriate C<< CREATE DATABASE >> commands etc.
+
=head1 PERL SCRIPTS
A perl script for this tool is very simple. It merely needs to contain an
# ABSTRACT: Interface for deploy methods
-requires 'preinstall_scripts';
+requires 'preinstall';
requires 'prepare_deploy';
requires 'deploy';
__END__
+=method preinstall
+
+ $dh->preinstall
+
+Run scripts before deploying to the database
+
=method prepare_deploy
$dh->prepare_deploy
catfile(qw( t sql SQLite preinstall 1.0 003-semiautomatic.pl ));
print {$prerun} "sub {use File::Touch; touch(q(foobar));}";
close $prerun;
- $dm->preinstall_scripts('1.0');
+ $dm->preinstall('1.0');
ok -e 'foobar';