找不到DB连接信息

时间:2017-10-28 00:05:35

标签: php laravel-5

我检查了我的config / database.php

我有:

template<typename T> class Stack;

template<typename T>
class Node
{
private:
    friend class Stack<T>;
    Node(T value, Node *next);
    T value;
    Node *next;
};

在我的联系中,我有:

 'default' => env('DB_CONNECTION', 'mysql'),

但似乎我的数据库配置发生在某个地方,我还在我的.env文件中定义了我的varioables。但是当我在我的app目录中运行migrate时,它会出错:

  

[照亮\数据库\ QueryException]
  SQLSTATE [42S21]:列已存在:1060重复的列名   'usernam e'(SQL:alter table 'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, 'engine' => null, add users varchar(191)   空)

虽然我已经为用户提取了迁移文件(重命名为它的php扩展名)

任何帮助将不胜感激。

编辑:是否会发生迁移文件存储在/ database / migrations以外的其他位置?

1 个答案:

答案 0 :(得分:0)

错误duplicate column name 'username'表示数据库有一个名为users的表,其中包含username列。

似乎发生了什么:您在执行php artisan migrate:rollback之前从Laravel中取出了迁移文件。这使数据库具有迁移写出的所有模式结构。显然,您无法再次运行相同的迁移,因为在数据库中已找到相同的结构。

你应该做什么:登录你的mysql服务器,删除,然后再次创建数据库。

  1. mysql -u root -p然后它会提示您输入mysql服务器的密码。

  2. drop database your-db-name

  3. create database your-db-name

  4. 然后再次运行迁移php artisan migrate

    进一步诊断方法

    您可以在/database/文件夹下创建一个'database.sqlite'文件,并将.env的DB_CONNECTION更改为sqlite

    运行迁移和回滚并再次运行它。如果它在任何时候都搞砸了,那就意味着迁移文件中存在问题。