gpt4 book ai didi

CodeIgniter 4 plus Myth/Auth 在通过 php spark migrate -all 运行迁移时抛出错误

转载 作者:行者123 更新时间:2023-12-04 09:01:08 24 4
gpt4 key购买 nike

我发现了一些连贯的行为,我有一个 CI4 项目,我正在从事几周以来的工作。一切都很好,但直到现在我一直在我的本地机器上处理这个项目。当我想在笔记本电脑上运行项目时,当我尝试使用 php spark migrate -all 运行迁移时遇到错误

CodeIgniter CLI Tool - Version 4.0.4 - Server-Time: 2020-07-20 06:16:02am



Running all new migrations...

An uncaught Exception was encountered



Type:        CodeIgniter\Database\Exceptions\DatabaseException

Message:     Unable to connect to the database.

Filename:    /opt/lampp/htdocs/sms/vendor/codeigniter4/framework/system/Database/BaseConnection.php

Line Number: 425
该项目包括神话/身份验证,所以我尝试使用 php spark migrate 运行“我的”迁移。效果很好,完全没有问题,表格在那里,没有错误。只是为了好玩,我将我的数学/身份验证迁移从供应商文件夹移动到“正常”数据库/迁移文件夹,并且能够以这种方式迁移它们。
这是非常连贯的,尤其是因为在我以前使用的 PC 上一切正常。当设置一个新的 MySQL/MariahDB 数据库时,我可以使用 php spark migrate -all 运行迁移而没有任何错误。但不知何故只有那里。
我能够在我的 Manjaro 分区、Windows 10 分区和 iMac 上的笔记本电脑上重现该错误。
因此,如果您想重现错误,请执行以下操作:
  • composer create-project codeigniter4/appstarter whatever
  • 重命名 env到 。 env
  • 设置 CI_ENVIRONMENT = development并且显然取消注释该行
  • 在 .env 中配置和取消注释您的数据库设置
  • 使用 > php spark migrate:create AddBlog 创建一个示例迁移,如文档中的迁移示例。
  • 将以下内容添加到新迁移并保存文件:
    伪造->addField([
    'blog_id' => [
    '类型' => 'INT',
    '约束' => 5,
    '无符号' => 真,
    'auto_increment' => 真,
    ],
    '博客标题' => [
    '类型' => 'VARCHAR',
    '约束' => '100',
    ],
    '博客描述' => [
    '类型' => '文本',
    '空' => 真,
    ],
    ]);
    $this->forge->addKey('blog_id', true);
    $this->forge->createTable('blog');
    }

    公共(public)函数向下()
    {
    $this->forge->dropTable('blog');
    }
    }

  • 运行 > composer require myth/auth
  • 编辑 app/Config/Email.php 并验证 fromName 和 fromEmail 是否设置为发送电子邮件以重置密码等时使用的设置。
  • 编辑 app/Config/Validation.php 并将以下值添加到 ruleSets 数组:\Myth\Auth\Authentication\Passwords\ValidationRules::class
  • 确保您的数据库设置正确,然后运行身份验证迁移:php spark migrate -all
  • 结果,您也会遇到上述错误。我无法
    解决这个错误,除了系统在使用
    第一的。
  • 如果你只是使用 php spark migrate它将迁移示例迁移而不会出现任何错误
  • 最佳答案

    我在 Kubuntu 18.04 LTS 上运行 CI 4.04,运行 apache2.4.29 和 PHP 7.4.9
    简短的回答是...
    使用 php spark migrate -all在它知道的任何地方搜索数据库/迁移文件夹和文件。
    恰好有一个这样的文件夹/文件在

    tests/_support/Database/Migrations/2020-02-22-222222_example_migration.php
    添加的位以使简短答案更长
    所以我们看到的数据库错误是由于没有在 中为 $tests 设置数据库凭据。/app/Config/Database.php
    它所做的只是寻找连接到 $tests 下设置的数据库,但似乎并没有像我们不希望的那样实际运行。
    当 ENVIRONMENT 设置为“测试”时,这似乎已启用。
    所以暂时3个选项...
  • 忽略错误。但这总是让你想知道到底发生了什么。
  • 设置 $tests 数据库的凭据。 (没有真正的保证。)或
  • 如果您不使用它,请删除/重命名测试文件夹。 (别再找了。)
  • 将使用 -n 开关/选项并指定要使用的命名空间(但不确定是否有效。)
  • 关于CodeIgniter 4 plus Myth/Auth 在通过 php spark migrate -all 运行迁移时抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63557326/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com