Revision 865ea676
Von Sven Schöling vor mehr als 8 Jahren hinzugefügt
SL/DBUpgrade2.pm | ||
---|---|---|
243 | 243 |
$dbh->begin_work; |
244 | 244 |
|
245 | 245 |
# setup dbup_ export vars & run script |
246 |
my $old_dbh = SL::DB->client->dbh; |
|
247 |
SL::DB->client->dbh($dbh); |
|
248 | 246 |
my %dbup_myconfig = map { ($_ => $::form->{$_}) } qw(dbname dbuser dbpasswd dbhost dbport dbconnect); |
249 | 247 |
my $result = eval { |
250 | 248 |
SL::DBUpgrade2::Base::execute_script( |
... | ... | |
257 | 255 |
|
258 | 256 |
my $error = $EVAL_ERROR; |
259 | 257 |
|
260 |
SL::DB->client->dbh($old_dbh); |
|
261 |
|
|
262 | 258 |
$dbh->rollback if 1 != ($result // -1); |
263 | 259 |
|
264 | 260 |
return $error if $self->{return_on_error} && (1 != ($result // -1)); |
Auch abrufbar als: Unified diff
DBUpgrade2: single-dbh
Betrifft das Surrogat-dbh-handling in db-upgrades.
Der alte Code versucht $::form->get_standard_dbh mit dem Upgrade Handle
zu überschreiben, damit Code der im Upgrade läuft das benutzen kann. Das
geht mit dem SL::DB->client handling nicht.
Angenehmer Nebeneffekt ist, dass man jetzt sofort bei Testläufen auf der
Konsole sieht wenn das passiert, weil das Handle nicht funktioniert und
damit abstürzt.