我最近刚从事一个本地项目,并且已经和一个在线服务器进行了同步.
问题是,现在它涉及数据库功能.这意味着每当我在本地进行数据库更改时,我必须访问该网站的cPanel,输入PHPMyAdmin,删除整个数据库并复制我从本地版本导出的SQL查询.
当您有多个开发人员和潜在的多个分支机构和/或服务器时,环境会频繁变化,这是开发中更具挑战性的方面之一.然而,很难说如何影响你,因为我们什么都不知道确切的情况.
您当前操作的一个要素可能是消除登录各种接口和使用脚本来实现所需要的需要 – 少用户手册;更自动化…最基本的,您可以创建一个PHP脚本:
>备份您的生产数据库并将其保存为唯一的备份
>应用您的更改(或者,如果需要,全部重新构建)
>如果出现问题,允许您恢复备份
一般选项:
更新不会重新构建
没有必要删除整个数据库并在任何环境中重新构建,除非所有的数据发生变化(需要).在最基本的结构/模式更改需要更多的完全重新构建.
复制
可以使用主主机或主从复制来同步MysqL数据库,但有时这在某些环境中是过度的,并且可能会破坏功能,除非它非常仔细地进行管理.如果您在本地进行了更改(在开发环境中),则可能会破坏远程站点功能
使用框架工具
如果您使用的是现代框架,那么它们中的许多工具可以帮助数据库更新和更新(并可能回滚)的功能,但往往不够完美,因为您可能需要更新不可用的特定数据或表很容易回滚.
我目前的设置
¬ multiple local developers ¬ multiple dev branches ¬ development ¬ staging server live
在我们的例子中,我们使用一个自定义脚本(和链接的sql文件),允许每个开发人员通过从命令行运行以下命令来应用更改并提升对分支的更改:
PHP migrate.PHP server/branch update
要么:
PHP migrate.PHP server/branch rollback
这可以简化为一个基本的设置,但我不知道如何不知道更多.
默认情况下,值得在dba.stackexchange.com上提出这个问题,因为您将获得严格的针对DB的响应.