【问题标题】:Git Cloned Laravel Project failing at php artisan migrate and php artisan db:seedGit 克隆的 Laravel 项目在 php artisan migrate 和 php artisan db:seed 失败
【发布时间】:2020-08-07 15:38:09
【问题描述】:

我为一个用 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 artisan cache:clear //清除缓存,仅此而已。

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

  3. php artisan migrate:refresh --seed // 给出“无需回滚”消息。

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

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

请考虑到我对 PHP 比较陌生,但对编码不熟悉,而且我大部分时间都可以运行,我只是被困在这里。如果我可以提供更多信息,请告诉我。提前致谢!

【问题讨论】:

标签: php mysql laravel laravel-artisan artisan-migrate


【解决方案1】:

某些迁移失败,因为它正在尝试 alter 尚未创建的用户表。

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

【讨论】:

    【解决方案2】:

    您的迁移顺序似乎有问题。它正在尝试在创建表之前对其进行更改。

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

    能否将alter users表迁移文件名改为2020_04_24_062125_alter_users_table.php再试一次?

    【讨论】:

      【解决方案3】:

      Daniyal Javani 在上面的 cmets 中给了我正确的答案。我将那个确切的文件 https://github.com/laravel/laravel/blob/master/database/migrations/2014_10_12_000000_create_users_table.php 添加到我的迁移文件夹中。它创建了我缺少的用户表,然后运行 ​​'php artisan migrate' 工作。

      【讨论】:

        【解决方案4】:

        我想我明白你的问题出在哪里。在 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 运行。

        您的问题:

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

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

        2-更改迁移名称,即更改用户表的那部分代码以这样的方式,即创建用户表的日期之后的日期。

        最后运行php artisan migrate:fresh

        【讨论】:

          猜你喜欢
          • 2016-08-09
          • 2020-05-01
          • 2016-05-14
          • 2017-10-12
          • 2016-11-24
          • 1970-01-01
          • 2015-06-25
          • 2015-11-11
          • 2016-10-14
          相关资源
          最近更新 更多