mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-15 22:13:13 +00:00
Fix doctrine transaction in lazaret patch
This commit is contained in:
@@ -81,71 +81,71 @@ class patch_370a7 implements patchInterface
|
|||||||
$this->truncateTable($app['EM'], 'Entities\\LazaretFile');
|
$this->truncateTable($app['EM'], 'Entities\\LazaretFile');
|
||||||
$this->truncateTable($app['EM'], 'Entities\\LazaretSession');
|
$this->truncateTable($app['EM'], 'Entities\\LazaretSession');
|
||||||
|
|
||||||
// suspend auto-commit
|
$i = 0;
|
||||||
$app['EM']->getConnection()->beginTransaction();
|
|
||||||
|
|
||||||
try {
|
foreach ($rs as $row) {
|
||||||
foreach ($rs as $row) {
|
|
||||||
|
|
||||||
$filePath = $app['root.path'] . '/tmp/lazaret/' . $row['filepath'];
|
$filePath = $app['root.path'] . '/tmp/lazaret/' . $row['filepath'];
|
||||||
|
|
||||||
if (file_exists($filePath)) {
|
if (file_exists($filePath)) {
|
||||||
|
|
||||||
$spec = new ImageSpec();
|
$spec = new ImageSpec();
|
||||||
|
|
||||||
$spec->setResizeMode(ImageSpec::RESIZE_MODE_INBOUND_FIXEDRATIO);
|
$spec->setResizeMode(ImageSpec::RESIZE_MODE_INBOUND_FIXEDRATIO);
|
||||||
$spec->setDimensions(375, 275);
|
$spec->setDimensions(375, 275);
|
||||||
|
|
||||||
$thumbPath = $app['root.path'] . '/tmp/lazaret/' . sprintf("thumb_%s", $row['filepath']);
|
$thumbPath = $app['root.path'] . '/tmp/lazaret/' . sprintf("thumb_%s", $row['filepath']);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$app['media-alchemyst']->turnInto($filePath, $thumbPath, $spec);
|
$app['media-alchemyst']->turnInto($filePath, $thumbPath, $spec);
|
||||||
} catch (MediaAlchemystException $e) {
|
} catch (MediaAlchemystException $e) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$media = $app['mediavorus']->guess($filePath);
|
$media = $app['mediavorus']->guess($filePath);
|
||||||
|
|
||||||
$collection = \collection::get_from_base_id($app, $row['base_id']);
|
$collection = \collection::get_from_base_id($app, $row['base_id']);
|
||||||
|
|
||||||
$borderFile = new \Alchemy\Phrasea\Border\File($app, $media, $collection);
|
$borderFile = new \Alchemy\Phrasea\Border\File($app, $media, $collection);
|
||||||
|
|
||||||
$lazaretSession = new \Entities\LazaretSession();
|
$lazaretSession = new \Entities\LazaretSession();
|
||||||
$lazaretSession->setUsrId($row['usr_id']);
|
$lazaretSession->setUsrId($row['usr_id']);
|
||||||
|
|
||||||
$lazaretFile = new \Entities\LazaretFile();
|
$lazaretFile = new \Entities\LazaretFile();
|
||||||
$lazaretFile->setBaseId($row['base_id']);
|
$lazaretFile->setBaseId($row['base_id']);
|
||||||
|
|
||||||
if (null === $row['uuid']) {
|
if (null === $row['uuid']) {
|
||||||
$uuid = $borderFile->getUUID(true);
|
$uuid = $borderFile->getUUID(true);
|
||||||
$lazaretFile->setUuid($uuid);
|
$lazaretFile->setUuid($uuid);
|
||||||
} else {
|
} else {
|
||||||
$lazaretFile->setUuid($row['uuid']);
|
$lazaretFile->setUuid($row['uuid']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (null === $row['sha256']) {
|
if (null === $row['sha256']) {
|
||||||
$sha256 = $media->getHash('sha256');
|
$sha256 = $media->getHash('sha256');
|
||||||
$lazaretFile->setSha256($sha256);
|
$lazaretFile->setSha256($sha256);
|
||||||
} else {
|
} else {
|
||||||
$lazaretFile->setSha256($row['sha256']);
|
$lazaretFile->setSha256($row['sha256']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$lazaretFile->setOriginalName($row['filename']);
|
$lazaretFile->setOriginalName($row['filename']);
|
||||||
$lazaretFile->setFilename($row['filepath']);
|
$lazaretFile->setFilename($row['filepath']);
|
||||||
$lazaretFile->setThumbFilename(pathinfo($thumbPath), PATHINFO_BASENAME);
|
$lazaretFile->setThumbFilename(pathinfo($thumbPath), PATHINFO_BASENAME);
|
||||||
$lazaretFile->setCreated(new \DateTime($row['created_on']));
|
$lazaretFile->setCreated(new \DateTime($row['created_on']));
|
||||||
$lazaretFile->setSession($lazaretSession);
|
$lazaretFile->setSession($lazaretSession);
|
||||||
|
|
||||||
$app['EM']->persist($lazaretFile);
|
$app['EM']->persist($lazaretFile);
|
||||||
|
|
||||||
|
if (0 === ++$i % 100) {
|
||||||
|
$app['EM']->flush();
|
||||||
|
$app['EM']->clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$app['EM']->flush();
|
|
||||||
} catch (\Exception $e) {
|
|
||||||
$app['EM']->getConnection()->rollback();
|
|
||||||
$app['EM']->close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$app['EM']->flush();
|
||||||
|
$app['EM']->clear();
|
||||||
|
|
||||||
$stmt->closeCursor();
|
$stmt->closeCursor();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
Reference in New Issue
Block a user