4. Erstellung von Migration und Factory
Dieser Schritt ist optional, wenn man die Datenbanktabelle und die Testdaten manuell erstellt. In diesem Fall ist eine Migration und eine Factory nicht erforderlich.
Laravel-Migrationen sind PHP-Klassen, die Datenbankänderungen definieren. Sie ermöglichen versionierte Datenbankschemas, aber zunächst einmal eine automatisierte Erstellung der Datenbanktabelle. Die Migration muss vom Entwickler in der Artisan-Konsole manuell ausgeführt werden.
4.1 Automatische Erstellung der Migration mittels Artisan-Command
bash
php artisan uebung:create-module-migration uebung-vokabeltrainerDies erstellt eine neue Migrationsdatei basierend auf den fields, die in der config.json definiert wurden.
php
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateUebungVokabeltrainerTable extends Migration
{
public function up()
{
Schema::create('uebung_vokabeltrainer', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->json('content_data');
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('uebung_vokabeltrainer');
}
}Factories sind PHP-Klassen zur Generierung von Test-Datensätzen.
4.2 Erstellung der Factory mittels Artisan-Command
bash
php artisan uebung:create-module-factory uebung-vokabeltrainerDies erstellt eine neue Factory-Klasse:
php
<?php
namespace Modules\Uebungen\UebungVokabeltrainer\database\factories;
use Illuminate\Database\Eloquent\Factories\Factory;
use Modules\Uebungen\UebungVokabeltrainer\app\Models\UebungVokabeltrainer;
class UebungVokabeltrainerFactory extends Factory
{
protected $model = UebungVokabeltrainer::class;
public function definition()
{
return [
'title' => $this->faker->sentence,
'content_data' => json_encode([])
];
}
}