Git克隆的Laravel项目在php artisan migrate和php artisan db:seed失败
我为一个用Laravel/PHP编写的项目克隆了一个存储库。我能够在本地运行大多数东西,并且能够创建初始迁移文件夹,但是我被困在种子设定和表创建点(?)。我经常遇到以下错误:Git克隆的Laravel项目在php artisan migrate和php artisan db:seed失败,php,mysql,laravel,laravel-artisan,artisan-migrate,Php,Mysql,Laravel,Laravel Artisan,Artisan Migrate,我为一个用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` var
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服务器,我只是通过命令“phpArtisanServe”使用php的内置服务器
到目前为止,我尝试过的解决方案都不起作用:
请考虑到我对PHP比较陌生,但对编码不太熟悉,而且大部分时间我都能运行,我只是被困在这里。如果我能提供更多信息,请让我知道。提前谢谢 某些迁移失败,因为它试图
更改尚未创建的用户表
确保迁移的顺序正确,因为它们是按字母顺序执行的。某些迁移失败,因为它试图更改尚未创建的用户表
确保迁移的顺序正确,因为它们是按字母顺序执行的。看起来,您的迁移顺序有问题。它试图在创建表之前更改它
Laravel迁移将包含一个时间戳,该时间戳允许框架确定迁移的顺序
能否将alter users表迁移文件名更改为2020\u 04\u 24\u 062125\u alter users\u table.php
,然后重试?看起来,迁移顺序有问题。它试图在创建表之前更改它
Laravel迁移将包含一个时间戳,该时间戳允许框架确定迁移的顺序
能否将alter users表迁移文件名更改为2020\u 04\u 24\u 062125\u alter\u users\u table.php
,然后重试?Daniyal Javani在上面的评论中给了我正确的答案。我把这个文件添加到了我的迁移文件夹中。它创建了我丢失的users表,然后运行“php artisan migrate”成功了。Daniyal Javani在上面的评论中给了我正确的答案。我把这个文件添加到了我的迁移文件夹中。它创建了我丢失的用户表,然后运行“php artisan migrate”运行正常。我想我理解您的问题所在。在Laravel框架中,我们在Laravel/database/migrations
文件夹中定义了迁移。他们有特定的名字
它们的名字取决于它们的创作日期,并以同样的方式排列和执行
例如:
2014\u 10\u 12\u 000000\u创建用户\u table.php
及
2014_10_12_00001_alter_users_table.php
create\u users\u table.php
首先运行,然后alter\u users\u table.php
运行
你的问题:
迁移中有一部分代码需要在users表中更改,但尚未创建users表。所以你有两种方法:
1-更改(date\u timestamp)\u create\u users\u table.php的名称,使创建日期在更改迁移日期之前
2-更改迁移的名称,该名称包含更改用户表的代码部分,其方式是在创建用户表的日期之后更改日期
在最后运行php-artisan-migrate:fresh时,我想我理解了您的问题所在。在Laravel框架中,我们在Laravel/database/migrations
文件夹中定义了迁移。他们有特定的名字
它们的名字取决于它们的创作日期,并以同样的方式排列和执行
例如:
2014\u 10\u 12\u 000000\u创建用户\u table.php
及
2014_10_12_00001_alter_users_table.php
create\u users\u table.php
首先运行,然后alter\u users\u table.php
运行
你的问题:
迁移中有一部分代码需要在users表中更改,但尚未创建users表。所以你有两种方法:
1-更改(date\u timestamp)\u create\u users\u table.php的名称,使创建日期在更改迁移日期之前
2-更改迁移的名称,该名称包含更改用户表的代码部分,其方式是在创建用户表的日期之后更改日期
最后运行php-artisan-migrate:fresh
是否运行了php-artisan-migrate
命令?是的,我运行了。它给了我上面的错误。因此,在迁移中使用的表不是以前的迁移创建的。请尝试通过将以下文件下载到迁移文件夹来创建用户表。是否运行了php artisan migrate
命令?是的,我运行了。它给了我上面的错误。所以在迁移中使用的表不是由previ创建的