在Laravel / Homestead中更改数据库名称

时间:2014-08-14 20:50:14

标签: php laravel laravel-4

我在一小时前开始学习Laravel,并继续学习。

我的数据库设置如下(文件: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'    => '',
    ),

在hometead上的mySQL中,我已经创建了laraveltest数据库。我还在database/migration目录中创建了迁移文件,其中包含以下代码:

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

和迁移命令是:

vagrant@homestead:~/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'),

));

3 个答案:

答案 0 :(得分:14)

这很可能是环境问题。检查app / config / local /中是否有数据库配置文件,并检查它是否具有正确的设置。

答案 1 :(得分:12)

如果有人发现这是为了寻找Laravel 5或更高版本的答案:它与@camroncade说的相同,但在这种情况下,它是您想要查看的项目根目录中的.env文件。

答案 2 :(得分:2)

我目前正在处理这个问题。多次更改.env文件以及config.php文件。似乎没什么用。 在对框架进行深入挖掘之后,我找到了一个可接受的临时解决方法,该问题与任何Laravel 5.0.2的异常都没有冲突。

注意:我目前在Windows 8.1操作系统上使用带有php 7.0.2 phpmyadmin 4.4.15.1的Ampps 3.4

文件“ ConnectionFactory.php ”内 该文件位于“laravel \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Connectors” 向下滚动至位于第41行的“公共功能” 在此功能中,您可以执行以下 此声明后的

$ config = $ this-> parseConfig($ config,$ name);

应位于第43行

$ config ['database'] ='在此处插入数据库的名称';

此更改将允许Laravel继续执行正常流程,不会对框架或项目产生任何负面影响。直到这个错误由​​Laravel或社区的制造商修复。

然后开心编码! =)