0

我有一个 Laravel 后端,它基本上用作我的数据库及其数据的 API 和仪表板。每天使用 Python 脚本将数据直接更新到数据库。有没有办法在 PHP 项目之外触发 Laravel Scout 更新(以便在 Algolia 中也更新该行)?

我认为唯一的选择是使用 Laravel api 来处理 python 脚本和数据库之间的更改,以便只有 Laravel 可以直接与数据库通信。

但是,如果有一种方法可以在不使用 Laravel 的情况下添加侦听器或其他方法,我真的更喜欢,因为 python 脚本真的很快。

4

2 回答 2

5

如果您想重新索引所有内容,这似乎是您的最佳方式,我将通过 Python执行。 php path/to/artisan scout:import "App\Model"

如果你想更新每个模型,因为你只会编辑一个非常有限的数字,就像 Giorgi 说的,我会使用 Algolia Python 客户端,直接调用 Algolia 的 API。它应该很容易写。 https://github.com/algolia/algoliasearch-client-python

于 2017-08-28T09:22:23.820 回答
1

有两种方法:

1)。您可以使用 Laravel API 将 Algolia 条目更新到数据库中。

2)。也许您可以使用 Algolia Python 库。

我建议你使用 Laravel API。您可以简单地从 Python 脚本调用 API URL。你需要编写清晰的 Laravel 控制器 API 的 PHP 代码,因为 python 速度很快,需要与 api 快速通信。


另外:您可以简单地使用名为 flask 的 Python 模块连接到您的 laravel 数据库并在数据库中进行所需的更改。(每个数据库都可以通过不同的编程语言进行管理,例如 PHP、Ruby on Rails、Python 等。)

只有 laravel 不能与您的数据库通信,它也可以从 Python 完成(但当然它主要也可以从 laravel 完成)。

于 2017-08-26T07:18:51.627 回答