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 { |
d888d445 |
12 | maybe_plan(3, 'SQL::Translator::Parser::YAML', |
9556363f |
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', |
7ac8031f |
41 | target_db => 'Oracle', |
9556363f |
42 | source_schema => $s->schema, |
43 | target_schema => $t->schema, |
44 | }); |
45 | |
46 | |
47 | my $diff = $d->compute_differences->produce_diff_sql || die $d->error; |
48 | |
49 | ok($diff, 'Diff generated.'); |
d888d445 |
50 | like($diff, '/ALTER TABLE d_operator MODIFY \( name nvarchar2\(10\) \)/', |
51 | 'Alter table generated.'); |
52 | like($diff, '/ALTER TABLE d_operator MODIFY \( other nvarchar2\(10\) NOT NULL \)/', |
9556363f |
53 | 'Alter table generated.'); |