1 package SQL::Translator::Producer;
2 use namespace::autoclean;
4 use MooseX::Types::Moose qw(Bool Str);
5 use SQL::Translator::Types qw(Schema);
13 has 'no_comments' => (
29 my $schema = $self->schema;
31 $self->_create_table($_) for values %{$schema->tables};
39 my $add_drop_table = 1;
40 my $sqlite_version = 0;
43 my (@column_defs, @index_defs, @constraint_defs);
45 $create_table .= 'DROP TABLE ' . $table->name . ";\n" if $add_drop_table;
46 $create_table .= 'CREATE TABLE ' . $table->name . " (\n";
48 push @column_defs, $self->_create_column($_) for values %{$table->columns};
49 $create_table .= join(",\n", map { ' ' . $_ } @column_defs ) . "\n)";
50 print $create_table . "\n";
58 $column_def = $column->name . ' ' . $column->data_type;
59 $column_def .= '(' . $column->size . ')' if $column->size;
60 $column_def .= ' NOT NULL' unless $column->is_nullable;
64 __PACKAGE__->meta->make_immutable;