Skip to content

Commit 2a379a9

Browse files
authored
Merge pull request #240 from misenhower/fix-import-connection
Use Laravel's query builder in the import command
2 parents 7de3cd9 + f4d9e49 commit 2a379a9

File tree

1 file changed

+10
-9
lines changed

1 file changed

+10
-9
lines changed

src/Console/ImportCommand.php

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Illuminate\Console\Command;
66
use Illuminate\Contracts\Events\Dispatcher;
77
use TeamTNT\TNTSearch\TNTSearch;
8+
use Illuminate\Support\Facades\Schema;
89

910
class ImportCommand extends Command
1011
{
@@ -37,27 +38,27 @@ public function handle(Dispatcher $events)
3738
$tnt = new TNTSearch();
3839
$driver = $model->getConnectionName() ?: config('database.default');
3940
$config = config('scout.tntsearch') + config("database.connections.$driver");
40-
$tablePrefix = $config['prefix'] ?? '';
41-
$tableName = $tablePrefix.$model->getTable();
41+
$db = app('db')->connection($driver);
4242

4343
$tnt->loadConfig($config);
44-
$tnt->setDatabaseHandle(app('db')->connection($driver)->getPdo());
44+
$tnt->setDatabaseHandle($db->getPdo());
4545

4646
$indexer = $tnt->createIndex($model->searchableAs().'.index');
4747
$indexer->setPrimaryKey($model->getKeyName());
4848

49-
$availableColumns = \Schema::getColumnListing($model->getTable());
49+
$availableColumns = Schema::connection($driver)->getColumnListing($model->getTable());
5050
$desiredColumns = array_keys($model->toSearchableArray());
5151

52-
$fields = implode(', ', array_intersect($desiredColumns, $availableColumns));
52+
$fields = array_intersect($desiredColumns, $availableColumns);
5353

54-
$query = "{$model->getKeyName()}, $fields";
54+
$query = $db->table($model->getTable());
5555

56-
if ($fields == '') {
57-
$query = '*';
56+
if ($fields) {
57+
$query->select($model->getKeyName())
58+
->addSelect($fields);
5859
}
5960

60-
$indexer->query("SELECT $query FROM {$tableName};");
61+
$indexer->query($query->toSql());
6162

6263
$indexer->run();
6364
$this->info('All ['.$class.'] records have been imported.');

0 commit comments

Comments
 (0)