我检查了我的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,
addusers
varchar(191) 空)
虽然我已经为用户提取了迁移文件(重命名为它的php扩展名)
任何帮助将不胜感激。
编辑:是否会发生迁移文件存储在/ database / migrations以外的其他位置?
答案 0 :(得分:0)
错误duplicate column name 'username'
表示数据库有一个名为users
的表,其中包含username
列。
似乎发生了什么:您在执行php artisan migrate:rollback
之前从Laravel中取出了迁移文件。这使数据库具有迁移写出的所有模式结构。显然,您无法再次运行相同的迁移,因为在数据库中已找到相同的结构。
你应该做什么:登录你的mysql服务器,删除,然后再次创建数据库。
mysql -u root -p
然后它会提示您输入mysql服务器的密码。
drop database your-db-name
create database your-db-name
然后再次运行迁移php artisan migrate
。
进一步诊断方法
您可以在/database/
文件夹下创建一个'database.sqlite'文件,并将.env的DB_CONNECTION
更改为sqlite
。
运行迁移和回滚并再次运行它。如果它在任何时候都搞砸了,那就意味着迁移文件中存在问题。