@@ -, +, @@ --- C4/Installer.pm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) --- a/C4/Installer.pm +++ a/C4/Installer.pm @@ -480,6 +480,28 @@ sub process_yml_table { return { query => $query, placeholders => $placeholders, values => \@values }; } +sub yml2sql { + my ( $class, $filepath ) = @_; + my $dbh = C4::Context->dbh; + my $yaml = LoadFile( $filepath ); + my @queries; + for my $table ( @{ $yaml->{'tables'} } ) { + my $query_info = process_yml_table($table); + my $query = $query_info->{query}; + my $values = $query_info->{values}; + push @queries, $query . "\n" . join( + ",\n", + map { + '(' . join( ', ', map { $dbh->quote($_) } @$_ ) . ')' + } @$values + ); + } + for my $statement ( @{ $yaml->{'sql_statements'} } ) { + push @queries, $statement; + } + return join ";\n", @queries; +} + sub load_sql { my $self = shift; my $filename = shift; --