Laravel Datenbank

 

Laravel: Anlegen und Verwenden einer Datenbank

Datenbank-Einstellungen, Verwenden von SQLite

Die Datei .env im Root-Verzeichnis der Applikation enthält Informationen zur Datenbankverbindung, sollten diese Informationen nicht vorhanden sein, wird die Datei /config/database.php herangezogen: Darin wird standardmäßig mysql verwendet.

Um SQLlite zu verwenden, muss als erstes eine Datenbankdatei angelegt werden, dazu im Terminal: touch ./database/database.sqlite In der Datei .env sollten die Zeilen mit der Datenbankverbindung angepasst werden:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

geändert auf:

DB_CONNECTION=sqlite

 

Migrations

php artisan make:migration create_users_table

Datenbanken anlegen:

Befehl php artisan migrate

user@rechner /var/www/html/systeme/blog $ touch ./database/database.sqlite
user@rechner /var/www/html/systeme/blog $ php artisan migrate
Migration table created successfully.
Migrated: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_100000_create_password_resets_table

Tinker

Einfügen von Werten mittels Tinker

php artisan tinker
DB::table('tasks')->insert(['name' => 'MyTaskname', 'created_at' => new DateTime, 'updated_at' => new DateTime]);
DB::table('tasks')->get();
DB::table('users')->where('id',1)->update(['roleid' => 1]);
DB::table('tasks')->where('title','MyTaskname')->delete();

Seeds

Mittels Seeds können Werte in die Datenbank geschrieben werden. Dies ist vor allem für Entwicklungsumgebungen, wenn die Datenbank mittels migrate erstellt wurde und befüllt werden soll.

 

in DatabaseSeeder.php

     DB::table('database1')->insert(['name' => 'Paul', 'created_at' => new DateTime, 'updated_at' => new DateTime]);
     DB::table('database1')->insert(['name' => 'Josef', 'created_at' => new DateTime, 'updated_at' => new DateTime]);
     DB::table('database2')->insert(['user_id' => '2', 'testdate' => new DateTime, 'testvalue' => '30']);
     DB::table('database2')->insert(['user_id' => '1', 'testdate' => new DateTime, 'testvalue' => '20']);
php artisan db:seed

 

Doctrine DBAL

Fehler beim Ändern der Datenbank:

[RuntimeException] 
Changing columns for table "users" requires Doctrine DBAL; install "doctrin 
e/dbal". 

Um in einer Datenbank bestimmte Felder ändern zu können, z.B.:

$table->string('name')->default("0")->change();

wird die Erweiterung doctrine/dbal benötigt:

composer require doctrine/dbal
positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!

Beitrag erstellt von Bernhard | Aktualisiert: 05.10.2017 | |🔔 | Kommentare:0

Fragen / Kommentare


Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu Mehr Details