Динамически создать файл .env, затем перенести и заполнить базу данных

Я пытаюсь написать консольную команду в Laravel 5.4, которая позволит мне динамически создавать файл .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 И генерирует и сохраняет ключ приложения, но не может перенести базу данных.

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

Я предполагаю, что это означает, что приложение НЕ читает файл .env после его создания, даже если оно правильно создает ключ приложения в правильном файле.

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

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


person user2759865    schedule 14.02.2017    source источник
comment
Вы пытались вызвать config:cache перед миграцией:установить?   -  person Marcos Kubis    schedule 14.02.2017
comment
Поскольку фреймворк уже загружен, он не загрузит только что созданный файл env.   -  person Khoon    schedule 14.02.2017
comment
«config:cache» сделал свое дело. Если вы напишете это как ответ @MarcosKubis, я могу принять это. Благодарю вас!   -  person user2759865    schedule 14.02.2017
comment
Спасибо! @user2759865   -  person Marcos Kubis    schedule 14.02.2017


Ответы (1)


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

person Marcos Kubis    schedule 14.02.2017