5 use Test::SQL::Translator qw(maybe_plan);
12 'SQL::Translator::Parser::SQLite',
13 'SQL::Translator::Producer::JSON',
17 my $sqlt_version = $SQL::Translator::VERSION;
18 use JSON::MaybeXS 'from_json';
19 my $json = from_json(<<JSON);
37 "reference_fields" : [],
38 "reference_table" : "",
39 "type" : "PRIMARY KEY"
52 "reference_fields" : [],
53 "reference_table" : "",
59 "data_type" : "integer",
60 "default_value" : null,
72 "default_value" : null,
76 "name" : "description",
83 "data_type" : "tinyint",
84 "default_value" : "0",
95 "data_type" : "varchar",
96 "default_value" : null,
111 "data_type" : "INTEGER",
112 "default_value" : null,
113 "is_auto_increment" : 1,
115 "is_primary_key" : 1,
117 "name" : "person_id",
124 "data_type" : "double",
125 "default_value" : null,
127 "is_primary_key" : 0,
153 "reference_fields" : [],
154 "reference_table" : "",
169 "reference_fields" : [],
170 "reference_table" : "",
171 "type" : "PRIMARY KEY"
184 "reference_fields" : [
187 "reference_table" : "person",
188 "type" : "FOREIGN KEY"
194 "default_value" : null,
196 "is_primary_key" : 0,
205 "data_type" : "varchar",
206 "default_value" : null,
208 "is_primary_key" : 0,
218 "default_value" : null,
220 "is_primary_key" : 1,
222 "name" : "person_id",
230 "default_value" : null,
232 "is_primary_key" : 1,
252 "update pet set name=name"
256 "database_events" : [
263 "perform_action_when" : "after",
270 "name" : "person_pet",
272 "sql" : "select pr.person_id, pr.name as person_name, pt.name as pet_name\\n from person pr, pet pt\\n where person.person_id=pet.pet_id\\n"
277 "add_drop_table" : 0,
281 "parser_type" : "SQL::Translator::Parser::SQLite",
286 "producer_type" : "SQL::Translator::Producer::JSON",
289 "version" : "$sqlt_version"
294 my $file = "$Bin/data/sqlite/create.sql";
295 open my $fh, '<', $file or die "Can't read '$file': $!\n";
298 my $tr = SQL::Translator->new(
309 lives_ok { $out = from_json($tr->translate) } 'Translate SQLite to JSON';
310 is_deeply( $out, $json, 'JSON matches expected' );