aboutsummaryrefslogtreecommitdiffstats
path: root/db/rerun_dbic_loader.pl
blob: 9ee0296686fb8920a2ef0a2e1e32d13398992286 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env perl

use strict;
use warnings;

BEGIN {
    use File::Basename qw(dirname);
    use File::Spec;
    my $d = dirname(File::Spec->rel2abs($0));
    require "$d/../setenv.pl";
}

# This script inspects the current state of the database and then amends the
# FixMyStreet::DB::Result::* files to suit. After running the changes should be
# inspected before the code is commited.

use FixMyStreet;
use DBIx::Class::Schema::Loader qw/ make_schema_at /;

# create a exclude statement that filters out the table that we are not
# interested in
my @tables_to_ignore = (
    'flickr_imported',     #
    'partial_user',        #
    'textmystreet',        #
);
my $exclude = '^(?:' . join( '|', @tables_to_ignore ) . ')$';

make_schema_at(
    # Something funny here if you use FixMyStreet::DB::Schema, where it should be,
    # as it tries to dump it twice and dies on reload; with this, it works, but
    # then the changes to DB.pm need removing
    'FixMyStreet::DB',
    {
        debug          => 0,               # switch on to be chatty
        dump_directory => './perllib',     # edit files in place
        exclude        => qr{$exclude},    # ignore some tables
        generate_pod   => 0,               # no need for pod
        overwrite_modifications => 1,      # don't worry that the md5 is wrong
        result_namespace => '+FixMyStreet::DB::Result',
        resultset_namespace => '+FixMyStreet::DB::ResultSet',

        # add in some extra components
        components => [ 'FilterColumn', 'FixMyStreet::InflateColumn::DateTime', 'FixMyStreet::EncodedColumn' ],

    },
    [ FixMyStreet->dbic_connect_info ],
);