1 package DBIx::Class::DeploymentHandler::VersionStorage::Deprecated;
3 use Method::Signatures::Simple;
6 isa => 'DBIx::Class::Schema',
12 isa => 'DBIx::Class::ResultSet',
14 builder => '_build_version_rs',
15 handles => [qw( database_version version_storage_is_installed )],
18 with 'DBIx::Class::DeploymentHandler::HandlesVersionStorage';
20 use DBIx::Class::DeploymentHandler::VersionStorage::Deprecated::VersionResult;
21 sub _build_version_rs {
22 $_[0]->schema->register_class(
23 dbix_class_schema_versions =>
24 'DBIx::Class::DeploymentHandler::VersionStorage::Deprecated::VersionResult'
26 $_[0]->schema->resultset('dbix_class_schema_versions')
29 sub add_database_version {
30 # deprecated doesn't support ddl or upgrade_ddl
31 $_[0]->version_rs->create({ version => $_[1]->{version} })
34 sub delete_database_version {
35 $_[0]->version_rs->search({ version => $_[1]->{version}})->delete
38 __PACKAGE__->meta->make_immutable;
46 Here's how to convert from that crufty old Deprecated VersionStorage to a shiny
47 new Standard VersionStorage:
49 my $s = My::Schema->connect(...);
50 my $dh = DeploymentHandler({
54 $dh->prepare_version_storage_install;
55 $dh->install_version_storage;
57 my @versions = $s->{vschema}->resultset('Table')->search(undef, {
58 order_by => 'installed',
59 })->get_column('version')->all;
61 $dh->version_storage->add_database_vesion({ version => $_ })
64 vim: ts=2 sw=2 expandtab