问题标签 [multi-database]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
36 浏览

mongodb - 将 Mongodb 和 Neo4j 用于单个应用程序,即 Polyglot Persistence

我正在开发类似于“craigslist”的移动应用程序,我们使用 node.js 和 mongoDb。

现在我们决定添加社交网络功能(喜欢、评论、关注者等),由于 nosql db 不适合,我开始寻找 graphql db,例如 Neo4j。

问题是如何与 mongodb 结合在一起。据我所知,处理这种情况的最佳方法是使用 Neo4j Doc Manager 并将文档从 MongoDB 自动同步到 Neo4j。这种方法的缺点是会产生额外的数据。

也许将graphql用作单独的数据库并仅将其用于社交网络功能而其余的通过mongodb处理是任何其他选择?

我感谢任何关于如何将这些东西正确地构建在一起的想法和建议。

0 投票
1 回答
183 浏览

php - 租户多租户 Laravel 单元测试问题

这是我为类别测试创建的测试用例。我在这条路线上得到 404,而我已经正确配置了租户测试用例,并且这条路线存在于在 chrome 浏览器上创建的子域上。

我的TestCase.php

我正在关注的文档 https://tenancyforlaravel.com/docs/v3/testing

结果:我想要 302 响应意味着重定向到登录代码。

0 投票
0 回答
375 浏览

laravel-7 - 不支持的驱动程序 []

我有多个数据库项目的 Laravel 项目在本地服务上运行良好,但是当我将项目上传到服务器时,它显示不支持的驱动程序 []错误 Laravel 版本7.0 php 版本7.4

登录后,我试图从索引页面上的第三个数据库获取数据,但显示错误

这是我的 database.php 文件

.env 文件

请帮助解决此错误。提前致谢

0 投票
0 回答
55 浏览

laravel - 在关系多个模式上使用 eloquent 的问题

我必须在我的 postgres 数据库上架构我想wherehas在我的关系上使用 eloquent 但它没有按预期工作。知道我应该在这里做什么吗?

到目前为止我做了什么:

我的第一次连接模型:

第二个连接

现在简单的查询效果很好,但是当我尝试使用 where has 这会给我这样的例外

错误 :

未定义表:7 错误:关系“opcos”不存在第 1 行:...84、$85、$86、$87、$88) 并且存在

正如我提到的那样简单的查询$query->with('opco')->find(99)->opco->name效果很好

0 投票
1 回答
253 浏览

django - Django 数据库路由器 - 你如何测试它们,尤其是对于迁移?

我已经阅读了Django 2.2 中关于数据库路由器的文档。我或多或少地理解这个概念 - 包括将某些表格放在一起 - 除了在实践中似乎有些棘手。

当事情变得复杂和相互依赖时,我的直觉是使用单元测试来逐渐让我的代码返回预期的结果。除了在这种情况下我不知道如何编写测试。

设置中的数据库:

设置中的路由器:

理想情况下,我会使用单元测试将我的所有模型一一提交给路由器的allow_migrate, db_for_read,db_for_write方法,并且对于每次调用,验证我是否得到了预期的结果。

但是有没有办法做到这一点?我想我可以使用

然后从单元测试中驱动这些方法调用。

但要采取只是

  • 我如何知道何时拥有**hints以及是否model_name始终提供?

  • 最重要的是,我如何模拟主路由器最终决定的内容,如文档中所述(我的重点)?除其他外,它不仅仅依赖于一个路由器,它会连续调用两个路由器,然后如果我的自定义路由器返回 None 则“做事”,因此通过单独调用它们来对我的路由器进行单元测试并不能真正复制主路由器的行为.

Django 的数据库操作使用主路由器来分配数据库使用量。每当查询需要知道要使用哪个数据库时,它都会调用主路由器,提供模型和提示(如果可用)。然后 Django 依次尝试每个路由器,直到找到数据库建议。如果找不到建议,它会尝试提示实例的当前 _state.db。如果没有提供提示实例,或者该实例当前没有数据库状态,主路由器将分配默认数据库。

我已经得到db_for_read并且db_for_write主要表现得很好,但我正在努力让迁移正常工作:大多数模型最终都是在userdb而不是default.

到目前为止,我正在做的是针对 2 个空数据库运行迁移并使用 postgresql 检查表的创建位置。删除数据库,调整路由器,重新运行。有没有更好的方法来单元测试哪个数据库获得什么模型表进行迁移的实际决策(写入和读取很好,不是这个问题的主要原因)?

0 投票
0 回答
41 浏览

python - 通过使用 pandas 中的另一个数据框数据将过程应用于数据框的行

我有两个数据框,比如说 dfr1 和 dfr2。dfr1 看起来像:

而 dfr2 看起来像:

我想通过使用 dfr2 对 dfr1 的每一行应用一个过程。假设 dfr1 的每一行都是一些点的坐标。另一方面,dfr2 的列是我们可以称为“站”的其他点的坐标。对于 dfr1 的每个点,我想计算与 dfr2 的每个点的距离,以便对距离进行排序。

让我们定义功能测试:

我已经学会了对 dfr1 的每一行应用测试:

如何将 dfr2 的某些元素传递给函数。由于 dfr2 将具有更复杂的结构,我不想在函数内部阅读它。这是我的真实原始文件的示例,其中包含车站数据:

我在stackoverflow的另一篇文章中找到了这个解决方案:

由于我一次只使用一行,我将其修改为

我确实喜欢这样一个事实,即我必须将它插入循环中,以便将每个步骤传递给函数的不同行。我有点担心计算速度。你怎么看?

0 投票
2 回答
700 浏览

ruby-on-rails - Rails NoMethodError(未定义的方法 `<<' for #):

背后的故事

我目前正在将我的 Ruby on Rails 应用程序更改为多数据库配置。切换的主要原因是将我的 Member(User) 和 Profile 表放在单独的数据库中,可以从另一个 RoR 应用程序访问;因此,除了使用 OAuth 和 Doorkeeper 之外,我还可以拥有单点登录功能。这是一个许多小时的项目,有许多疯狂的障碍。最后今晚似乎一切正常,直到我进行了规格测试,而我今天所做的工作之一就是扔旗子。

这是问题的适当代码,为简洁起见进行了简化。

任何帮助将不胜感激。谢谢你。

楷模

应用程序/模型/members_record.rb

应用程序/模型/member.rb

应用程序/模型/group.rb

应用程序/模型/group_member.rb

解决方法

现在,查看上面的代码,您应该会在组模型中看到一些有问题的解决方法。原始代码被注释掉了,下面有解决方法。这只是该代码:

这些变通办法的原因是,一旦该类引用不同数据库上的数据,该has_many关系就无法与该类一起使用。Member正在构建的 SQL 查询失败。因此,我创建了一个方法并whereMember模型上调用了 a 。这给了我正在寻找的成员名单。我必须在 9 次不同的情况下这样做。

现在我遇到的问题

在超过 100 个不同位置的代码中,我将成员或其他对象添加到给定列表中,例如使用此类代码的“受邀成员”。(这段代码具体在我的一个规范中,现在失败了)

第二行读取group.invited_members << member,然后我收到一条错误消息:

我的问题

我完全理解错误在说明什么,但不知道如何纠正它。是否有其他方法可以解决问题以允许<<保留?我非常希望只需要更改 9 次不同的解决方法,而不是重写 100 多个不同的实例,这些实例<<用于将成员或任何对象添加到被引用的列表中。

如果您需要更多详细信息,请告诉我。再次感谢你!

0 投票
2 回答
106 浏览

ruby-on-rails - 在日志中包含 Active Record 查询的角色

Rails 现在包括对多个数据库角色的支持(默认情况下writing主要和reading副本):

在开发中,默认情况下会记录 Active Record 查询,例如:

如何在日志记录中包含用于查询的角色?例如:

0 投票
1 回答
52 浏览

asp.net - Asp.net 5 处理多数据库结构

我正在尝试通过自动迁移来实现多数据库结构。数据库不可数,我无法设置固定的连接字符串。我尝试了很多方法来处理它,有些方法有效但无法处理自动迁移。 我有两个不同的 DbContexts 和不同 的连接字符串问题是:这是处理它的好方法还是有更好的方法?

0 投票
1 回答
163 浏览

database - 多租户、多数据库 Laravel 管理最佳实践

我正在寻找构建一个多租户 Laravel 应用程序,这是一个学校管理系统,它有一个代码库,但每所学校都有多个数据库。该系统将有 800 所学校(租户),每所学校都有自己的用户(教师和学生)。

如何使用 Laravel 实现上述功能?我可以或应该使用上述的包或 laravel 本机实现吗?

每次注册学校,如何在域上自动创建子域,并在AWS EBS或Heroku上自动加载新租户

如何运行一次迁移到所有多个数据库?