-
Aufsetzen von der Entwicklungsumbebung:
-
Shell Script zum Erstellen eines Dumps
pg_dump --dbname=postgresql://dev:dev@127.0.0.1:5432/abalo --file=abalo.dump -c
-
Shell Script zum Wiederherstellen eines Dumps
psql --dbname=postgresql://dev:dev@127.0.0.1:5432/abalo --file=abalo.dump
-
-
- Tabelle erstellen
create table ab_testdata ( id int8 not null constraint ab_testdata_pk primary key, ab_testname varchar(80) unique not null ); comment on column ab_testdata.id is 'Primärschlüssel'; comment on column ab_testdata.ab_testname is 'Testname eines Artikels';
- Tabelle füllen
INSERT INTO public.ab_testdata (id, ab_testname) VALUES (1, 'Fotokamera'); INSERT INTO public.ab_testdata (id, ab_testname) VALUES (2, 'Blitzlicht');
- Tabelle erstellen
-
- Befehlsreihenfolge im Terminal Doc:
-
php artisan make:migration create_TABLENAME_table
- In database/migrations/create_TABLENAME_table die up()-Funktion ergänzen Doc
-
php artisan migrate
-
- Fehler eingebaut Doc?
- Um ein Migrate zurückzuspulen:
php artisan migrate:rollback --step=1
- Um alle Migrates zurückzuspulen:
php artisan migrate:rollback
- Um ein Migrate zurückzuspulen:
- Sonstige Befehle:
- Besonderheiten:
- Table: ab_article
2 Befehle für Attribut ab_creator_idWurde so gelöst, weil das ab_creator_id das id Attribut der ab_user Tabelle referenzieren soll.$table->unsignedBigInteger('ab_creator_id')->nullable(false); $table->foreign('ab_creator_id')->references('id')->on('ab_user');
- Table: ab_articlecategory - ähnliches wie oben
- Table: ab_article_has_articlecategory
- Problem: zusammengesetztes Attribut soll UNIQUE sein und aus den beiden vorherigen Attributen zusammengesetzt werden
- Muss nicht umbedingt ein getrenntes Attribut sein, sondern man könnte ledeglich über einem Controller überprüfen, ob es UNIQUE ist
- Vorteile:
- Durch ein weiteres Attribut umgehen wir diese logische Überprüfung direkt beim Eintragen in der Datenbank
- Logik muss nur für Zusammensetzung der Attribute verwendet werden
- Vorteile:
-
// Reference ab_articlecategory $table->unsignedBigInteger('ab_articlecategory_id')->nullable(false); $table->foreign('ab_articlecategory_id')->references('id')->on('ab_articlecategory'); // Reference ab_article $table->unsignedBigInteger("ab_article_id")->nullable(false); $table->foreign('ab_article_id')->references('id')->on('ab_article'); // Variable that uses logic (controller later on) to concatenate both values $table->unsignedBigInteger("ab_UNIQUE_article_AND_category")->nullable(false)->unique();
- Table: ab_article
- Befehlsreihenfolge im Terminal Doc:
-
Vorgehensweise:
-
php artisan make:seeder DevelopmentData
- Codetemplate für den Seeder benutzen und anpassen Doc
<?php namespace Database\Seeders; use Illuminate\Database\Seeder; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Str; class DatabaseSeeder extends Seeder { /** * Run the database seeders. */ public function run(): void { DB::table('users')->insert([ 'name' => Str::random(10), 'email' => Str::random(10).'@example.com', 'password' => Hash::make('password'), ]); } } ?>
- Added seeder class to the main seeder file DatabaseSeeder:
// In DatabaseSeeder run() $this->call(DevelopmentData::class);
- Ran the following command to seed the tables:
// In Bash php artisan db:seed
- Added seeder class to the main seeder file DatabaseSeeder:
-
-
-
php artisan make:controller ArticleController php artisan make:model Articles
- Directory views/articles/ und Datei overview.blade erstellt
-
- Models (DBWT PP 24)
- Model configuration: page 23
- Creating a model entry: page 25
- Reading one entry: page 26
- Reading multiple entries: page 27
- Updating entries: page 28
- Deleting entries: page 29
- ::all() and ::chunk()
- Eloquent Models
- Migration basics 1
- Migration basics 2