2017-02-14 3 views
0

Я пытаюсь написать консольную команду в Laravel 5.4, которая позволит мне динамически создавать .env-файл, а затем запускать миграцию и сеялку базы данных.Динамически создайте файл .env, затем перенесите и заселите базу данных

/** 
* Execute the console command. 
* 
* @return mixed 
*/ 
public function handle() { 
    // Check if we already have an .env file. 
    if(!$this->envFileExists()) { 
     // Create the .env file 
     $this->createEnvFile(); 
     $this->info('Environment file successfully created.'); 
    } 

    // Generate application key 
    Artisan::call('key:generate'); 
    $this->info('Application key successfully generated.'); 

    // Migrate 
    Artisan::call('migrate:install'); 
    $this->info('Migrations table successfully created.'); 
    Artisan::call('migrate:refresh'); 
    $this->info('All tables successfully migrated.'); 

    // Seed 
    Artisan::call('db:seed'); 
    $this->info('All tables successfully seeded.'); 
} 

код успешно создает файл .env и генерирует и сохраняет ключ applicaiton, но не в состоянии перенести базу данных.

[PDOException] SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: NO) 

Что я предполагаю, что означает, что приложение не читает файл .env после того, как он был создан, даже если он правильно создать ключ приложения в правом файле.

Если я запустил команду во второй раз, после того, как файл .env уже существует, все выполняется правильно: база данных переносится и выгружается. Поэтому ясно, что файл .env создается правильно и что Laravel просто не узнает его по какой-либо причине на его начальной установке.

Как заставить Laravel использовать новый .env-файл после его создания?

+0

ли вы пробовали вызов «конфигурации: кэш» перед «мигрировать: установить»? –

+0

Поскольку фреймворк уже загружен, он не загрузит созданный файл env. – Neat

+1

«config: cache» сделал трюк. Если вы напишете его как ответ @MarcosKubis, я могу его принять. Спасибо! – user2759865

ответ

1

Вызов config:cache команды перед тем migrate:install

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