2019-11-07 19:26:33 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
|
|
namespace Site\Tasks;
|
|
|
|
|
|
|
|
use SilverStripe\Assets\File;
|
|
|
|
use SilverStripe\Dev\BuildTask;
|
2021-01-13 20:03:21 +01:00
|
|
|
use SilverStripe\ORM\DB;
|
2019-11-07 19:26:33 +01:00
|
|
|
|
|
|
|
class BrokenFilesTask extends BuildTask
|
|
|
|
{
|
2021-01-13 20:03:21 +01:00
|
|
|
protected $title = 'Fix Broken Task';
|
2019-11-07 19:26:33 +01:00
|
|
|
|
2021-01-13 20:03:21 +01:00
|
|
|
protected $description = 'Fix missing PRIMARY keys and Broken files';
|
2019-11-07 19:26:33 +01:00
|
|
|
|
|
|
|
protected $enabled = true;
|
|
|
|
|
|
|
|
public function run($request)
|
|
|
|
{
|
2021-01-13 20:03:21 +01:00
|
|
|
$q = DB::query('show tables');
|
|
|
|
$tables = array_keys($q->map());
|
|
|
|
|
|
|
|
foreach ($tables as $t) {
|
|
|
|
try {
|
|
|
|
DB::query('ALTER TABLE `'.$t.'` ADD PRIMARY KEY (`ID`)');
|
|
|
|
}catch (\Exception $e) {}
|
|
|
|
}
|
|
|
|
|
2019-11-07 19:26:33 +01:00
|
|
|
$files = File::get();
|
|
|
|
$i = 0;
|
|
|
|
foreach ($files as $file) {
|
|
|
|
if (!$file->exists()) {
|
|
|
|
echo '<b style="color:red">File name was not found at SS DB: '
|
|
|
|
.$file->getField('Name').'</b><br/>'
|
|
|
|
.PHP_EOL;
|
|
|
|
|
|
|
|
$i++;
|
|
|
|
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
echo ($i > 0) ?
|
|
|
|
'<h2 style="color:red">Missing '.$i.' files</h2>'
|
|
|
|
: '<h2 style="color:green">All files are ok!</h2>';
|
|
|
|
|
|
|
|
die('Done!');
|
|
|
|
}
|
|
|
|
}
|