Git 克隆 Laravel 项目失败 php artisan 迁移和 php artisan db:seed
Git Cloned Laravel Project failing at php artisan migrate and php artisan db:seed
我git 为用Laravel/PHP 编写的项目克隆了一个存储库。我能够在本地获得大部分内容 运行,并且能够创建初始迁移文件夹,但我被困在播种和 table 创建点 (?)。我一直收到以下错误:
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 本地客户端中创建了它,它不是由在终端中执行的任何命令创建的。
另外:
database文件夹里面有三个文件夹:factory、migrations、seeds。据我所见和理解,里面的文件配置正确,应该可以毫无问题地创建数据库,而不必编辑这些文件。
我没有 WAMP 服务器,我只是通过 'php artisan serve'.
命令使用 php 的内置服务器
到目前为止我尝试过但没有奏效的解决方案:
php artisan cache:clear //清除缓存,仅此而已。
php artisan migrate:fresh --seed //同样的错误,但也会删除之前存在的任何 tables。
php artisan migrate:refresh --seed // 给出 'nothing to rollback' 消息。
php artisan db:seed //同样的错误
我无法在 Stack 上找到任何适合我的情况的解决方案。任何帮助将不胜感激。
请考虑到我是 PHP 的新手,但不是编码的新手,而且我已经能够得到大部分东西 运行,我只是被困在这里.如果我可以提供更多信息,请告诉我。提前致谢!
某些迁移失败,因为它正在尝试 alter
尚未创建的用户 table。
确保迁移的顺序正确,因为它们是按字母顺序执行的。
看来,您的迁移顺序有问题。它试图在创建之前更改 table。
Laravel 迁移将包含一个时间戳,允许框架确定迁移的顺序
能否将 alter users table 迁移文件名更改为 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 添加到我的迁移文件夹中。它创建了我所缺少的 table 用户,然后 运行 'php artisan migrate' 起作用了。
我想我明白你的问题出在哪里了。在 Laravel 框架中,我们有在 Laravel/database/migrations
文件夹中定义的迁移。他们有特定的名字。
它们的名字取决于它们的创建日期,并且以相同的方式排列并以相同的方式执行。
例如:
2014_10_12_000000_create_users_table.php
和
2014_10_12_000001_alter_users_table.php
create_users_table.php
运行 首先是 alter_users_table.php
运行s.
您的问题:
您在迁移中有一部分代码需要针对用户 table 进行更改,但您的用户 table 尚未创建。所以你有两种方法:
1-更改 (date_timestamp)_create_users_table.php
的名称,使创建日期早于更改迁移日期
2-更改迁移的名称,其中包含更改用户 table 的代码部分,使得日期在用户创建日期之后 table。
最后运行php artisan migrate:fresh
我git 为用Laravel/PHP 编写的项目克隆了一个存储库。我能够在本地获得大部分内容 运行,并且能够创建初始迁移文件夹,但我被困在播种和 table 创建点 (?)。我一直收到以下错误:
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 本地客户端中创建了它,它不是由在终端中执行的任何命令创建的。
另外:
database文件夹里面有三个文件夹:factory、migrations、seeds。据我所见和理解,里面的文件配置正确,应该可以毫无问题地创建数据库,而不必编辑这些文件。
我没有 WAMP 服务器,我只是通过 'php artisan serve'.
命令使用 php 的内置服务器到目前为止我尝试过但没有奏效的解决方案:
php artisan cache:clear //清除缓存,仅此而已。
php artisan migrate:fresh --seed //同样的错误,但也会删除之前存在的任何 tables。
php artisan migrate:refresh --seed // 给出 'nothing to rollback' 消息。
php artisan db:seed //同样的错误
我无法在 Stack 上找到任何适合我的情况的解决方案。任何帮助将不胜感激。
请考虑到我是 PHP 的新手,但不是编码的新手,而且我已经能够得到大部分东西 运行,我只是被困在这里.如果我可以提供更多信息,请告诉我。提前致谢!
某些迁移失败,因为它正在尝试 alter
尚未创建的用户 table。
确保迁移的顺序正确,因为它们是按字母顺序执行的。
看来,您的迁移顺序有问题。它试图在创建之前更改 table。
Laravel 迁移将包含一个时间戳,允许框架确定迁移的顺序
能否将 alter users table 迁移文件名更改为 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 添加到我的迁移文件夹中。它创建了我所缺少的 table 用户,然后 运行 'php artisan migrate' 起作用了。
我想我明白你的问题出在哪里了。在 Laravel 框架中,我们有在 Laravel/database/migrations
文件夹中定义的迁移。他们有特定的名字。
它们的名字取决于它们的创建日期,并且以相同的方式排列并以相同的方式执行。
例如:
2014_10_12_000000_create_users_table.php
和
2014_10_12_000001_alter_users_table.php
create_users_table.php
运行 首先是 alter_users_table.php
运行s.
您的问题:
您在迁移中有一部分代码需要针对用户 table 进行更改,但您的用户 table 尚未创建。所以你有两种方法:
1-更改 (date_timestamp)_create_users_table.php
的名称,使创建日期早于更改迁移日期
2-更改迁移的名称,其中包含更改用户 table 的代码部分,使得日期在用户创建日期之后 table。
最后运行php artisan migrate:fresh