分类: Artisan 命令
-
本文记录了将 Laravel 8.x 项目 LaraBBS 部署至 Heroku 并使用 ClearDB 实现 MySQL 数据库连接的过程。文中详细说明了 Procfile 创建、应用构建包声明及代码推送等步骤,并重点解决了数据库索引长度超限、数据迁移冲突及 Composer 包安装失败等问题。最终通过修正代码配置及导入本地数据,成功验证了线上应用的部署。
-
在添加外键约束时遇到 SQLSTATE[23000] 报错,提示无法添加或更新子行。经分析,原因是 topics 表中存在用户 ID 为 9 的记录,但在关联的 users 表中已找不到对应的父记录。通过删除 topics 表中用户 ID 为 9 的脏数据再次执行命令,最终成功解决了报错,并顺利添加了外键约束 topics_user_id_foreign。
-
执行 php artisan larabbs:calculate-active-user 命令时报错 Class ‘Redis’ not found,经排查该命令使用缓存并依赖 Redis 驱动。编辑 .dev 文件,添加配置项 REDIS_CLIENT=predis 后,再次执行命令成功解决报错问题。
-
在执行 sail artisan migrate 命令时遇到 chmod(): Operation not permitted 报错,随后运行 sail composer dump-autoload 也返回了相同的错误。通过执行 sail up -d 命令重新启动 Laravel Sail 容器后,再次运行 sail artisan migrate 命令,操作成功执行且不再报错,问题得以解决。
-
在 Laravel 8.x 部署至 Heroku 执行数据库数据填充时遇到 Class Faker Factory not found 报错。这是由于 Heroku 生产环境未安装依赖包导致的。解决方法是编辑 composer.json 文件,将 fakerphp/faker 从 require-dev 移至 require 中。建议在 Sail 环境执行 sail composer update 更新依赖。重新推送至 Heroku 后再次执行填充,问题解决,不再报错。
-
在 Windows 10 中执行 PHP 命令行时,因 POSIX 扩展不可用导致调用 posix_getpid 函数报错。查阅官方文档确认该函数不支持 Windows 平台,建议使用 getmypid 替换。修改代码后再次执行,又因 posix_getppid 函数报错,经查该函数同样不适用于 Windows。最终通过判断当前系统环境,针对 Windows 平台采用替代方案解决了报错,命令行恢复正常执行。
