问题标签 [multiple-databases]

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 投票
1 回答
3298 浏览

asp.net-mvc - 使用 NHibernate 和 Autofac 管理多个数据库

我想我会在自己思考解决方案时提出这个问题。

在构建了大部分应用程序之后,我有最后一分钟要求支持读取/写入额外的数据库(总共 2 个,不知道其他数据库)。我使用 NHibernate 构建了应用程序,Autofac 提供了 DI/IoC 组件。FWIW,它驻留在 ASP.NET MVC 2 应用程序中。

我有一个接受 NHibernate 会话的通用存储库类。IRepository<>从理论上讲,只要传递给它的会话是从适当的 SessionFactory 产生的,我就可以继续将这个通用存储库 ( ) 用于第二个数据库,对吗?

好吧,当应用程序启动时,Autofac 就是这样做的。关于 Session 和 SessionFactory,我有一个模块说明:

其中,返回基本 SessionFactory 的 ConfigureNHibernate() 如下所示:

目前,这仅限于一个数据库。在任何其他 NHib 场景中,我可能会将单独的 SessionFactories 的实例推入散列,并根据需要检索它们。我不想重新设计整个东西,因为我们已经非常接近主要版本了。所以,我猜我至少需要修改上面的方法,以便我可以独立配置两个SessionFactories。我的灰色区域是我将如何指定正确的工厂用于特定的存储库(或至少用于特定于第二个数据库的实体)。

在以这种方式使用 IoC 容器和 NHibernate 时,任何人都有过这种情况的经验吗?

编辑 我已经删除了一个 GetSessionFactory 方法,该方法采用配置文件路径,检查 HttpRuntime.Cache 中是否存在匹配的 SessionFactory,如果不存在则创建一个新实例,并返回该 SessionFactory。现在我仍然需要敲定如何告诉 Autofac 如何以及何时指定适当的配置路径。新方法看起来像(大量从比利 2006 年的帖子中借来的

0 投票
0 回答
599 浏览

ruby-on-rails - 带有独立数据库的 Rails 引擎

我通过谷歌搜索这个主题找不到任何东西。我的任务是使用 Rails 引擎 (v2.3.10) 将两个 Rails 应用程序合并为一个。我正在尝试将一个应用程序的数据库迁移到另一个。我最初的想法是使用此处发布的类似方法编写一个包含多个数据库使用的迁移。

基本上,加载 db 配置并定义两个 AR 类,每个 db 一个,然后用我的表类对这些 AR 类进行子类化。然后我可以遍历原始应用程序数据库中的所有内容并添加到新数据库(进行修改以匹配新模式)

然后我想我会更容易,如果引擎有某种内置的支持,或者如果有一个插件可以缓解这个多数据库连接。我很乐意手动完成这项工作,但我想看看是否有人知道这类事情的好解决方案。

只是寻找一个一次性的解决方案,因为最终我们将通过正在迁移到的数据库访问所有内容

0 投票
1 回答
668 浏览

ruby-on-rails - 在多个数据库上运行迁移/架构转储错误

对于访问错误数据库的表的简单迁移的 db:schema:dump 部分失败,任何人都有解决方法(没有猴子修补导轨)?我得到错误

* Mysql::Error: View 'database1.boxscores' 引用无效的表或列或函数或视图的定义者/调用者缺乏使用它们的权限:SHOW FIELDS FROM boxscores *

当 boxscores 在 database2 上时。ActiveRecord 模型设置为建立连接并且应用程序工作正常,只是迁移失败,并且只有模式转储的 b/c。

0 投票
1 回答
722 浏览

django - Django中非常独立的数据库中的“外键”

我正在编写一个使用两个不同数据库的 Django 站点。一个是本地的,我们称之为“Django”,它存储来自非常标准的安装的所有标准表——身份验证、站点、评论等——以及一些额外的表。

包括用户在内的大部分数据来自另一台服务器上的数据库,我们称其为“传统”数据库。

我正在寻找有关连接两个数据库的干净、pythonic 方式的建议,特别是关于用户的建议。

我正在使用代理模型,当我可以显式使用它时效果很好,但是当我将用户对象作为相关对象访问时遇到问题(例如,使用内置的 django 评论系统时)。

代码如下所示:

models.py:(指向 Django 数据库)

legacy_models.py:(指向“Legacy”数据库)

我还开发了自己的中间件,request.user代理User对象也是如此。

真正的问题是当我使用将用户作为相关对象的东西时,特别是在我控制较少的模板中。

在模板中:

除了创建使用我的代理用户模型的评论系统的包装版本之外,我还能做些什么吗?

0 投票
1 回答
2168 浏览

django - 我将 Django 与远程 Oracle 数据库一起使用,并收到“表不存在”错误

每当我在远程 Oracle 数据库中的表上使用 Django ORM 执行简单查询时,都会收到此错误:

这是我正在使用的模型:

我以前从未使用过 Oracle 数据库,所以我不确定如何调试这个问题。我确信我的用户有权限查看表格,因为我可以使用 Navicat 查看它。关于如何解决此问题的任何提示?

0 投票
3 回答
1828 浏览

asp.net-mvc - 使用 ASP.NET MVC 的数据仓库

在一台服务器上,有 20 多个结构相同但数据不同的数据库。我需要从所有数据库中收集一些数据(相同的查询)并存储在位于另一台服务器上的新数据库中。我决定使用 ASP.NET MVC 2,但使用超过 20 个“LINQ to SQL 类”(.dbml)文件似乎不合逻辑,因为所有数据库的结构都是相同的,如果我使用这么多数据库,它会重复这些文件。有没有一种简单的方法来使用一个 .dbml 文件(用于远程数据库)但只更改连接字符串?

0 投票
1 回答
531 浏览

mysql - MySQL 连接不同服务器上的数据库

所以,我有一个现有的数据库,其中包含一些用于一类用户的表。我们正在构建一个更通用的应用程序来处理公司所做的多种事情,而这类用户,称为主机,是我们公司多个程序使用的通用类型。我们希望(最终)迁移到一个集中式应用程序,因为现在我们有几个。但是,我们现在没有时间完全做到这一点。我需要为这些主机构建一个登录系统,并且我想开始迁移到这个新系统。我想不出一种合理的方法将遗留数据库中的那些表移动到新数据库,新数据库(当然)驻留在不同的服务器上,不想在 30 秒后刺伤自己的眼睛处理它。遗留数据库有许多报告依赖于当前主机表的加入。

我能想出的唯一东西似乎不是很好的主意。那些,从两个应用程序写入两个数据库(容易出现同步问题的无意义的数据复制),提供来自新应用程序的 API 并将返回的数据与记录集混合在一起(似乎......错误)。

任何人都知道如何处理这个问题?

0 投票
3 回答
4954 浏览

java - 带有 Tomcat DBCP 和多个数据源的 Spring JDBC

我正在使用具有多个数据源(满足多个 mysql dbs)并使用 tomcat dbcp 的 spring。我得到了一些奇怪的例外,比如

  • 找不到过程 - 当 proc 肯定存在于数据库中时
  • 无法从池中借用 - 本地开发设置,所以池肯定没有满

我觉得可能是这个问题,需要大家的意见:

我在我的 中jdbcTemplate定义了一个对象spring.xml,在我需要触发的每个查询中,我调用jdbcTemplate.setDataSource()以设置适当的数据源,然后用于simplejdbccall(jdbctemplate)执行 proc。

我是否应该同时定义多个jdbcTemplate对象,即每个定义的数据源一个。我在 上设置数据源jdbctemplate并执行存储过程的 bean 定义为prototype.

0 投票
2 回答
842 浏览

c# - Castle ActiveRecord 更改数据库正在使用中

我正在创建一个项目,其中将有一个主数据库(一些全局的东西)和文件(基本上是 sqlite 文件)。

显然,当用户单击“打开”并选择一个新文件时,我希望应用程序将加载这个新数据库。

实际上,我设法使用了 2 个配置文件 http://www.darkside.co.za/archive/2008/01/21/castle-activerecord-connecting-to-multiple-databases.aspx

但是,有两个问题:首先,xml文件中的密码是明确的,虽然这对于全局的东西来说可以,但对于用户创建的文件来说不是很好(我仍然不知道这是否是一个真正的问题,我必须询问他们是否想要文件的密码)。

另一个是每个文件的连接字符串会有所不同(是的,我必须更改路径!),所以我可以通过两种方式工作:

  • 创建数据库的本地副本,当用户按“保存”时,数据库将被复制到旧的
  • 找到一种方法来更改连接字符串或“在运行时”加载配置

我期待着 DifferentDatabaseScope,但我不明白:如果我使用它,我在哪里指定所有 NHibernate 配置?(我只需要传递一个连接对象!!!)

0 投票
4 回答
578 浏览

mysql - 如何一次查询多个位置的数据库?

我的公司在不同的地点有多个分支机构。每个分支都有自己的数据库(MySQL)。我需要在单个查询中查询这些数据库。任何想法如何完成这项工作?

谢谢你的帮助!