laravel 5.4 迁移问题

Posted

技术标签:

【中文标题】laravel 5.4 迁移问题【英文标题】:laravel 5.4 migration issue 【发布时间】:2017-07-14 05:47:53 【问题描述】:

我在运行时遇到了一个非常奇怪的问题

php artisan migrate

在本地 XAMPP 服务器上使用 php 7.1.1 全新安装 Laravel 5.4。

它所做的是创建一个迁移和用户表,这是旧版本 Laravel 中的默认表。应该创建的是用户表和密码重置表,即新的默认表。我的 env 文件是正确的,因为我正确连接到数据库,但是如果我在 env 文件中更改要连接的表,它不会更新。

对我来说,该命令似乎根本没有在应用程序中正确的迁移文件夹上运行。这是一台全新安装 XAMPP 和 Laravel 的全新机器,所以我很困惑为什么会这样。任何帮助将不胜感激!!!

【问题讨论】:

你能提供一份你的迁移文件列表吗? 当然是的@Kurucu 这是我迁移文件夹中的当前文件:database\migrations\2014_10_12_000000_create_users_table database\migrations\2014_10_12_100000_create_password_resets_table a) 当您说更改 .env 文件中的表时,我假设您的意思是数据库? b) 您查看的数据库是否与 .env 文件中的数据库相同;即您是否看到旧表是因为您正在查看错误的数据库?尝试删除所有表并重新运行迁移。 【参考方案1】:

php 工匠迁移:刷新 php工匠迁移

【讨论】:

【参考方案2】:

我终于能够让它工作,所以我想回答这个问题来解释我做了什么。

这第一步可能对你来说不是必需的,但对我来说是必需的。再一次,这是我使用的:Laravel 5.4 on a local XAMPP server with php 7.1.1

-首先我需要编辑 app>Providers>AppServiceProvider.php https://laravel-news.com/laravel-5-4-key-too-long-error -将此行添加到顶部,其他用途包括:use Illuminate\Support\Facades\Schema; - 在 boot() 函数中添加此代码:Schema::defaultStringLength(191);

-之后我需要运行php artisan migrate,从迁移中创建默认表。由于某种原因,我无法通过任何数量的研究找到原因,这会从未知来源创建旧表。之后我需要编辑 create_users_table 迁移,删除数据库中创建的用户和迁移表,然后重新运行php artisan migrate。就像我说的那样,我不确定为什么必须这样做,但它会让它发挥作用。

另外,为了安全起见,请记住在最后一次运行 php artisan migrate 之前运行这些命令:

php artisan cache:clear

php artisan config:cache

【讨论】:

对我来说,出于某种原因 php artisan migrate 正在查看另一个 laravel 项目在 XAMPP 中的数据库。这是我学会为项目使用唯一密码的那一天,我不想在我的另一个项目中“删除”用户表。事实上,我不得不php artisan cache:clearphp artisan config:cache 几次,然后php artisan migrate 工作。

以上是关于laravel 5.4 迁移问题的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.4 迁移错误 [42501]

Laravel 5.4 迁移 ENUM 在 MySQL 中失败

Laravel 5.4数据库迁移不起作用[重复]

使用迁移 Laravel 5.4 更新列

laravel 5.4 迁移错误:150“外键约束格式不正确”

markdown Laravel 5.4:从gulp迁移到webpack