Revision 4c2287d7
Von Moritz Bunkus vor mehr als 18 Jahren hinzugefügt
SL/User.pm | ||
---|---|---|
162 | 162 |
|
163 | 163 |
$rc = 0; |
164 | 164 |
|
165 |
if (&update_available($dbversion)) { |
|
165 |
if (&update_available($myconfig{"dbdriver"}, $dbversion)) {
|
|
166 | 166 |
|
167 | 167 |
# update the tables |
168 | 168 |
open FH, ">$userspath/nologin" or die " |
... | ... | |
407 | 407 |
while (<FH>) { |
408 | 408 |
|
409 | 409 |
# Remove DOS and Unix style line endings. |
410 |
s/[\r\n]//g;
|
|
410 |
chomp;
|
|
411 | 411 |
|
412 |
# don't add comments or empty lines
|
|
413 |
next if /^(--.*|\s+)$/;
|
|
412 |
# remove comments
|
|
413 |
s/--.*$//;
|
|
414 | 414 |
|
415 | 415 |
for (my $i = 0; $i < length($_); $i++) { |
416 | 416 |
my $char = substr($_, $i, 1); |
... | ... | |
655 | 655 |
## /LINET |
656 | 656 |
|
657 | 657 |
sub update_available { |
658 |
($cur_version) = @_; |
|
659 |
opendir SQLDIR, "sql/." or &error("", "$!"); |
|
660 |
my @upgradescripts = |
|
661 |
grep(/$form->{dbdriver}-upgrade-$cur_version.*\.sql/, readdir(SQLDIR)); |
|
662 |
closedir SQLDIR; |
|
663 |
|
|
664 |
return ($#upgradescripts > -1); |
|
658 |
my ($dbdriver, $cur_version) = @_; |
|
659 |
|
|
660 |
opendir SQLDIR, "sql/${dbdriver}-upgrade" or &error("", "sql/${dbdriver}-upgrade: $!"); |
|
661 |
my @upgradescripts = |
|
662 |
grep(/$form->{dbdriver}-upgrade-\Q$cur_version\E.*\.sql/, readdir(SQLDIR)); |
|
663 |
closedir SQLDIR; |
|
664 |
|
|
665 |
return ($#upgradescripts > -1); |
|
665 | 666 |
} |
666 | 667 |
|
667 | 668 |
sub dbupdate { |
... | ... | |
678 | 679 |
if ($form->{dbupdate}) { |
679 | 680 |
|
680 | 681 |
# read update scripts into memory |
681 |
opendir SQLDIR, "sql/." or &error("", "$!");
|
|
682 |
opendir SQLDIR, "sql/" . $form->{dbdriver} . "-upgrade" or &error("", "sql/" . $form->{dbdriver} . "-upgrade : $!");
|
|
682 | 683 |
## LINET |
683 | 684 |
@upgradescripts = |
684 | 685 |
sort(cmp_script_version |
... | ... | |
732 | 733 |
last if ($version < $mindb); |
733 | 734 |
|
734 | 735 |
# apply upgrade |
735 |
$self->process_query($form, $dbh, "sql/$upgradescript", $str_maxdb); |
|
736 |
$self->process_query($form, $dbh, "sql/" . $form->{"dbdriver"} . "-upgrade/$upgradescript", $str_maxdb);
|
|
736 | 737 |
|
737 | 738 |
$version = $maxdb; |
738 | 739 |
|
Auch abrufbar als: Unified diff
Alle Datenbankupgradescripte in ein eigenes Verzeichnis verschoben. SQL Update jetzt Regex escaped. " --" am Anfang einer Zeile laesst das Datenbankupgrade crashen. [Merge der Revisionen 818 964 980 aus dem LINET prog Repo]