问题标签 [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 回答
150 浏览

database - SAAS 多租户应用程序 + 连接不同的数据库问题

我正在使用 Laravel 开发一个 SAAS 应用程序。我有一个主数据库和多个租户数据库。由于我是管理员,我想检查租户的表现和租户的详细信息。对于前。大本营。我想检查在租户应用程序中创建了多少帐户以及注册了多少项目以及禁用/启用租户应用程序用户的选项。

我的想法是查看这些租户报告,我将仅为这些报告连接/切换到租户数据库并进行处理。但是,如果我有 1000 个租户,则意味着需要连接 1000 个数据库才能经常查看所有报告。这是一个好的过程还是关于如何实施它的任何建议?

0 投票
0 回答
27 浏览

ruby-on-rails - Rails 如何迁移多数据库

如何在 Rails 中构建多数据库环境?

当然,我知道,使用“建立连接”允许连接指定的数据库,但不再适合迁移。

在最好的情况下,当“rake db:migrate”时,每个表都在相关的数据库中创建。

我的环境如下:

Ruby 2.1.1
Rails 4.1
MySQL 5.6.13

0 投票
1 回答
301 浏览

django - Django 从 URL 中选择数据库

我有一个多数据库 Django 项目(Python 2.7、Django 1.4),我需要通过该请求中的 url 选择在请求中触发的每个事务中使用的数据库。

前任:

将触发在每个事务中使用“db1”,如下所示:

这就是我的问题所在。它几乎不可能在每次调用 'Model.objects' 时都包含 '.using(dbname)' 函数(这个项目已经有 2 打模型,并且它的构建考虑到了缩放,所以它可以有数百个模型,而且几乎每个模型都有(或可能有)一个 post_save/post_delete 的实现,它充当数据库触发器)。

有没有办法告诉 django 他应该为这个或那个请求更改默认数据库?

我已经有一个自定义查询集和一个自定义管理器,所以,如果我可以告诉他们数据库应该是这个或那个可以解决问题(我找不到任何地方如何在其中获取请求数据)。

任何帮助将不胜感激。

0 投票
1 回答
115 浏览

ruby-on-rails - 多站点 Rails/Jruby 站点具有 ActiveRecord::AdapterNotSpecified 数据库配置未指定适配器问题

尝试基于下拉菜单更改 Web 应用程序架构。我有一种感觉,我没有拉下拉选择。

模型:

控制器:

下拉菜单在我的导航栏上并在 _nav.html.erb 中拉入:下面是 _dbform.html.erb

生产和开发相同的database.yml。

我不确定我做错了什么。

0 投票
1 回答
43 浏览

python - Django,测试和多数据库

我已经开始为我的 django 项目编写测试。但是我有疑问如何解决一个问题。由于我的项目有很多数据库,并且在我的函数中,我有类似的行

多亏了我正在从选定的数据库中检索数据。众所周知,在测试 django 时,会创建带有前缀 test_ 的新数据库。那么在这种情况下,我是否必须重构我的整个代码并摆脱这些行?或者也许在测试 django 时会自动创建从“companies_db”到“test_companies_db”的路由?

0 投票
0 回答
553 浏览

spring - Spring Boot 等价于 XML 多数据库配置

我想将两个项目移植到 Spring Boot 1.1.6。它们是更大项目的每个部分。他们都需要在每个基于 Web 请求的区域中与 7 个生产数据库中的 1 个建立 SQL 连接。其中之一将配置设置保存到 Mongo 数据库。它们目前都可以使用,但 SQL 配置是基于 XML 的,而 Mongo 是基于 application.properties 的。我想在发布之前移动到 xml 或注释以简化维护。

这是我在这个论坛上的第一次尝试,我可能也需要在那个领域得到一些指导。我把多数据库标签放在那里。其中大多数处理一次打开的两个连接。这里只有一个,只有 URL 改变。Schema 和其余部分相同。

在 XML 时尚...

每次发出请求时,都会使用适当的数据库连接创建所需服务的新实例。

在 Spring Boot 世界中,我遇到过一篇扩展 TomcatDataSourceConfiguration 的文章。 http://xantorohara.blogspot.com/2013/11/spring-boot-jdbc-with-multiple.html这至少允许我创建一个java配置类但是,我无法想出一种方法来改变前缀每个请求的 ConfigurationProperties 就像我对上面的 XML 所做的那样。我可以设置多个配置类,但 DAO 中的 @Qualifier("00002") 必须是静态值。//注解属性Qualifier.value的值必须是常量表达式

在 Mongo 方面,我可以在 configurationProperties 类中定义变量,如果相应的 application.properties 文件中有匹配的条目,它会用文件中的值覆盖它。如果不是,它使用代码中的值。这不适用于 JDBC 端。如果您在配置类中定义了一个变量,则使用该值。(是的..我知道上面写着 mondoUrl)

今天有一个问题让我更接近了。Spring Boot application.properties 值未填充答案向我展示了如何至少使 @Value 起作用。有了它,我可以设置一个获取@Value 的 dbConfigProperties 类。唯一的问题是@Value 获取的值仅在程序第一次启动时可用。除了在程序启动时在控制台日志中看到它之外,我不确定如何使用它。我现在所知道的是,在某些时候,在 dbConfigProperties 类的 @Autowired 中,它确实返回了适当的值。但是,当我想使用它时,它返回的是 ${spring.datasource.url} 而不是值。

好的...有人请告诉我@Value 不是我唯一的选择。我将以下代码放在我的控制器中。我能够可靠地检索一个值,耶。我想我可以将属性文件中每个可能的属性名称硬编码到该函数的参数中并填充一个类。我显然做错了什么。

这太棒了……终于有了一些进展。我相信我正在放弃更改 ConfigurationProperties 并为此使用 @Value。有了这个人的回答,我可以访问启动时创建的 bean。你们可能都想知道为什么我一开始没有……还在学习。我在顶他。那救了我的培根。https://stackoverflow.com/a/24595685/4028704

现在的计划是为每个区域创建一个 JdbcTemplate 生成 bean,如下所示:

当我调用我的服务时,我会使用这样的东西:

仍然对更好的方法或对可预见的问题等的洞察力持开放态度,但这种方法似乎与我目前基于 XML 的方法相当。想法?

0 投票
0 回答
113 浏览

python - Django 多数据库支持

注意:我已经在 docs.djangoproject.com/en/dev/topics/db/multi-db 浏览了 Django 官方文档,但页面上没有任何内容回答我的问题。

我带领一个团队开发了两个 Django Web 应用程序,我们已经到了一个阶段,我们希望将每个站点上的功能都提供给彼此。通过这样做,我们将遵守 DRY 原则。

案例分析

站点 A 具有 A+ 功能,我希望通过 Django Queryset 在站点 B 上提供它,反之亦然。

至今

我在两个站点的 settings.py 文件中定义了数据库配置,在这篇文章的帮助下为所有应用程序添加了一个通用路由器配置:http: //diegobz.net/2011/02/10/django-database- router-using-settings/ 并且可以使用 from django.db 导入连接从两个站点成功查询 A 和 B 的数据库。但是,使用以下内容:

我得到对象数据的列表,而不是查询集。

问题

  1. 这是解决上述问题的正确方法吗?
  2. 有没有办法使用上述实现导入/返回查询集/可迭代模型对象?
  3. 是否有可以处理 Django 多数据库连接的 API?如果是,请提供链接?

感谢您的时间。

我的解决方案(暂时)

看来我之前计划使用的策略有点矫枉过正。所以,我决定采用不同的策略。然而,它似乎让我半途而废,但我预见它会导致干燥。

解决方案是让两个站点上的 REST-API 以 json 格式返回数据。

即调用站点A的API,加载返回的数据并在站点B进行处理。

0 投票
1 回答
553 浏览

c# - 在一个 asp 应用程序中使用 2 个(或更多)数据库并切换连接字符串

我有一个 ASP 应用程序,我想在 2 个(或更多)地方使用它,每个地方都有自己的数据库,现在有没有办法在用户登录时更改连接字符串?或者无论如何要为每个用户更改数据库?

我以前看过这个问题

如何设置单代码多数据库 ASP.NET SaaS 应用程序

但我不知道它是如何工作的!

请帮我

编辑:

我找到了解决此问题的方法,我将每个用户的连接字符串保存在数据库中,识别后我将找出该用户的连接字符串,然后将其分配给我的数据源等...

保存的连接字符串

ASP

C#

对于 Linq 到 SQL

我希望对其他有这个问题的人有用

0 投票
2 回答
112 浏览

grails - 无法在来自不同数据库的两个表之间建立关系

我有以下用例:

  • [User.groovy]: 映射到auth mysql 数据库中的用户表 。

  • [Project.groovy]: 映射到pm mysql 数据库中的项目

当我在两个类之间添加这种关系时

我有这个错误:

表项目中的关联引用了一个未映射的类:abdennour.auth.User

0 投票
2 回答
559 浏览

python - SQLAlchemy - 多个数据库问题

我们正在使用 SQLAlchemy 制作游戏服务器。

因为游戏服务器必须非常快,所以我们决定根据用户 ID(整数)来分隔数据库。

所以例如我成功地做到了如下。

下一个代码将创建多个数据库。

会有 test1 ~ test10 数据库。

以下代码将创建 10 个独立的引擎。

get_engine() 函数将根据用户 ID 为您提供引擎。

(用户 ID 为整数)

通过运行准备函数,将准备好 BuddyModel 类,并将其映射到引擎。

**下一个代码将做我想做的事**

但问题是,当我在多个线程中执行此操作时,它只会引发错误

错误信息是...

所以..我的问题是,我如何使用 SQLAlchemy 像上述架构一样做多数据库?