Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更新实时网站的最佳实践_Php_Mysql_Database_Version Control - Fatal编程技术网

Php 更新实时网站的最佳实践

Php 更新实时网站的最佳实践,php,mysql,database,version-control,Php,Mysql,Database,Version Control,情况: 我刚刚用PHP和MySQL数据库部署了我的网站的第一个版本。我现在需要移动到我的网站版本2。 我通常在本地主机上构建网站,然后再将其移动到生产服务器 我现在想重组我的数据库。但我不清楚如何在不丢失/破坏现有用户数据的情况下做到这一点。 我担心在进行上述更改时,用户可能会试图对数据库进行编辑。 给你的问题 我需要在我的服务器上测试我的代码,但我不想在这样做时将其公开。处理这个问题的最佳做法是什么?这里有多种选择吗? 假设我在localhost中重新构造了数据库。如何在live server

情况:

我刚刚用PHP和MySQL数据库部署了我的网站的第一个版本。我现在需要移动到我的网站版本2。 我通常在本地主机上构建网站,然后再将其移动到生产服务器 我现在想重组我的数据库。但我不清楚如何在不丢失/破坏现有用户数据的情况下做到这一点。 我担心在进行上述更改时,用户可能会试图对数据库进行编辑。 给你的问题

我需要在我的服务器上测试我的代码,但我不想在这样做时将其公开。处理这个问题的最佳做法是什么?这里有多种选择吗? 假设我在localhost中重新构造了数据库。如何在live server上复制此重组?我是否需要在本地主机和生产服务器上运行每个查询?似乎效率很低-有更好的方法吗? 如何确保在重构数据库时 数据的神圣性不受损害,即我如何确保 数据库的版本在我完成工作之前不会更改? 假设我搞砸了,我需要撤销对代码的更改。恢复网站原始版本的最佳方式是什么?我是否需要检索备份版本并丢失任何临时更改? 是否有关于工艺流程的一般注意事项清单?如果有任何有用的链接,我们将不胜感激。 您可以在具有不同域的同一服务器上克隆生产站点。例如staging.yourdomain.com并使用密码保护它 您可以编写一个迁移sql文件,其中包含ALTER TABLE…的所有更改。。。。然后,您可以在部署过程中执行此迁移文件 您应该使用像capistrano这样的部署工具来自动化部署过程。 使用展开工具时,可以执行以下操作: 创建一个目录结构,允许您对版本进行符号链接 /www data->symlink to/releases/version2 /发布/版本1 /发布/版本2 在/releases下的新目录中部署php文件 备份生产数据库 执行部署所需的任何其他任务,如js缩小 最后,当每个任务正常运行时,将/www-data的符号链接更改为/release/version3 对于PHP,有一个库可以在数据库上编写迁移

至于软件,数据库可以有不同的版本。Phinx允许您通过API以编程方式编写迁移。每次添加迁移时,都会创建一个描述所有更改的文件。然后,您必须使用命令行界面CLI应用迁移


始终需要至少每天备份一次数据库表和数据。如果手动或不更改数据库时发生错误,您将有一个备份要还原。

生产中没有显示错误。记录它们。不要在您的live域上进行测试,在live主服务器上创建一个子域并在那里进行测试,这应该会给您提供相同的环境测试。这个问题非常广泛且基于观点,因此StackOverflow的主题不在这里。将来,提出具体、客观的问题。此外,不需要解释为什么你要发帖,或添加感谢;“那是多余的。”戴维马科贡。。我不太明白结束这个问题的理由。我得到了很有帮助的答案,没有一个是矛盾的,也没有什么不同的。问题已经很具体了,我得到的两个答案非常准确。老实说,这感觉像是为了中庸而中庸。@Sam-它之所以关闭,是因为它的内容广泛且基于观点。是的,你有两个答案。一个是图书馆推荐,一个是工作流。很可能会得到两个、一打或一百个以上。没有一个是客观的,这就是答案。StackOverflow就是这样的。这不是一个讨论论坛。这不是为了节制而节制。@DavidMakogon当然。。让你觉得更重要的是什么