Изменение имени базы данных в Laravel/Homestead

Я начал изучать Laravel всего час назад и после учебников.

Мои настройки для базы данных следующие (File: app/config/database.php):

'default' => 'mysql',

'connections' => array(

    'sqlite' => array(
        'driver'   => 'sqlite',
        'database' => __DIR__.'/../database/production.sqlite',
        'prefix'   => '',
    ),

    'mysql' => array(
        'driver'    => 'mysql',
        'host'      => 'localhost',
        'database'  => 'laraveltest',
        'username'  => 'root',
        'password'  => 'secret',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),

В mySQL на homestead я уже создал базу данных laraveltest. Я также создал файл миграции в каталоге database/migration со следующим кодом:

public function up()
{
    Schema::create('users', function($table)
    {
        $table->increments('id');
        $table->string('email')->unique();
        $table->string('name');
        $table->timestamps();
    });
}

и команды миграции:

[email protected]:~/Code/Laravel$ php artisan migrate
Migration table created successfully.
Migrated: 2014_08_14_195103_create_users_table

Как показано, пользователи таблицы создаются, но в базе данных homestead, а не в базе данных laraveltest. Может кто-нибудь рассказать, где я поступил не так, и как заставить laravel использовать базу данных laraveltest?

Изменить после первого комментария Файл: bootstrap/start.php

$env = $app->detectEnvironment(array(

    'local' => array('homestead'),

));

Ответ 1

Это, скорее всего, проблема с средой. Убедитесь, что у вас есть файл конфигурации базы данных в app/config/local/, и убедитесь, что у него есть правильные настройки.

Ответ 2

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

Ответ 3

Сейчас я тоже занимаюсь этим вопросом. Много раз меняли файл .env, а также файл config.php. Казалось, ничего не работает. После глубокого изучения структуры я нашел приемлемый временный обходной путь к проблеме, которая не конфликтует с ЛЮБЫМИ исключениями Laravel 5.0.2.

ПРИМЕЧАНИЕ: В настоящее время я использую Ampps 3.4 с php 7.0.2 phpmyadmin 4.4.15.1 в ОС Windows 8.1.

Внутри файла "ConnectionFactory.php" (находится в "laravel\vendor\laravel\framework\src\Illuminate\Database\Connectors"), прокрутите вниз до public function make, расположенного в строке 41. В рамках этой функции вы можете выполнить следующее после этого оператора $config = $this->parseConfig($config, $name);, которое должно быть в строке 43:

$config['database'] = 'Insert the name of your database here';

Это изменение позволит Laravel продолжить обычный процесс, не оказывая отрицательного влияния ни на фреймворк, ни на ваш проект. Пока эта ошибка не будет устранена создателями Laravel или сообществом.

До тогда счастливого кодирования! знак равно