嗨,各位主持人,
假设我已在生产服务器上部署了Laravel应用程序,如何在不影响生产数据的情况下修改和更新该应用程序?
假设我想发布应用程序的下一版本,其中包含针对表Users的其他几列。
问题是我应该将数据库从实时克隆到暂存吗? 即使有来自登台的其他表/列,在不影响生产数据库的情况下,修改登台应用程序并将其部署到生产环境的正确方法是什么?
当前,我运行两个不同的环境,删除生产表并从暂存导入。听起来效率不高。
从分阶段升级到生产的任何更好的主意?
谢谢!
不幸的是,我曾试图四处搜寻,但并没有带来好运。
答案 0 :(得分:0)
假设我想发布应用程序的下一版本,其中包含用于表Users的其他几列。
是的,这样编写新的迁移:
Schema::table('users', function (Blueprint $table) {
$table->string('email'); // Adding
$table->string('name', 50)->change(); //Changing
});
要添加,更改类型,重命名和删除列,还必须安装:composer require doctrine/dbal
在文档中查看更多信息:https://laravel.com/docs/5.6/migrations#creating-columns
问题是我应该将数据库从实时克隆到暂存吗?即使有来自登台的其他表/列,在不影响生产数据库的情况下,修改登台应用程序并将其部署到生产环境的正确方法是什么?
...
从分阶段升级到生产的任何更好的主意?
我假设您正在使用Git。一台服务器,您可以放下应用程序一段时间,也许可以在较少用户使用系统时进行更新。
只需确保您的迁移总是回滚!
如果要在登台或开发过程中使用实际数据,则可以在迁移后进行另一次备份/转储。