Skip to content

Commit 0adc6dc

Browse files
author
Andrey Helldar
committed
Small fixes
1 parent dd3575e commit 0adc6dc

File tree

8 files changed

+28
-21
lines changed

8 files changed

+28
-21
lines changed

composer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@
2222
},
2323
"require": {
2424
"php": "^7.2.5|^8.0",
25-
"illuminate/support": "^7.0|^8.0",
26-
"illuminate/database": "^7.0|^8.0"
25+
"andrey-helldar/support": "^2.15",
26+
"illuminate/database": "^7.0|^8.0",
27+
"illuminate/support": "^7.0|^8.0"
2728
},
2829
"require-dev": {
29-
"andrey-helldar/support": "^2.15",
3030
"mockery/mockery": "^1.0",
3131
"orchestra/testbench": "^5.0|^6.0",
3232
"phpunit/phpunit": "^9.0"

src/Builders/BaseBuilder.php

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,21 @@
33
namespace Helldar\MigrateDB\Builders;
44

55
use Helldar\MigrateDB\Contracts\Database\Builder;
6+
use Helldar\Support\Concerns\Makeable;
67
use Illuminate\Database\Schema\Builder as SchemaBuilder;
78
use Illuminate\Support\Facades\Config;
89
use Illuminate\Support\Facades\Schema;
910
use stdClass;
1011

1112
abstract class BaseBuilder implements Builder
1213
{
14+
use Makeable;
15+
1316
protected $connection;
1417

15-
public function connection(string $name): Builder
18+
public function __construct(string $connection)
1619
{
17-
$this->connection = $name;
18-
19-
return $this;
20+
$this->connection = $connection;
2021
}
2122

2223
public function schema(): SchemaBuilder

src/Console/Migrate.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Helldar\MigrateDB\Contracts\Database\Builder as BuilderContract;
66
use Helldar\MigrateDB\Exceptions\InvalidArgumentException;
77
use Helldar\MigrateDB\Facades\BuilderManager;
8+
use Helldar\Support\Facades\Helpers\Arr;
89
use Illuminate\Console\Command;
910
use Illuminate\Support\Collection;
1011
use Illuminate\Support\Facades\DB;
@@ -50,9 +51,11 @@ protected function migrateTable(string $table, string $column): void
5051
->table($table)
5152
->orderBy($column)
5253
->chunk(1000, function (Collection $items) use ($table) {
54+
$items = Arr::toArray($items);
55+
5356
DB::connection($this->target())
5457
->table($table)
55-
->insert($items->toArray());
58+
->insert($items);
5659
});
5760
}
5861

src/Contracts/Database/Builder.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
interface Builder
88
{
9-
public function connection(string $name): self;
9+
public function __construct(string $connection);
1010

1111
/**
1212
* @return \Illuminate\Database\Schema\Builder|\Illuminate\Database\Schema\MySqlBuilder|\Illuminate\Database\Schema\PostgresBuilder

src/Exceptions/InvalidArgumentException.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
final class InvalidArgumentException extends BaseException
88
{
9-
public function __construct(string $key)
9+
public function __construct(string $driver)
1010
{
11-
parent::__construct('The "' . $key . '" option does not exist.');
11+
parent::__construct('The "' . $driver . '" option does not exist.');
1212
}
1313
}

src/Exceptions/UnknownDatabaseDriverException.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
final class UnknownDatabaseDriverException extends BaseException
88
{
9-
public function __construct(string $key)
9+
public function __construct(string $driver)
1010
{
11-
parent::__construct('Unknown database driver: "' . $key . '".');
11+
parent::__construct('Database connection [' . $driver . '] not configured.');
1212
}
1313
}

src/Support/BuilderManager.php

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,20 @@ public function of(string $connection): self
2020

2121
public function resolve(): Builder
2222
{
23-
switch ($this->getType()) {
23+
$type = $this->getType();
24+
$connection = $this->connection;
25+
26+
switch ($type) {
2427
case 'mysql':
25-
return new MySQLBuilder();
28+
return MySQLBuilder::make($connection);
2629

2730
default:
28-
throw new UnknownDatabaseDriverException($this->getType());
31+
throw new UnknownDatabaseDriverException($type);
2932
}
3033
}
3134

32-
protected function getType(): string
35+
protected function getType(): ?string
3336
{
34-
return Config::get("database.connections.{$this->connection}.driver");
37+
return Config::get("database.connections.{$this->connection}.driver", $this->connection);
3538
}
3639
}

tests/Unit/MigrateTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
namespace Tests\Unit;
44

55
use Helldar\MigrateDB\Exceptions\InvalidArgumentException;
6+
use Helldar\MigrateDB\Exceptions\UnknownDatabaseDriverException;
67
use Helldar\Support\Facades\Helpers\Arr;
78
use Illuminate\Support\Facades\DB;
8-
use InvalidArgumentException as BaseInvalidArgumentException;
99
use Tests\TestCase;
1010

1111
final class MigrateTest extends TestCase
@@ -125,15 +125,15 @@ public function testToFailed()
125125

126126
public function testFailedFromConnectionName()
127127
{
128-
$this->expectException(BaseInvalidArgumentException::class);
128+
$this->expectException(UnknownDatabaseDriverException::class);
129129
$this->expectExceptionMessage('Database connection [qwerty] not configured.');
130130

131131
$this->artisan('db:migrate', ['--schema-from' => 'qwerty', '--schema-to' => $this->target])->run();
132132
}
133133

134134
public function testFailedToConnectionName()
135135
{
136-
$this->expectException(BaseInvalidArgumentException::class);
136+
$this->expectException(UnknownDatabaseDriverException::class);
137137
$this->expectExceptionMessage('Database connection [qwerty] not configured.');
138138

139139
$this->artisan('db:migrate', ['--schema-from' => $this->source, '--schema-to' => 'qwerty'])->run();

0 commit comments

Comments
 (0)