switch preinstall to initialize
[dbsrgits/DBIx-Class-DeploymentHandler.git] / lib / DBIx / Class / DeploymentHandler / HandlesDeploy.pm
1 package DBIx::Class::DeploymentHandler::HandlesDeploy;
2 use Moose::Role;
3
4 # ABSTRACT: Interface for deploy methods
5
6 requires 'initialize';
7
8 requires 'prepare_deploy';
9 requires 'deploy';
10
11 requires 'prepare_resultsource_install';
12 requires 'install_resultsource';
13
14 requires 'prepare_upgrade';
15 requires 'upgrade_single_step';
16
17 requires 'prepare_downgrade';
18 requires 'downgrade_single_step';
19
20 1;
21
22 # vim: ts=2 sw=2 expandtab
23
24 __END__
25
26 =method initialize
27
28  $dh->initialize({
29    version      => 1,
30    storage_type => 'SQLite'
31  });
32
33 Run scripts before deploying to the database
34
35 =method prepare_deploy
36
37  $dh->prepare_deploy
38
39 Generate the needed data files to install the schema to the database.
40
41 =method deploy
42
43  $dh->deploy({ version => 1 })
44
45 Deploy the schema to the database.
46
47 =method prepare_resultsource_install
48
49  $dh->prepare_resultsource_install({
50    result_source => $resultset->result_source,
51  })
52
53 Takes a L<DBIx::Class::ResultSource> and generates a single migration file to
54 create the resultsource's table.
55
56 =method install_resultsource
57
58  $dh->install_resultsource({
59    result_source => $resultset->result_source,
60    version       => 1,
61  })
62
63 Takes a L<DBIx::Class::ResultSource> and runs a single migration file to
64 deploy the resultsource's table.
65
66 =method prepare_upgrade
67
68  $dh->prepare_upgrade({
69    from_version => 1,
70    to_version   => 2,
71    version_set  => [1, 2]
72  });
73
74 Takes two versions and a version set.  This basically is supposed to generate
75 the needed C<SQL> to migrate up from the first version to the second version.
76 The version set uniquely identifies the migration.
77
78 =method prepare_downgrade
79
80  $dh->prepare_downgrade({
81    from_version => 1,
82    to_version   => 2,
83    version_set  => [1, 2]
84  });
85
86 Takes two versions and a version set.  This basically is supposed to generate
87 the needed C<SQL> to migrate down from the first version to the second version.
88 The version set uniquely identifies the migration and should match it's
89 respective upgrade version set.
90
91 =method upgrade_single_step
92
93  my ($ddl, $sql) = @{
94    $dh->upgrade_single_step({ version_set => $version_set })
95  ||[]}
96
97 Call a single upgrade migration.  Takes a version set as an argument.
98 Optionally return C<< [ $ddl, $upgrade_sql ] >> where C<$ddl> is the DDL for
99 that version of the schema and C<$upgrade_sql> is the SQL that was run to
100 upgrade the database.
101
102 =method downgrade_single_step
103
104  $dh->downgrade_single_step($version_set);
105
106 Call a single downgrade migration.  Takes a version set as an argument.
107 Optionally return C<< [ $ddl, $upgrade_sql ] >> where C<$ddl> is the DDL for
108 that version of the schema and C<$upgrade_sql> is the SQL that was run to
109 upgrade the database.
110
111 =head1 KNOWN IMPLEMENTATIONS
112
113 =over
114
115 =item *
116
117 L<DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator>
118
119 =item *
120
121 L<DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator::Deprecated>
122
123 =back
124