Commit | Line | Data |
9556363f |
1 | #!/usr/bin/perl |
2 | |
3 | use FindBin qw/$Bin/; |
4 | use Test::More; |
5 | use Test::SQL::Translator; |
6 | use Test::Exception; |
7 | use Data::Dumper; |
8 | use SQL::Translator; |
9 | use SQL::Translator::Diff; |
10 | |
11 | BEGIN { |
12 | maybe_plan(2, 'SQL::Translator::Parser::YAML', |
13 | 'SQL::Translator::Producer::Oracle'); |
14 | } |
15 | |
16 | my $schema1 = $Bin.'/data/oracle/schema_diff_a.yaml'; |
17 | my $schema2 = $Bin.'/data/oracle/schema_diff_b.yaml'; |
18 | |
19 | open my $io1, '<', $schema1 or die $!; |
20 | open my $io2, '<', $schema2 or die $!; |
21 | |
22 | my ($yaml1, $yaml2); |
23 | { |
24 | local $/ = undef; |
25 | $yaml1 = <$io1>; |
26 | $yaml2 = <$io2>; |
27 | }; |
28 | |
29 | close $io1; |
30 | close $io2; |
31 | |
32 | my $s = SQL::Translator->new(from => 'YAML'); |
33 | $s->parser->($s,$yaml1); |
34 | |
35 | my $t = SQL::Translator->new(from => 'YAML'); |
36 | $t->parser->($t,$yaml2); |
37 | |
38 | my $d = SQL::Translator::Diff->new |
39 | ({ |
40 | output_db => 'Oracle', |
41 | source_schema => $s->schema, |
42 | target_schema => $t->schema, |
43 | }); |
44 | |
45 | |
46 | my $diff = $d->compute_differences->produce_diff_sql || die $d->error; |
47 | |
48 | ok($diff, 'Diff generated.'); |
49 | like($diff, '/ALTER TABLE d_operator CHANGE COLUMN \( name nvarchar2\(10\) \)/', |
50 | 'Alter table generated.'); |