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
{{percentage}} % positiv