GetOptions(
     'client=s'          => \ my $client,
     all                 => \ my $all,
+    'db=s'              => \ my $db,
     'no-commit|dry-run' => \ my $nocommit,
     help                => sub { pod2usage(verbose => 99, sections => 'NAME|SYNOPSIS|OPTIONS') },
     quiet               => \ my $quiet,
 
   $options->{client}   = $client;
   $options->{all}      = $all;
+  $options->{db}       = $db;
   $options->{nocommit} = $nocommit;
   $options->{quiet}    = $quiet;
   $options->{color}    = -t STDOUT ? 1 : 0;
 sub make_tables {
   my %tables_by_domain;
   if ($config{all}) {
-    foreach my $domain (sort keys %package_names) {
+    my @domains = $config{db} ? (uc $config{db}) : sort keys %package_names;
+
+    foreach my $domain (@domains) {
       my $db  = SL::DB::create(undef, $domain);
       $tables_by_domain{$domain} = [ grep { my $table = $_; none { $_ eq $table } @{ $blacklist{$domain} } } $db->list_tables ];
       $db->disconnect;
   scripts/rose_auto_create_model.pl --client name-or-id [--all|-a]
 
   # updates all models
-  scripts/rose_auto_create_model.pl --client name-or-id --all
+  scripts/rose_auto_create_model.pl --client name-or-id --all [--db db]
 
   # updates only customer table, login taken from config
   scripts/rose_auto_create_model.pl customer
 Process all tables from the database. Only those that are blacklistes in
 L<SL::DB::Helper::Mappings> are excluded.
 
+=item C<--db db>
+
+In combination with C<--all> causes all tables in the specific
+database to be processed, not in all databases.
+
 =item C<--no-commit, -n>
 
 =item C<--dry-run>