Das Script prüft nun immer (sowohl im Modus mit "--all" als auch bei
explizit angegebenen Tabellennamen), ob es für eine Tabelle einen
Eintrag in %SL::DB::Helper::Mappings::kivitendo_package_names gibt und
nutzt diese. Die Syntax "table=package" wird nicht mehr unterstützt.
use Digest::MD5 qw(md5_hex);
use English qw( -no_match_vars );
use Getopt::Long;
use Digest::MD5 qw(md5_hex);
use English qw( -no_match_vars );
use Getopt::Long;
-use List::MoreUtils qw(any);
+use List::MoreUtils qw(none);
use Pod::Usage;
use Term::ANSIColor;
use Pod::Usage;
use Term::ANSIColor;
- my @spec = split(/=/, shift, 2);
my $table = $spec[0];
my $schema = '';
($schema, $table) = split(m/\./, $table) if $table =~ m/\./;
my $table = $spec[0];
my $schema = '';
($schema, $table) = split(m/\./, $table) if $table =~ m/\./;
my @tables;
if ($config{all}) {
my $db = SL::DB::create(undef, 'KIVITENDO');
my @tables;
if ($config{all}) {
my $db = SL::DB::create(undef, 'KIVITENDO');
- @tables =
- map { $package_names{KIVITENDO}->{$_} ? "$_=" . $package_names{KIVITENDO}->{$_} : $_ }
- grep { my $table = $_; !any { $_ eq $table } @{ $blacklist{KIVITENDO} } }
- $db->list_tables;
+ @tables = grep { my $table = $_; none { $_ eq $table } @{ $blacklist{KIVITENDO} } } $db->list_tables;
+
} elsif (@ARGV) {
@tables = @ARGV;
} else {
} elsif (@ARGV) {
@tables = @ARGV;
} else {
setup();
my @tables = make_tables();
setup();
my @tables = make_tables();
-for my $table (@tables) {
- # add default model name unless model name is given or no defaults exists
- $table .= '=' . $package_names{KIVITENDO}->{lc $table} if $table !~ /=/ && $package_names{KIVITENDO}->{lc $table};
-
- process_table($table);
+my @unknown_tables = grep { !$package_names{KIVITENDO}->{$_} } @tables;
+if (@unknown_tables) {
+ error("The following tables do not have entries in \%SL::DB::Helper::Mappings::kivitendo_package_names: " . join(' ', sort @unknown_tables));
+ exit 1;
+process_table($_, $package_names{KIVITENDO}->{$_}) for @tables;
+
- scripts/rose_create_model.pl --client name-or-id table1[=package1] [table2[=package2] ...]
+ scripts/rose_create_model.pl --client name-or-id table1 [table2 ...]
scripts/rose_create_model.pl --client name-or-id [--all|-a]
# updates all models
scripts/rose_create_model.pl --client name-or-id [--all|-a]
# updates all models
load the schema information for this table and create the appropriate class
files, or update them if already present.
load the schema information for this table and create the appropriate class
files, or update them if already present.
-Each table has two associated files. A C<SL::DB::MetaSetup::*> class, which is
-a perl version of the schema definition, and a C<SL::DB::*> class file. The
-first one will be updated if the schema changes, the second one will only be
-created if it does not exist.
+Each table has three associated files. A C<SL::DB::MetaSetup::*>
+class, which is a perl version of the schema definition, a
+C<SL::DB::*> class file and a C<SL::DB::Manager::*> manager class
+file. The first one will be updated if the schema changes, the second
+and third ones will only be created if it they do not exist.
+Moritz Bunkus E<lt>m.bunkus@linet-services.deE<gt>,
Sven Schöling E<lt>s.schoeling@linet-services.deE<gt>
=cut
Sven Schöling E<lt>s.schoeling@linet-services.deE<gt>
=cut