if (config('app.env') === 'production') {
$schedule->command('job:dispatchNow Maintenance\\\\CheckPublicationsHashAndCid')->dailyAt('3:00');
+ $schedule->command('job:dispatchNow Maintenance\\\\UpdateComposedAttributes')->dailyAt('5:00');
$schedule->command('job:dispatchNow Maintenance\\\\CleanDownloads')->dailyAt('4:00');
$schedule->command('job:dispatchNow Maintenance\\\\CleanFTP')->dailyAt('4:30');
$schedule->command('job:dispatchNow Maintenance\\\\RemoveDuplicates')->monthly();
--- /dev/null
+<?php
+
+namespace App\Jobs\Maintenance;
+
+use App\Models\FluidbookPublication;
+
+class UpdateComposedAttributes
+{
+ public function handle()
+ {
+ /** @var FluidbookPublication[] $publications */
+ $publications = FluidbookPublication::withoutGlobalScopes()->where('version', 3)->where('created_ok', 1)->get();
+ foreach ($publications as $publication) {
+ $publication->setComposedAttributes();
+ $publication->saveQuietly();
+ }
+ }
+}
}
- protected function setComposedAttributes()
+ public function setComposedAttributes()
{
/** @var \App\Models\User $owner */
$owner = \App\Models\User::withoutGlobalScopes()->find($this->owner);