Skip to content

Commit b90081d

Browse files
committed
Use anonymous migrations
1 parent 1ba115a commit b90081d

8 files changed

+62
-61
lines changed

database/migrations/audits.stub

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,12 @@ use Illuminate\Database\Migrations\Migration;
44
use Illuminate\Database\Schema\Blueprint;
55
use Illuminate\Support\Facades\Schema;
66

7-
class CreateAuditsTable extends Migration
7+
return new class extends Migration
88
{
99
/**
1010
* Run the migrations.
11-
*
12-
* @return void
1311
*/
14-
public function up()
12+
public function up(): void
1513
{
1614
$connection = config('audit.drivers.database.connection', config('database.default'));
1715
$table = config('audit.drivers.database.table', 'audits');
@@ -39,14 +37,12 @@ class CreateAuditsTable extends Migration
3937

4038
/**
4139
* Reverse the migrations.
42-
*
43-
* @return void
4440
*/
45-
public function down()
41+
public function down(): void
4642
{
4743
$connection = config('audit.drivers.database.connection', config('database.default'));
4844
$table = config('audit.drivers.database.table', 'audits');
4945

5046
Schema::connection($connection)->drop($table);
5147
}
52-
}
48+
};

src/AuditingServiceProvider.php

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
namespace OwenIt\Auditing;
44

55
use Illuminate\Contracts\Support\DeferrableProvider;
6+
use Illuminate\Filesystem\Filesystem;
7+
use Illuminate\Support\Collection;
68
use Illuminate\Support\ServiceProvider;
79
use OwenIt\Auditing\Console\AuditDriverCommand;
810
use OwenIt\Auditing\Console\AuditResolverCommand;
@@ -49,20 +51,18 @@ public function register()
4951
*/
5052
private function registerPublishing()
5153
{
52-
if ($this->app->runningInConsole()) {
53-
// Lumen lacks a config_path() helper, so we use base_path()
54-
$this->publishes([
55-
__DIR__ . '/../config/audit.php' => base_path('config/audit.php'),
56-
], 'config');
57-
58-
if (!class_exists('CreateAuditsTable')) {
59-
$this->publishes([
60-
__DIR__ . '/../database/migrations/audits.stub' => database_path(
61-
sprintf('migrations/%s_create_audits_table.php', date('Y_m_d_His'))
62-
),
63-
], 'migrations');
64-
}
54+
if (! $this->app->runningInConsole()) {
55+
return;
6556
}
57+
58+
// Lumen lacks a config_path() helper, so we use base_path()
59+
$this->publishes([
60+
__DIR__ . '/../config/audit.php' => base_path('config/audit.php'),
61+
], 'config');
62+
63+
$this->publishes([
64+
__DIR__ . '/../database/migrations/audits.stub' => $this->getMigrationFileName('create_audits_table.php'),
65+
], 'migrations');
6666
}
6767

6868
/**
@@ -74,4 +74,19 @@ public function provides()
7474
Auditor::class,
7575
];
7676
}
77+
78+
/**
79+
* Returns existing migration file if found, else uses the current timestamp.
80+
*/
81+
protected function getMigrationFileName($migrationFileName): string
82+
{
83+
$timestamp = date('Y_m_d_His');
84+
85+
$filesystem = $this->app->make(Filesystem::class);
86+
87+
return Collection::make([$this->app->databasePath() . DIRECTORY_SEPARATOR . 'migrations' . DIRECTORY_SEPARATOR])
88+
->flatMap(fn ($path) => $filesystem->glob($path.'*_'.$migrationFileName))
89+
->push($this->app->databasePath()."/migrations/{$timestamp}_{$migrationFileName}")
90+
->first();
91+
}
7792
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<?php
2+
3+
return require __DIR__.'/../../../database/migrations/audits.stub';
Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,26 @@
11
<?php
2-
include_once __DIR__.'/../../../database/migrations/audits.stub';
32

3+
use Illuminate\Database\Migrations\Migration;
44
use Illuminate\Database\Schema\Blueprint;
55
use Illuminate\Support\Facades\Schema;
66

7-
class CreateAuditsTestTable extends CreateAuditsTable
7+
return new class extends Migration
88
{
99

1010
/**
1111
* Run the migrations.
12-
*
13-
* @return void
1412
*/
15-
public function up()
13+
public function up(): void
1614
{
17-
parent::up();
18-
1915
Schema::table(config('audit.drivers.database.table', 'audits'), function(Blueprint $table) {
2016
$table->unsignedInteger('tenant_id')->nullable();
2117
});
2218
}
23-
}
19+
20+
/**
21+
* Reverse the migrations.
22+
*/
23+
public function down(): void
24+
{
25+
}
26+
};

tests/database/migrations/0000_00_00_000002_create_users_test_table.php

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,12 @@
44
use Illuminate\Database\Schema\Blueprint;
55
use Illuminate\Support\Facades\Schema;
66

7-
class CreateUsersTestTable extends Migration
7+
return new class extends Migration
88
{
99
/**
1010
* Run the migrations.
11-
*
12-
* @return void
1311
*/
14-
public function up()
12+
public function up(): void
1513
{
1614
Schema::create('users', function (Blueprint $table) {
1715
$table->increments('id');
@@ -25,11 +23,9 @@ public function up()
2523

2624
/**
2725
* Reverse the migrations.
28-
*
29-
* @return void
3026
*/
31-
public function down()
27+
public function down(): void
3228
{
3329
Schema::drop('users');
3430
}
35-
}
31+
};

tests/database/migrations/0000_00_00_000003_create_api_models_test_table.php

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,12 @@
44
use Illuminate\Database\Schema\Blueprint;
55
use Illuminate\Support\Facades\Schema;
66

7-
class CreateApiModelsTestTable extends Migration
7+
return new class extends Migration
88
{
99
/**
1010
* Run the migrations.
11-
*
12-
* @return void
1311
*/
14-
public function up()
12+
public function up(): void
1513
{
1614
Schema::create('api_models', function (Blueprint $table) {
1715
$table->uuid('api_model_id');
@@ -24,11 +22,9 @@ public function up()
2422

2523
/**
2624
* Reverse the migrations.
27-
*
28-
* @return void
2925
*/
30-
public function down()
26+
public function down(): void
3127
{
3228
Schema::drop('api_models');
3329
}
34-
}
30+
};

tests/database/migrations/0000_00_00_000003_create_articles_test_table.php

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,12 @@
44
use Illuminate\Database\Schema\Blueprint;
55
use Illuminate\Support\Facades\Schema;
66

7-
class CreateArticlesTestTable extends Migration
7+
return new class extends Migration
88
{
99
/**
1010
* Run the migrations.
11-
*
12-
* @return void
1311
*/
14-
public function up()
12+
public function up(): void
1513
{
1614
Schema::create('articles', function (Blueprint $table) {
1715
$table->increments('id');
@@ -27,11 +25,9 @@ public function up()
2725

2826
/**
2927
* Reverse the migrations.
30-
*
31-
* @return void
3228
*/
33-
public function down()
29+
public function down(): void
3430
{
3531
Schema::drop('articles');
3632
}
37-
}
33+
};

tests/database/migrations/0000_00_00_000003_create_categories_test_table.php

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,12 @@
44
use Illuminate\Database\Schema\Blueprint;
55
use Illuminate\Support\Facades\Schema;
66

7-
class CreateCategoriesTestTable extends Migration
7+
return new class extends Migration
88
{
99
/**
1010
* Run the migrations.
11-
*
12-
* @return void
1311
*/
14-
public function up()
12+
public function up(): void
1513
{
1614
Schema::create('categories', function (Blueprint $table) {
1715
$table->increments('id');
@@ -29,11 +27,9 @@ public function up()
2927

3028
/**
3129
* Reverse the migrations.
32-
*
33-
* @return void
3430
*/
35-
public function down()
31+
public function down(): void
3632
{
3733
Schema::drop('categories');
3834
}
39-
}
35+
};

0 commit comments

Comments
 (0)