Commit | Line | Data |
6933f31f |
1 | package MyApp::Schema::JournalStorage; |
2 | use Moose; |
3 | extends 'DBIx::Class::DeploymentHandler::VersionStorage::Standard'; |
4 | |
5 | sub _build_version_rs { |
6 | $_[0]->schema->register_class( |
7 | __VERSION => |
8 | 'FL::Bench::Schema::JournalTable' |
9 | ); |
10 | $_[0]->schema->resultset('__VERSION') |
11 | } |
12 | |
13 | no Moose; |
14 | __PACKAGE__->meta->make_immutable; |
15 | 1; |
16 | |
17 | package MyApp::Schema::JournalTable; |
18 | use parent 'DBIx::Class::DeploymentHandler::VersionStorage::Standard::VersionResult'; |
19 | __PACKAGE__->table('fl_bench_journal_versions'); |
20 | 1; |
21 | |
22 | package MyApp::Schema::Journal; |
23 | use Moose; |
24 | extends 'DBIx::Class::DeploymentHandler::Dad'; |
25 | |
26 | # a single with would be better, but we can't do that |
27 | # see: http://rt.cpan.org/Public/Bug/Display.html?id=46347 |
28 | with 'DBIx::Class::DeploymentHandler::WithApplicatorDumple' => { |
29 | interface_role => 'DBIx::Class::DeploymentHandler::HandlesDeploy', |
30 | class_name => 'DBIx::Class::DeploymentHandler::DeployMethod::SQL::Translator', |
31 | delegate_name => 'deploy_method', |
32 | attributes_to_assume => ['schema'], |
33 | attributes_to_copy => [qw( databases upgrade_directory sql_translator_args )], |
34 | }, |
35 | 'DBIx::Class::DeploymentHandler::WithApplicatorDumple' => { |
36 | interface_role => 'DBIx::Class::DeploymentHandler::HandlesVersioning', |
37 | class_name => 'DBIx::Class::DeploymentHandler::VersionHandler::Monotonic', |
38 | delegate_name => 'version_handler', |
39 | attributes_to_assume => [qw( database_version schema_version to_version )], |
40 | }, |
41 | 'DBIx::Class::DeploymentHandler::WithApplicatorDumple' => { |
42 | interface_role => 'DBIx::Class::DeploymentHandler::HandlesVersionStorage', |
43 | class_name => 'MyApp::Schema::JournalStorage', |
44 | delegate_name => 'version_storage', |
45 | attributes_to_assume => ['schema'], |
46 | }; |
47 | with 'DBIx::Class::DeploymentHandler::WithReasonableDefaults'; |
48 | |
49 | sub prepare_version_storage_install { |
50 | my $self = shift; |
51 | |
52 | $self->prepare_resultsource_install( |
53 | $self->version_storage->version_rs->result_source |
54 | ); |
55 | } |
56 | |
57 | sub install_version_storage { |
58 | my $self = shift; |
59 | |
60 | $self->install_resultsource( |
61 | $self->version_storage->version_rs->result_source |
62 | ); |
63 | } |
64 | |
65 | sub prepare_install { |
66 | $_[0]->prepare_deploy; |
67 | $_[0]->prepare_version_storage_install; |
68 | } |
69 | |
70 | no Moose; |
71 | __PACKAGE__->meta->make_immutable; |
72 | 1; |
73 | |