Rose-Models erzeugen: Auth-Objekt erst resetten, wenn Auth-Schema angelegt
authorMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 17 Oct 2017 11:22:06 +0000 (13:22 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 17 Oct 2017 11:28:08 +0000 (13:28 +0200)
Wenn `--test-client` benutzt wird und die Datenbank bereits existiert,
so wird sie zuerst gedropt und anschließend neu angelegt. Wenn direkt
nach dem Droppen `$::auth->reset` aufgerufen wird, so versucht
`$::auth` aber, die Tabellen- und Spalteninformationen für die
Datenbank auszulesen, was mit einem gerade geschlossenen DB-Handle
versucht wird.

Also die Struktur später neu einlesen.

scripts/rose_auto_create_model.pl

index dc3d017..111b0c7 100755 (executable)
@@ -430,8 +430,6 @@ sub drop_and_create_test_database {
     $auth_dbh->disconnect;
 
     dbh_do($dbh_template, "DROP DATABASE \"" . $db_cfg->{db} . "\"", message => "Database could not be dropped");
-
-    $::auth->reset;
   }
 
   notice("Creating database");
@@ -466,6 +464,8 @@ sub drop_and_create_test_database {
 
   apply_upgrades(auth => 1, dbh => $dbh);
 
+  $::auth->reset;
+
   notice("Creating client, user, group and employee");
 
   dbh_do($dbh, qq|DELETE FROM auth.clients|);