2016-07-01 23 views
1

Ich versuche artisan migrate zu verwenden, um Tabellen in sqlite zu erstellen.Warum ist Laravel 5 Handwerker migrieren nicht sqlite Datenbank erstellen?

Ich habe folgendes in database.php

'sqlite' => [ 
     'driver' => 'sqlite', 
     'database' => database_path('database.sqlite'), 
     'prefix' => '', 
    ], 

und dies ist meine Migrate Klasse up Funktion

Schema::connection('sqlite')->create('users', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->string('name'); 
     $table->string('email')->unique(); 
     $table->string('password'); 
     $table->rememberToken(); 
     $table->timestamps(); 
    }); 

Hinweis: - Ich DB_Connection gesetzt haben SQLite über die Umgebungsvariable zu sein.

In der Befehlszeile bekomme ich nothing to migrate, und keine Datenbank erstellt (auch keine Tabelle).

Irgendwelche Ideen, wie ich artisan migrate bekommen kann, um eine sqlite db in laravel 5 zu schaffen?

Ich habe kein Problem, mysql Tabellen über Handwerker zu erstellen.

Dank

+0

Was bedeutet' Handwerker Migrate : status' show? – linuxartisan

+0

+ ------ + ------------------------------------ - + | Ran? | Migration | + ------ + -------------------------------------- + | Y | 2014_10_12_000000_create_users_table | | Y | 2016_07_01_101905_create_test_table | + ------ + -------------------------------------- + – lucsan

Antwort

2

ist es, weil Sie die db nicht erstellt haben. Verwenden Sie den Befehl touch, um eine neue SQLite-Datenbank zu erstellen.

touch database/database.sqlite 

konfigurieren dann die Umgebungsvariable wie diese

DB_CONNECTION=sqlite 
DB_DATABASE=/absolute/path/to/database.sqlite 
+0

I sollte erwähnt haben, dass ich das schon versucht habe und es nicht funktioniert hat, neben sqlite erstellt eine db-datei gibt es keine. – lucsan

-1

Ok, ich habe es. artisan migrate scheint die und die Datenbank.php Standard zu ignorieren (die liest die env sowieso). Stattdessen möchte er die .env Datei DB_CONNECTION, mit diesem Satz zu sqlite es funktioniert (plus, wie oben erwähnt, Sie müssen manuell die Datenbankdatei erstellen, die zur Herstellung von dbs on the fly ist ein Schmerz.

bedeutet auch, dass Sie ‚t wirklich handwerkliche Migrate Datenbanktypen ändern.. (dh: sqlite und mysql) on the fly, wie Sie die .env Variable jedes Mal, wenn das Ziel db Typ ändern müssen ändern

go Laravel

+1

Warum würden Sie die Variable .env jedes Mal ändern? Alles, was Sie ändern müssen, ist die Zieldatenbank und alle Einstellungen werden übernommen. Sie können Ihren Variablen Namen geben, die für die Datenbank spezifisch sind. Zum Beispiel DB_SQLITE_DATABASE, DB_PGSQL_DATABASE, DB_PGSQ_USERNAME etc – tnash

Verwandte Themen