More doc
[dbsrgits/DBIx-Class-DeploymentHandler.git] / lib / DBIx / Class / DeploymentHandler / VersionStorage / Deprecated.pm
CommitLineData
fe3b6dff 1package DBIx::Class::DeploymentHandler::VersionStorage::Deprecated;
01342998 2use Moose;
3use Method::Signatures::Simple;
4
5has schema => (
6 isa => 'DBIx::Class::Schema',
7 is => 'ro',
8 required => 1,
9);
10
11has version_rs => (
12 isa => 'DBIx::Class::ResultSet',
13 is => 'ro',
fe3b6dff 14 builder => '_build_version_rs',
01342998 15 handles => [qw( database_version version_storage_is_installed )],
16);
17
18with 'DBIx::Class::DeploymentHandler::HandlesVersionStorage';
19
fe3b6dff 20use DBIx::Class::DeploymentHandler::VersionStorage::Deprecated::VersionResult;
01342998 21sub _build_version_rs {
22 $_[0]->schema->register_class(
23 dbix_class_schema_versions =>
24 'DBIx::Class::DeploymentHandler::VersionStorage::Deprecated::VersionResult'
25 );
26 $_[0]->schema->resultset('dbix_class_schema_versions')
27}
28
29sub add_database_version {
30 # deprecated doesn't support ddl or upgrade_ddl
31 $_[0]->version_rs->create({ version => $_[1]->{version} })
32}
33
f344dd91 34sub delete_database_version {
35 $_[0]->version_rs->search({ version => $_[1]->{version}})->delete
36}
37
01342998 38__PACKAGE__->meta->make_immutable;
39
401;
41
e52174e3 42# vim: ts=2 sw=2 expandtab
43
01342998 44__END__
45
3885a58b 46=head1 THIS SUCKS
47
48Here's how to convert from that crufty old Deprecated VersionStorage to a shiny
49new Standard VersionStorage:
50
51 my $s = My::Schema->connect(...);
52 my $dh = DeploymentHandler({
53 schema => $s,
54 });
55
56 $dh->prepare_version_storage_install;
57 $dh->install_version_storage;
58
59 my @versions = $s->{vschema}->resultset('Table')->search(undef, {
60 order_by => 'installed',
61 })->get_column('version')->all;
62
63 $dh->version_storage->add_database_vesion({ version => $_ })
64 for @versions;
65