Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 4c2287d7

Von Moritz Bunkus vor mehr als 18 Jahren hinzugefügt

  • ID 4c2287d7f727f6a43000ed35db7884d51db11a5d
  • Vorgänger c7867be7
  • Nachfolger 8c6efb2a

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]

Unterschiede anzeigen:

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