silverstripe-webpack/app/src/Tasks/BrokenFilesTask.php

50 lines
1.1 KiB
PHP
Raw Normal View History

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!');
}
}