大家好日子,
我目前正在Laravel开发一个项目。到目前为止,我一直在线开发,通过FTP直接在网络服务器上编辑我的文件(使用PSPad或类似的简单编辑工具)。
我现在要做的事情(以及我相信大多数人实际做的事情)是在我的本地机器上设置(W)LAMP堆栈并在本地编程。但是,我有点不清楚如何使我的本地代码(包括数据库)与实时网站保持同步。你们是怎么做到的?我知道可能有很多方法和工具可以做到这一点,但您对最佳实践的建议是什么?任何建议都会非常受欢迎:)
答案 0 :(得分:2)
许多公司做的是脱机构建,然后使用git
将其编辑推送到服务器。
我不是这个软件的专家,所以用基本形式描述你做的事情:
我的建议是在您编辑/更新时创建一个在线仓库(存储库)来存储您的项目。
有git
个项目管理系统,例如github
或bitbucket
。我个人使用bitbucket
git
的作用是,当您在本地(w)指示灯上构建或添加离线所需的内容时,然后git push
将它们发送到您的仓库或服务器。然后,已更改的文件将与repo或服务器上的现有文件合并。如果你想要项目的最新版本,你只需要git pull
它们。
答案 1 :(得分:1)
我们的平台中有一个设置数组,可用$ res :: Config。
在运行时,在检查HTTP主机后,变量从“dev”更改为“live”,显然取决于IP地址。
在我们的框架引导中,取决于$ res :: Config-> $ env的值,或者先前设置为dev或live的环境,设置数据库连接的设置。您可以将这些设置作为db_live或db_dev存储在Config数组中。
但是,您可以使用环境变量来确定是否需要实时或开发,并相应地设置和设置数组。
我们还有沙箱和分段用于间歇性开发阶段。
对于版本控制,请使用git或subversion。
编辑:也可能在我们的 vhost 文件中,我们将环境变量设置为live或dev,我们的应用程序会相应地从中读取。我建议这种做法:)
答案 2 :(得分:1)
有很多方法可以做到这一点。但这是一个你曾经问过的一个看似巨大的问题。 这是一些很好的实践建议 - 去研究这些项目,然后看看我的方法。
通常,您使用名为版本控制的进程,它允许您创建系统的“版本”或快照。 常用的“SVN”软件很好,但是新的(实际上不再是)小孩就是GIT,我个人推荐这个。
您可以使用此系统以受控方式推送代码库。虽然文件/上传功能与FTP基本类似,但它允许您实时转储特定版本的站点。
在有多个开发人员的环境中,这是理想的 - 您可以比较/测试并相互协作,版本控制往往会阻止开发人员之间的错误。
所以 - 建议第1部分:查找并理解版本控制,然后使用它将CODE发布到实时环境。
第2部分:我使用数据库转储并将它们运回我的机器中进行处理。 如果实时数据库需要更新,我可以在本地工作,只需导出,然后在实时系统上重新导入。
例如:在我最近工作的Moodle项目中,刷新整个数据库需要几秒钟......我可以在几分钟内推送补丁和数据库更新。 但是:您应该考虑维护和安排...如果站点是实时的并且持续的数据更改,那么您需要小心这一点。考虑添加维护页面。
建议2:研究SQL转储/导出和导入。
我个人使用phpmyadmin转储和重新导入,因为它非常方便。
建议3:在当地工作然后推动现场实践是更好的做法。你正在开始一条比你更安全,更好的道路!
希望有所帮助......但要记住 - 这是一个很大的主题,所以你需要研究一下。