App-dbinfo
view release on metacpan or search on metacpan
lib/App/dbinfo.pm view on Meta::CPAN
sub list_tables {
require DBIx::Util::Schema;
my %args = @_;
my $dbh = _connect(\%args);
return [200, "OK", [
DBIx::Util::Schema::list_tables($dbh)]];
}
$SPEC{list_sqlite_tables} = {
v => 1.1,
summary => 'List tables in the SQLite database',
args => {
%args_common_sqlite,
},
args_rels => {
},
};
sub list_sqlite_tables {
my %args = @_;
my $dsn; $dsn = "dbi:SQLite:dbname=".delete($args{dbpath}) if defined $args{dbpath};
list_tables(
dsn => $dsn,
%args
);
}
$SPEC{list_columns} = {
v => 1.1,
summary => 'List columns of a table',
args => {
%args_common_dbi,
%arg_table,
%arg_detail,
},
args_rels => {
%args_rels_common,
},
examples => [
{
args => {dsn=>'dbi:SQLite:database=/tmp/test.db', table=>'main.table1'},
test => 0,
'x.doc.show_result' => 0,
},
],
};
sub list_columns {
require DBIx::Util::Schema;
my %args = @_;
my $dbh = _connect(\%args);
my $ltres = list_tables(%args);
return [500, "Can't list tables: $ltres->[0] - $ltres->[1]"]
unless $ltres->[0] == 200;
my $tables = $ltres->[2];
#my $tables_wo_schema = [map {my $n=$_; $n=~s/.+\.//; $n} @$tables];
#return [404, "No such table '$args{table}'"]
# unless grep { $args{table} eq $_ } (@$tables, @$tables_wo_schema);
return [404, "No such table '$args{table}'"]
unless grep { $args{table} eq $_ } @$tables;
my @cols = DBIx::Util::Schema::list_columns($dbh, $args{table});
@cols = map { $_->{COLUMN_NAME} } @cols unless $args{detail};
return [200, "OK", \@cols];
}
$SPEC{list_sqlite_columns} = {
v => 1.1,
summary => 'List columns of a SQLite database table',
args => {
%args_common_sqlite,
%arg_table,
%arg_detail,
},
args_rels => {
},
examples => [
{
args => {dbpath=>'/tmp/test.db', table=>'main.table1'},
test => 0,
'x.doc.show_result' => 0,
},
],
};
sub list_sqlite_columns {
my %args = @_;
my $dsn; $dsn = "dbi:SQLite:dbname=".delete($args{dbpath}) if defined $args{dbpath};
list_columns(
dsn => $dsn,
%args
);
}
our %args_dump_table = (
row_format => {
schema => ['str*', in=>['array', 'hash']],
default => 'hash',
cmdline_aliases => {
array => { summary => 'Shortcut for --row-format=array', is_flag=>1, code => sub { $_[0]{row_format} = 'array' } },
a => { summary => 'Shortcut for --row-format=array', is_flag=>1, code => sub { $_[0]{row_format} = 'array' } },
},
},
exclude_columns => {
'x.name.is_plural' => 1,
'x.name.singular' => 'exclude_column',
schema => ['array*', {
of=>'str*',
#'x.perl.coerce_rules'=>['From_str::comma_sep'],
}],
cmdline_aliases => {C=>{}},
},
include_columns => {
'x.name.is_plural' => 1,
'x.name.singular' => 'include_column',
schema => ['array*', {
of=>'str*',
#'x.perl.coerce_rules'=>['From_str::comma_sep'],
}],
cmdline_aliases => {c=>{}},
( run in 1.378 second using v1.01-cache-2.11-cpan-39bf76dae61 )