Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>tags/v15.0.0beta1
@@ -652,6 +652,7 @@ return array( | |||
'OC\\Core\\Migrations\\Version14000Date20180710092004' => $baseDir . '/core/Migrations/Version14000Date20180710092004.php', | |||
'OC\\Core\\Migrations\\Version14000Date20180712153140' => $baseDir . '/core/Migrations/Version14000Date20180712153140.php', | |||
'OC\\Core\\Migrations\\Version15000Date20180926101451' => $baseDir . '/core/Migrations/Version15000Date20180926101451.php', | |||
'OC\\Core\\Migrations\\Version15000Date20180927120000' => $baseDir . '/core/Migrations/Version15000Date20180927120000.php', | |||
'OC\\DB\\Adapter' => $baseDir . '/lib/private/DB/Adapter.php', | |||
'OC\\DB\\AdapterMySQL' => $baseDir . '/lib/private/DB/AdapterMySQL.php', | |||
'OC\\DB\\AdapterOCI8' => $baseDir . '/lib/private/DB/AdapterOCI8.php', | |||
@@ -943,6 +944,7 @@ return array( | |||
'OC\\Repair\\NC13\\RepairInvalidPaths' => $baseDir . '/lib/private/Repair/NC13/RepairInvalidPaths.php', | |||
'OC\\Repair\\NC14\\AddPreviewBackgroundCleanupJob' => $baseDir . '/lib/private/Repair/NC14/AddPreviewBackgroundCleanupJob.php', | |||
'OC\\Repair\\NC14\\RepairPendingCronJobs' => $baseDir . '/lib/private/Repair/NC14/RepairPendingCronJobs.php', | |||
'OC\\Repair\\NC15\\SetVcardDatabaseUID' => $baseDir . '/lib/private/Repair/NC15/SetVcardDatabaseUID.php', | |||
'OC\\Repair\\OldGroupMembershipShares' => $baseDir . '/lib/private/Repair/OldGroupMembershipShares.php', | |||
'OC\\Repair\\Owncloud\\DropAccountTermsTable' => $baseDir . '/lib/private/Repair/Owncloud/DropAccountTermsTable.php', | |||
'OC\\Repair\\Owncloud\\SaveAccountsTableData' => $baseDir . '/lib/private/Repair/Owncloud/SaveAccountsTableData.php', |
@@ -682,6 +682,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c | |||
'OC\\Core\\Migrations\\Version14000Date20180710092004' => __DIR__ . '/../../..' . '/core/Migrations/Version14000Date20180710092004.php', | |||
'OC\\Core\\Migrations\\Version14000Date20180712153140' => __DIR__ . '/../../..' . '/core/Migrations/Version14000Date20180712153140.php', | |||
'OC\\Core\\Migrations\\Version15000Date20180926101451' => __DIR__ . '/../../..' . '/core/Migrations/Version15000Date20180926101451.php', | |||
'OC\\Core\\Migrations\\Version15000Date20180927120000' => __DIR__ . '/../../..' . '/core/Migrations/Version15000Date20180927120000.php', | |||
'OC\\DB\\Adapter' => __DIR__ . '/../../..' . '/lib/private/DB/Adapter.php', | |||
'OC\\DB\\AdapterMySQL' => __DIR__ . '/../../..' . '/lib/private/DB/AdapterMySQL.php', | |||
'OC\\DB\\AdapterOCI8' => __DIR__ . '/../../..' . '/lib/private/DB/AdapterOCI8.php', | |||
@@ -973,6 +974,7 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c | |||
'OC\\Repair\\NC13\\RepairInvalidPaths' => __DIR__ . '/../../..' . '/lib/private/Repair/NC13/RepairInvalidPaths.php', | |||
'OC\\Repair\\NC14\\AddPreviewBackgroundCleanupJob' => __DIR__ . '/../../..' . '/lib/private/Repair/NC14/AddPreviewBackgroundCleanupJob.php', | |||
'OC\\Repair\\NC14\\RepairPendingCronJobs' => __DIR__ . '/../../..' . '/lib/private/Repair/NC14/RepairPendingCronJobs.php', | |||
'OC\\Repair\\NC15\\SetVcardDatabaseUID' => __DIR__ . '/../../..' . '/lib/private/Repair/NC15/SetVcardDatabaseUID.php', | |||
'OC\\Repair\\OldGroupMembershipShares' => __DIR__ . '/../../..' . '/lib/private/Repair/OldGroupMembershipShares.php', | |||
'OC\\Repair\\Owncloud\\DropAccountTermsTable' => __DIR__ . '/../../..' . '/lib/private/Repair/Owncloud/DropAccountTermsTable.php', | |||
'OC\\Repair\\Owncloud\\SaveAccountsTableData' => __DIR__ . '/../../..' . '/lib/private/Repair/Owncloud/SaveAccountsTableData.php', |
@@ -39,6 +39,7 @@ use OC\Repair\NC11\FixMountStorages; | |||
use OC\Repair\NC13\AddLogRotateJob; | |||
use OC\Repair\NC14\AddPreviewBackgroundCleanupJob; | |||
use OC\Repair\NC14\RepairPendingCronJobs; | |||
use OC\Repair\NC15\SetVcardDatabaseUID; | |||
use OC\Repair\OldGroupMembershipShares; | |||
use OC\Repair\Owncloud\DropAccountTermsTable; | |||
use OC\Repair\Owncloud\SaveAccountsTableData; | |||
@@ -139,6 +140,7 @@ class Repair implements IOutput{ | |||
new AddPreviewBackgroundCleanupJob(\OC::$server->getJobList()), | |||
new AddCleanupUpdaterBackupsJob(\OC::$server->getJobList()), | |||
new RepairPendingCronJobs(\OC::$server->getDatabaseConnection(), \OC::$server->getConfig()), | |||
new SetVcardDatabaseUID(\OC::$server->getDatabaseConnection(), \OC::$server->getConfig()), | |||
]; | |||
} | |||
@@ -21,10 +21,8 @@ | |||
* | |||
*/ | |||
namespace OC\Repair\NC13; | |||
namespace OC\Repair\NC15; | |||
use OCP\DB\QueryBuilder\IQueryBuilder; | |||
use OCP\IConfig; | |||
use OCP\IDBConnection; | |||
use OCP\Migration\IOutput; | |||
@@ -35,13 +33,17 @@ class SetVcardDatabaseUID implements IRepairStep { | |||
/** @var IDBConnection */ | |||
private $connection; | |||
/** @var IConfig */ | |||
private $config; | |||
private $updateQuery; | |||
public function __construct(IDBConnection $connection) { | |||
public function __construct(IDBConnection $connection, IConfig $config) { | |||
$this->connection = $connection; | |||
$this->config = $config; | |||
} | |||
public function getName() { | |||
return 'Extract the vcard uid and store it in the db'; | |||
} | |||
@@ -54,13 +56,13 @@ class SetVcardDatabaseUID implements IRepairStep { | |||
$builder = $this->connection->getQueryBuilder(); | |||
$builder->select('id', 'carddata') | |||
->from('cards') | |||
->where($builder->expr()->isNull('uid')) | |||
->setMaxResults(self::MAX_ROWS); | |||
->from('cards') | |||
->where($builder->expr()->isNull('uid')) | |||
->setMaxResults(self::MAX_ROWS); | |||
do { | |||
$result = $builder->execute(); | |||
$rows = $result->fetchAll(); | |||
$rows = $result->fetchAll(); | |||
foreach ($rows as $row) { | |||
yield $row; | |||
} | |||
@@ -70,9 +72,10 @@ class SetVcardDatabaseUID implements IRepairStep { | |||
private function getUid($carddata) { | |||
preg_match('/^UID:(.*)$/m', $carddata, $matches); | |||
if (count($matches > 1)) { | |||
return $matches[1][0]; | |||
if (count($matches) > 1) { | |||
return $matches[1]; | |||
} | |||
return false; | |||
} | |||
@@ -85,8 +88,8 @@ class SetVcardDatabaseUID implements IRepairStep { | |||
$builder = $this->connection->getQueryBuilder(); | |||
$this->updateQuery = $builder->update('cards') | |||
->set('uid', $builder->createParameter('uid')) | |||
->where($builder->expr()->eq('id', $builder->createParameter('id'))); | |||
->set('uid', $builder->createParameter('uid')) | |||
->where($builder->expr()->eq('id', $builder->createParameter('id'))); | |||
} | |||
$this->updateQuery->setParameter('id', $id); | |||
@@ -98,23 +101,24 @@ class SetVcardDatabaseUID implements IRepairStep { | |||
private function repair() { | |||
$this->connection->beginTransaction(); | |||
$entries = $this->getInvalidEntries(); | |||
$count = 0; | |||
$count = 0; | |||
foreach ($entries as $entry) { | |||
$count++; | |||
$uid = $this->getUid($entry['id']); | |||
$uid = $this->getUid($entry['carddata']); | |||
if ($uid !== false) { | |||
$this->update($entry['id'], $uid); | |||
} | |||
} | |||
$this->connection->commit(); | |||
return $count; | |||
} | |||
private function shouldRun() { | |||
$versionFromBeforeUpdate = $this->config->getSystemValue('version', '0.0.0'); | |||
$versionFromBeforeUpdate = $this->config->getSystemValue('version', '0.0.0.0'); | |||
// was added to 15.0.0.0 | |||
return version_compare($versionFromBeforeUpdate, '15.0.0.0', '<='); | |||
// was added to 15.0.0.2 | |||
return version_compare($versionFromBeforeUpdate, '15.0.0.2', '<='); | |||
} | |||
public function run(IOutput $output) { |
@@ -29,7 +29,7 @@ | |||
// between betas, final and RCs. This is _not_ the public version number. Reset minor/patchlevel | |||
// when updating major/minor version number. | |||
$OC_Version = array(15, 0, 0, 1); | |||
$OC_Version = array(15, 0, 0, 2); | |||
// The human readable string | |||
$OC_VersionString = '15.0.0 alpha'; |