Git克隆的Laravel项目在php artisan migrate和php artisan db:seed上失败



我为一个用Laravel/PHP编写的项目克隆了一个存储库。我能够让大多数事情在本地运行,并且能够创建初始迁移文件夹,但我被困在种子设定和表创建点(?(。我不断得到以下错误:

In Connection.php line 664:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'lara_dev.users' doesn't exist (SQL: alter table `users` add `avatar` varchar(255   
) null default 'users/default.png' after `email`, add `role_id` int null after `id`)

In PDOStatement.php line 144:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'lara_dev.users' doesn't exist  

In PDOStatement.php line 142:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'lara_dev.users' doesn't exist  

*lara_dev是本地数据库的名称。git克隆项目后,我直接在MySQL本地客户端中创建了它,它不是由终端中执行的任何命令创建的。

还有:

数据库文件夹中有三个文件夹:工厂、迁移和种子。据我所知,里面的文件配置正确,创建数据库时应该没有问题,也不必编辑这些文件。

我没有WAMP服务器,我只是通过命令"php artisan serve"使用php的内置服务器。

到目前为止,我尝试过的解决方案都没有奏效:

  1. php手工缓存:清除//清除缓存,但仅此而已。

  2. php artisan migrate:fresh--seed//同样的错误,但也会删除以前存在的任何表。

  3. php artisan migrate:refresh--seed//给出"nothingtorollback"消息。

  4. php artisan db:seed//相同的错误

我在Stack上找不到任何适合我情况的解决方案。如有任何帮助,我们将不胜感激。

请考虑到我对PHP相对陌生,但对编码还不熟悉,而且我大部分时间都能运行,我只是停留在这里。如果我能提供更多信息,请告诉我。提前感谢!

某些迁移失败,因为它试图alter用户表,而该表尚未创建。

请确保迁移的顺序正确,因为它们是按字母顺序执行的。

您的迁移顺序似乎有问题。它试图在创建表之前更改它。

Laravel迁移将包含一个时间戳,该时间戳允许框架确定迁移的顺序

能否将alter users表迁移文件名更改为2020_04_24_062125_alter_users_table.php,然后重试?

Daniyal Javani在上面的评论中给了我正确的答案。我添加了那个确切的文件,https://github.com/laravel/laravel/blob/master/database/migrations/2014_10_12_000000_create_users_table.php,到我的迁移文件夹。它创建了我丢失的users表,然后运行"php-artisan-migrate"就可以了。

我想我知道你的问题在哪里。在Laravel框架中,我们有在Laravel/database/migrations文件夹中定义的迁移。他们有特殊的名字。

他们的名字取决于他们创作的日期,以同样的方式排列和执行。

例如:

2014_10_12_0000_create_users_table.php

2014_10_12_0001_alter_users_table.php

首先运行create_users_table.php,然后运行alter_users_table.php

您的问题:

迁移中有一部分代码需要在users表中进行更改,但尚未创建users表。所以你有两种方法:

1-更改(date_timestamp)_create_users_table.php的名称,使创建日期在更改迁移日期之前

2-更改迁移的名称,该名称包含更改用户表的代码部分,以使日期在创建用户表的日期之后。

最后运行php artisan migrate:fresh

相关内容

最新更新