Laravel Eloquent:在两个不同的数据库中保持与模型的所有交互同步
Laravel Eloquent: keeping all interactions with a model in sync in two different databases
我正在做一个标准的 Laravel 项目(只有一个 MySQL 数据库)。
现在我需要只有一个 table 与另一个远程数据库保持同步。因此,每个更改:创建、更新、删除,等等,具体 table 应实时传播/复制到远程。
我在问之前已经用谷歌搜索了,但是我在 Laravel 中没有找到一个聪明的方法来做到这一点,除了意味着进行每个数据库事务的明显方法在两个数据库连接上到该模型/table。
顺便说一下,我已经看到 Eloquent ORM 的 connection
protected 属性 为特定模型设置了默认数据库连接,但我正在寻找 有点像在 connection
属性.
中有一个数组 的值
到目前为止运气不好。
有什么想法吗?提前致谢。
如果您在 eloquent 个模型上进行所有查询,那么您可以利用 eloquent 个事件。
在您的活动中 listener/observer,您可以克隆模型并更改克隆模型上的连接,以便您可以在第二个数据库上执行查询。
我正在做一个标准的 Laravel 项目(只有一个 MySQL 数据库)。
现在我需要只有一个 table 与另一个远程数据库保持同步。因此,每个更改:创建、更新、删除,等等,具体 table 应实时传播/复制到远程。
我在问之前已经用谷歌搜索了,但是我在 Laravel 中没有找到一个聪明的方法来做到这一点,除了意味着进行每个数据库事务的明显方法在两个数据库连接上到该模型/table。
顺便说一下,我已经看到 Eloquent ORM 的 connection
protected 属性 为特定模型设置了默认数据库连接,但我正在寻找 有点像在 connection
属性.
到目前为止运气不好。 有什么想法吗?提前致谢。
如果您在 eloquent 个模型上进行所有查询,那么您可以利用 eloquent 个事件。
在您的活动中 listener/observer,您可以克隆模型并更改克隆模型上的连接,以便您可以在第二个数据库上执行查询。