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!


veröffentlicht am 11.12.2016 von Bernhard
geändert am 05.10.2017 von Bernhard



Fragen / Kommentare


Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Außerdem geben wir Informationen zu Ihrer Nutzung unserer Website an unsere Partner für soziale Medien, Werbung und Analysen weiter. Details anzeigen.