From 5941e392b8315599c3d0982bf75b9e926238124d Mon Sep 17 00:00:00 2001 From: Anton Komarev Date: Sun, 8 Jan 2023 11:06:09 +0300 Subject: [PATCH 1/2] Make love_reactant_id & love_reacter_id columns nullable by default --- src/Console/Commands/SetupReactable.php | 6 +++--- src/Console/Commands/SetupReacterable.php | 6 +++--- tests/Unit/Console/Commands/SetupReactableTest.php | 4 ++-- tests/Unit/Console/Commands/SetupReacterableTest.php | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Console/Commands/SetupReactable.php b/src/Console/Commands/SetupReactable.php index 4bdea227..a41c256a 100644 --- a/src/Console/Commands/SetupReactable.php +++ b/src/Console/Commands/SetupReactable.php @@ -48,7 +48,7 @@ public function handle( $model = $this->resolveModel(); $model = $this->sanitizeName($model); $foreignColumn = 'love_reactant_id'; - $isForeignColumnNullable = boolval($this->option('nullable')); + $isForeignColumnNullable = boolval($this->option('not-nullable')) === false; if (!class_exists($model)) { $this->error( @@ -140,9 +140,9 @@ protected function getOptions(): array description: 'The name of the reactable model', ), new InputOption( - name: 'nullable', + name: 'not-nullable', mode: InputOption::VALUE_NONE, - description: 'Indicate if foreign column allows null values', + description: 'Indicate if foreign column does not allow null values', ), ]; } diff --git a/src/Console/Commands/SetupReacterable.php b/src/Console/Commands/SetupReacterable.php index 6504a49e..9ed4ec45 100644 --- a/src/Console/Commands/SetupReacterable.php +++ b/src/Console/Commands/SetupReacterable.php @@ -48,7 +48,7 @@ public function handle( $model = $this->resolveModel(); $model = $this->sanitizeName($model); $foreignColumn = 'love_reacter_id'; - $isForeignColumnNullable = boolval($this->option('nullable')); + $isForeignColumnNullable = boolval($this->option('not-nullable')) === false; if (!class_exists($model)) { $this->error( @@ -140,9 +140,9 @@ protected function getOptions(): array description: 'The name of the reacterable model', ), new InputOption( - name: 'nullable', + name: 'not-nullable', mode: InputOption::VALUE_NONE, - description: 'Indicate if foreign column allows null values', + description: 'Indicate if foreign column does not allow null values', ), ]; } diff --git a/tests/Unit/Console/Commands/SetupReactableTest.php b/tests/Unit/Console/Commands/SetupReactableTest.php index 1dc1bdaf..b0042c83 100644 --- a/tests/Unit/Console/Commands/SetupReactableTest.php +++ b/tests/Unit/Console/Commands/SetupReactableTest.php @@ -51,11 +51,11 @@ public function it_can_create_migration_for_reactable_model(): void } /** @test */ - public function it_can_create_migration_for_reactable_model_with_nullable_column(): void + public function it_can_create_migration_for_reactable_model_with_not_nullable_column(): void { $status = $this->artisan('love:setup-reactable', [ '--model' => Person::class, - '--nullable' => true, + '--not-nullable' => true, ]); $this->assertSame(0, $status); diff --git a/tests/Unit/Console/Commands/SetupReacterableTest.php b/tests/Unit/Console/Commands/SetupReacterableTest.php index 220f4af3..32584190 100644 --- a/tests/Unit/Console/Commands/SetupReacterableTest.php +++ b/tests/Unit/Console/Commands/SetupReacterableTest.php @@ -51,11 +51,11 @@ public function it_can_create_migration_for_reacterable_model(): void } /** @test */ - public function it_can_create_migration_for_reacterable_model_with_nullable_column(): void + public function it_can_create_migration_for_reacterable_model_with_not_nullable_column(): void { $status = $this->artisan('love:setup-reacterable', [ '--model' => Person::class, - '--nullable' => true, + '--not-nullable' => true, ]); $this->assertSame(0, $status); From 7a34ad505020e7575a46a91c6ce58c56bc9ce310 Mon Sep 17 00:00:00 2001 From: Anton Komarev Date: Sun, 8 Jan 2023 11:19:06 +0300 Subject: [PATCH 2/2] Use new stub method --- CHANGELOG.md | 5 +++++ src/Support/Database/Stubs/AddForeignColumn.stub | 2 +- src/Support/Database/Stubs/AddForeignNullableColumn.stub | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ad475ff7..f8e090b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,10 @@ All notable changes to `laravel-love` will be documented in this file. ### Changed +- ([#231]) Console command `love:setup-reactable` generates migration with nullable column `love_reactant_id` by default +- ([#231]) Console command `love:setup-reactable` option `--nullable` replaced with `--not-nullable` +- ([#231]) Console command `love:setup-reacterable` generates migration with nullable column `love_reacter_id` by default +- ([#231]) Console command `love:setup-reacterable` option `--nullable` replaced with `--not-nullable` - ([#222]) Removed DI usage from console commands constructors - ([#215]) Migrated to console `AsCommand` attribute - ([#215]) Package generating anonymous class migrations now @@ -563,6 +567,7 @@ Follow [upgrade instructions](UPGRADING.md#from-v5-to-v6) to migrate database to [1.1.1]: https://github.com/cybercog/laravel-love/compare/1.1.0...1.1.1 [1.1.0]: https://github.com/cybercog/laravel-love/compare/1.0.0...1.1.0 +[#231]: https://github.com/cybercog/laravel-love/pull/231 [#222]: https://github.com/cybercog/laravel-love/pull/222 [#218]: https://github.com/cybercog/laravel-love/pull/218 [#217]: https://github.com/cybercog/laravel-love/pull/217 diff --git a/src/Support/Database/Stubs/AddForeignColumn.stub b/src/Support/Database/Stubs/AddForeignColumn.stub index bd5f127c..6e1ecd6c 100644 --- a/src/Support/Database/Stubs/AddForeignColumn.stub +++ b/src/Support/Database/Stubs/AddForeignColumn.stub @@ -20,7 +20,7 @@ return new class extends Migration public function up(): void { Schema::table('DummyTable', function (Blueprint $table) { - $table->unsignedBigInteger('DummyForeignColumn'); + $table->foreignId('DummyForeignColumn'); $table ->foreign('DummyForeignColumn') diff --git a/src/Support/Database/Stubs/AddForeignNullableColumn.stub b/src/Support/Database/Stubs/AddForeignNullableColumn.stub index 7c6560a9..991faa6b 100644 --- a/src/Support/Database/Stubs/AddForeignNullableColumn.stub +++ b/src/Support/Database/Stubs/AddForeignNullableColumn.stub @@ -20,7 +20,7 @@ return new class extends Migration public function up(): void { Schema::table('DummyTable', function (Blueprint $table) { - $table->unsignedBigInteger('DummyForeignColumn')->nullable(); + $table->foreignId('DummyForeignColumn')->nullable(); $table ->foreign('DummyForeignColumn')