2016-07-01 2 views
1

Я пытаюсь использовать artisan migrate для создания таблиц в sqlite.Почему laravel 5 ремесленника мигрирует, не создавая базу данных sqlite?

У меня есть следующие в database.php

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

и это мой мигрирует класс up функция

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(); 
    }); 

Примечание: - Я поставил DB_CONNECTION быть SQLite с помощью переменной окружения.

В командной строке я получаю nothing to migrate, и никакой db не создается (также нет таблицы).

Любые идеи, как я могу получить artisan migrate, чтобы создать sqlite db в laravel 5?

У меня нет проблем с созданием mysql таблиц с помощью ремесленника.

Thanks

+0

Что' ремесленник мигрирует : status' show? – linuxartisan

+0

+ ------ + ------------------------------------ - + | Ран? | Миграция | + ------ + -------------------------------------- + | Y | 2014_10_12_000000_create_users_table | | Y | 2016_07_01_101905_create_test_table | + ------ + -------------------------------------- + – lucsan

ответ

2

его, потому что вы не создали db. используйте команду touch, чтобы создать новую базу данных sqlite.

touch database/database.sqlite 

настройте переменную окружения, как это

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

I должен был упомянуть, что я уже пробовал это, и он не работал, кроме того, sqlite создает файл db, которого нет. – lucsan

-1

Хорошо я получил его. artisan migrate, похоже, игнорирует env DB_CONNECTION и base.php по умолчанию (который в любом случае читает env). Вместо этого он нравится .env файл DB_CONNECTION, с этим набором для sqlite он работает (плюс, как уже упоминалось выше, вам необходимо вручную создать файл базы данных, которая является боль для изготовления DBS на лету.

означает Кроме того, вы можете «т действительно изменить тип базы данных ремесленник миграции.. (то есть: sqlite и mysql) на лету, как вам нужно изменить .env переменную каждый раз, когда вы меняете тип целевого дб

идти Laravel

+1

Зачем вам менять переменную .env каждый раз? Все, что вам нужно изменить, это целевой бит, и все настройки будут подняты. Вы можете указать имена переменных для базы данных. Например, DB_SQLITE_DATABASE, DB_PGSQL_DATABASE, DB_PGSQ_USERNAME и т. Д. – tnash

Смежные вопросы