Merge pull request #6743 from nextcloud/invalid-path-repair-from11-12
[12] dont run invalid path repair step when upgrading from 11.0.5.2 and later
This commit is contained in:
commit
6aa25b9f1e
|
@ -162,10 +162,18 @@ class RepairInvalidPaths implements IRepairStep {
|
|||
return $count;
|
||||
}
|
||||
|
||||
public function run(IOutput $output) {
|
||||
private function shouldRun() {
|
||||
$versionFromBeforeUpdate = $this->config->getSystemValue('version', '0.0.0');
|
||||
// was added to 12.0.0.30 and 13.0.0.1
|
||||
if (version_compare($versionFromBeforeUpdate, '12.0.0.30', '<') || version_compare($versionFromBeforeUpdate, '13.0.0.0', '==')) {
|
||||
|
||||
// was added to 11.0.5.2, 12.0.0.30 and 13.0.0.1
|
||||
$shouldRun = version_compare($versionFromBeforeUpdate, '11.0.5.2', '<');
|
||||
$shouldRun |= version_compare($versionFromBeforeUpdate, '12.0.0.0', '>=') && version_compare($versionFromBeforeUpdate, '12.0.0.30', '<');
|
||||
$shouldRun |= version_compare($versionFromBeforeUpdate, '13.0.0.0', '==');
|
||||
return $shouldRun;
|
||||
}
|
||||
|
||||
public function run(IOutput $output) {
|
||||
if ($this->shouldRun()) {
|
||||
$count = $this->repair();
|
||||
|
||||
$output->info('Repaired ' . $count . ' paths');
|
||||
|
|
|
@ -186,4 +186,34 @@ class RepairInvalidPathsTest extends TestCase {
|
|||
$this->assertEquals($folderId, $this->cache2->get('foo2/bar/asd')['parent']);
|
||||
$this->assertEquals($folderId, $this->cache2->getId('foo2/bar'));
|
||||
}
|
||||
|
||||
public function shouldRunDataProvider() {
|
||||
return [
|
||||
['11.0.0.0', true],
|
||||
['11.0.0.31', true],
|
||||
['11.0.5.2', false],
|
||||
['12.0.0.0', true],
|
||||
['12.0.0.1', true],
|
||||
['12.0.0.31', false],
|
||||
['13.0.0.0', true],
|
||||
['13.0.0.1', false]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider shouldRunDataProvider
|
||||
*
|
||||
* @param string $from
|
||||
* @param boolean $expected
|
||||
*/
|
||||
public function testShouldRun($from, $expected) {
|
||||
$config = $this->createMock(IConfig::class);
|
||||
$config->expects($this->any())
|
||||
->method('getSystemValue')
|
||||
->with('version', '0.0.0')
|
||||
->willReturn($from);
|
||||
$repair = new RepairInvalidPaths(\OC::$server->getDatabaseConnection(), $config);
|
||||
|
||||
$this->assertEquals($expected, $this->invokePrivate($repair, 'shouldRun'));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue