mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-09-30 13:19:11 +02:00
Merge pull request #6487 from robbieaverill/bugfix/remapping-versioned-classnames
FIX Remap versioned ClassNames during build process
This commit is contained in:
commit
1049b710fe
@ -9,6 +9,7 @@ use SilverStripe\Core\Manifest\ClassLoader;
|
|||||||
use SilverStripe\Dev\SapphireTest;
|
use SilverStripe\Dev\SapphireTest;
|
||||||
use SilverStripe\Dev\TestOnly;
|
use SilverStripe\Dev\TestOnly;
|
||||||
use SilverStripe\Dev\Deprecation;
|
use SilverStripe\Dev\Deprecation;
|
||||||
|
use SilverStripe\ORM\Versioning\Versioned;
|
||||||
use SilverStripe\Security\Security;
|
use SilverStripe\Security\Security;
|
||||||
use SilverStripe\Security\Permission;
|
use SilverStripe\Security\Permission;
|
||||||
|
|
||||||
@ -325,10 +326,22 @@ class DatabaseAdmin extends Controller
|
|||||||
echo "<li>Correcting $badRecordCount obsolete classname values for $newClassName</li>\n";
|
echo "<li>Correcting $badRecordCount obsolete classname values for $newClassName</li>\n";
|
||||||
}
|
}
|
||||||
$table = $schema->baseDataTable($baseDataClass);
|
$table = $schema->baseDataTable($baseDataClass);
|
||||||
DB::prepared_query(
|
|
||||||
"UPDATE \"$table\" SET \"ClassName\" = ? WHERE \"ClassName\" = ?",
|
$updateQuery = "UPDATE \"$table%s\" SET \"ClassName\" = ? WHERE \"ClassName\" = ?";
|
||||||
[ $newClassName, $oldClassName ]
|
$updateQueries = [sprintf($updateQuery, '')];
|
||||||
);
|
|
||||||
|
// Remap versioned table ClassName values as well
|
||||||
|
$class = singleton($newClassName);
|
||||||
|
if ($class->has_extension(Versioned::class)) {
|
||||||
|
if ($class->hasStages()) {
|
||||||
|
$updateQueries[] = sprintf($updateQuery, '_Live');
|
||||||
|
}
|
||||||
|
$updateQueries[] = sprintf($updateQuery, '_Versions');
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($updateQueries as $query) {
|
||||||
|
DB::prepared_query($query, [$newClassName, $oldClassName]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user