Automatische Datenbankupgrades. Einfach upgrade Datei ins sql/ Verzeichnis legen...
authorMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 17 Feb 2006 08:50:07 +0000 (08:50 +0000)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Fri, 17 Feb 2006 08:50:07 +0000 (08:50 +0000)
SL/Form.pm
SL/User.pm

index 90f4120..3c0e2e6 100644 (file)
@@ -143,7 +143,6 @@ sub new {
   $self->{action} =~ s/( |-|,|#)/_/g;
 
   $self->{version}   = "2.2.0";
-  $self->{dbversion} = "2.2.0";
 
   $main::lxdebug->leave_sub();
 
index f989e86..fbc0223 100644 (file)
@@ -162,7 +162,7 @@ sub login {
 
     $rc = 0;
 
-    if ($form->{dbversion} ne $dbversion) {
+    if (&update_available($dbversion)) {
 
       # update the tables
       open FH, ">$userspath/nologin" or die "
@@ -652,6 +652,16 @@ sub cmp_script_version {
 }
 ## /LINET
 
+sub update_available {
+  ($cur_version) = @_;
+    opendir SQLDIR, "sql/." or &error("", "$!");
+    my @upgradescripts = 
+      grep(/$form->{dbdriver}-upgrade-$cur_version.*\.sql/, readdir(SQLDIR));
+    closedir SQLDIR;
+    
+    return ($#upgradescripts > -1);
+}
+
 sub dbupdate {
   $main::lxdebug->enter_sub();