laravel-5 - Laravel 5 生产迁移——无法禁用迁移警告
问题描述
我正在尝试在生产模式下部署 Laravel 网站。该站点当前已部署,但我添加了一个数据库和一些迁移以及种子,迁移的部署失败。
日志向我显示迁移失败,因为生产模式显示了一个提示,上面写着
Migrating the database tables into your application
**************************************
* Application In Production! *
**************************************
Do you really wish to run this command? (yes/no) [no]:
>
Aborted
我已经尝试通过在我的部署脚本中将“yes”输入到迁移命令中来解决这个问题,但它没有用。大概我可以将模式更改为不生产,但我认为这不是一个合适的解决方法。我还尝试使用“--force”标志进行迁移,但它并没有阻止警告。
部署脚本
cd /home/forge/default
git pull origin master
npm install --save-dev cross-env
npm install
composer require nesbot/carbon:1.26.3
composer require tcg/voyager
composer install --no-interaction --prefer-dist --optimize-autoloader
npm run development
echo "" | sudo -S service php7.2-fpm reload
if [ -f artisan ]
then
php artisan config:cache
php artisan voyager:install
php artisan migrate --force
php artisan db:seed --class=CategoriesTableSeeder --force
php artisan db:seed --class=UsersTable --force
php artisan db:seed --class=BlogPostsTableSeeder --force
fi
有谁知道我如何在生产中禁用此警告,或者为什么 force 选项不抑制此警告以便我可以运行迁移?
谢谢!
解决方案
您也可以尝试使用该--no-interaction
标志,但看起来您所拥有的 ( --force
) 是正确的。您确定没有其他东西正在运行您的迁移,例如voyager:install
自动运行迁移或post-install
作曲家中的脚本吗?
也只是感兴趣,为什么要在 Forge 部署脚本中安装包。它们应该包含在package.lock
orcomposer.lock
文件中的 repo 中,因此您只需要运行install
.
推荐阅读
- python - 慢速 Python 集成员资格测试
- android - 如何在 Android XML 中旋转矩形?
- macos - 从 AppleScript 以 root 运行 macOS 应用程序
- php - 如何将 JSON 数组转换为 HTML 表(动态)?
- java - 如何使用 Java 流映射列表
到对象 Tgt? - docker - 无法在 Docker 中使用 Traefik 访问站点
- node.js - 为什么我不能在 Laravel 7 中成功运行 npm run dev?
- python - 将方程的解分配给新变量
- python - 创建解码器目标序列
- java - Netty 中的 MessageToMessageCodec 与 MessageToMessageDecoder 和 MessageToMessageEncoder