Skip to content

Commit

Permalink
Add command to create indexes
Browse files Browse the repository at this point in the history
  • Loading branch information
ttoino committed Oct 17, 2023
1 parent 63ed17c commit bca80de
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 0 deletions.
46 changes: 46 additions & 0 deletions app/Console/Commands/CreateScoutIndexes.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use Illuminate\Support\Facades\File;

class CreateScoutIndexes extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'app:create-scout-indexes';

/**
* The console command description.
*
* @var string
*/
protected $description = 'Creates the scout indexes for the application';

/**
* Execute the console command.
*/
public function handle()
{
$this->call('scout:delete-all-indexes');

collect(File::allFiles(app_path('Models')))
->map(fn ($item) => 'App\\Models\\'.$item->getBasename('.php'))
->filter(fn ($item) => in_array(\Laravel\Scout\Searchable::class, class_uses($item)))
->each(function ($item) {
$this->call('scout:index', [
'name' => (new $item())->searchableAs(),
]);

$this->call('scout:import', [
'model' => $item,
]);
});

$this->call('scout:sync-index-settings');
}
}
3 changes: 3 additions & 0 deletions create_scout_indexes.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/bash

./sail artisan app:create-scout-indexes

0 comments on commit bca80de

Please sign in to comment.