【问题标题】:best solution to sync 2 mysql databases in a laravel project在 laravel 项目中同步 2 个 mysql 数据库的最佳解决方案
【发布时间】:2020-08-01 23:08:57
【问题描述】:

我有一个应该在本地主机中运行的 laravel 项目。 但是我们需要添加在应用程序的用户远离他的电脑时进行一些修改的能力,该应用程序在其主机上运行。 我知道我可以将整个项目部署在在线服务器上,但这个解决方案直到现在还不是一个选择。 我们只有一个弱的在线服务器(它比本地主机慢很多); 因此,当用户想要远程进行一些修改时,我们可以将这个弱在线服务器用于这些情况,这种修改几乎每天会不时发生两​​到三次,而本地主机将在一天剩下的时间里进行繁重的工作,这可能一天超过三四百个流程。 我不能在在线服务器上完成整个负载,而它非常慢,而且我们不需要很多在线好处,只是对于应用程序用户可能需要或可能不需要的两到三倍远程修改,所以我不能以 localhost 速度换取在线利益,而我每天只需要两到三次。 我能做什么解决方案。 我知道主从复制和主从复制,但这也不是一个选择。

有什么想法吗,提前谢谢你。

-------------关于两种环境(本地和在线)------------ 本地是运行 xamp 堆栈(apache、mysql、php)的 Windows 服务器是 linux(实际上不知道是哪个发行版,但无论如何我都无法在那里安装任何工具......只是带有 composer 的 php 包)

【问题讨论】:

  • 服务器上可用的有限更改意味着它在当前状态下可能没有用。请参阅答案onetwo。再搜索一些。当在线/离线都更改相同的数据时,棘手的问题是解析数据。对此有一个计划。
  • 和@Avi 我真的很感谢你的建议,但我仍然需要一个与用户交互最少的解决方案,这意味着如果没有自动解决方案,最多只有一个同步按钮或​​类似的东西。
  • 啊,我以为我分享的第二个链接提供了自动解决方案。
  • 在标题Automate daily MySQL synchronization via command line interface 下检查该艺术。希望能帮助到你。祝你好运。

标签: mysql database laravel data-synchronization


【解决方案1】:

我在上传我的 laravel 项目时遇到了同样的问题

只需使用 FileZilla 上传您的项目,即使在最差的互联网速度下您也可以做到。 并为自己省去麻烦。

【讨论】:

  • 为了加快上传速度,请使用 FileZilla 等 FTP 应用
  • 如果你上传你的 laravel 项目,你可以整天使用 localhost 并将数据库导出到服务器,非常简单;)
  • 谢谢@Reza 问题不在于上传项目,我想你误解了这里的问题。
  • @ Reza 我知道我可以从 phpmyadmin 或任何其他 mysql 程序导出和导入数据库,但是没有技术背景的用户怎么办,我也可以在语法上这样做,但这将是一个问题,当数据库规模不断扩大。想象一下,每天上传一个 200 或 300 mb 的文件超过一次,只需要同步两到三个新记录。
  • @ahmedshaheen 如果您想让用户这样做,您可以使用 SQLite 以及在您的管理页面 See Here 中将新记录同步到服务器上的 SQLite 文件的选项
【解决方案2】:

为了回答你的问题,如果我是你,我将在应用程序中创建一个 sync_data 表。并且同步数据表将负责记录各个实体发生的变化。

例如,如果您在 localhost 中更改客户数据,您将在 sync_data 中保存一个条目,例如 type=customer, id=10, action=update, synced=No强>。并且使用 cron,您可以定期将这些更新(通过保存的 id 获取客户记录)推送到您的在线服务器,这不会使您的在线服务器忙碌。此外,您的在线用户至少会拥有最新的数据。

【讨论】:

    猜你喜欢
    • 2014-01-23
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多