【问题标题】:cannot find DB connection info找不到数据库连接信息
【发布时间】:2018-04-09 15:29:10
【问题描述】:

我检查了我的 config/database.php

我有:

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

就我而言,我有:

 '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,

但似乎我的数据库配置发生在其他地方,我还在 .env 文件中定义了我的变量。但是当我在我的应用程序目录中运行迁移时,它会出错:

[照亮\数据库\查询异常]
SQLSTATE [42S21]:列已存在:1060 列名重复 '用户名 e' (SQL: 更改表 users 添加 username varchar(191) 空)

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

任何帮助将不胜感激。

编辑:迁移文件是否存储在 /database/migrations 以外的其他地方?

【问题讨论】:

  • 您要迁移吗?它说你已经在users 表中有username

标签: php laravel-5


【解决方案1】:

错误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

然后再次运行迁移,php artisan migrate

进一步诊断方法

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

运行迁移和回滚,然后再次运行。如果它在任何时候出现问题,则意味着迁移文件有问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    • 1970-01-01
    相关资源
    最近更新 更多