问题标签 [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 投票
3 回答
19694 浏览

sql-server - 使实体框架模型跨越多个数据库

做某事是否有效,例如

CREATE SYNONYM [dbo].[MyTable] FOR [AnotherDatabase].dbo.[MyTable]

然后修改实体框架的 edmx 文件以读取此对象,就像读取其他任何表一样?

我做了一个快速的示例测试,它似乎可以很好地选择和更新,但我想知道是否有任何理由不应该这样做

我通过创建指向第二个数据库的 edmx 文件来获取表定义,在那里构建实体,然后将定义复制/粘贴到第一个数据库的 edmx 文件中。

更新

如果有人感兴趣,我在这里写下了我为使 edmx 文件跨越多个数据库所做的工作。它包括用于生成同义词和合并 edmx 文件的脚本。

0 投票
2 回答
240 浏览

django - django:我如何停止保存(使用=)创建新的主键

在 django 中,我想将数据从一个数据库中的相同表复制到另一个数据库中的数据——从“db01”到“默认”。架构是相同的。

它可以工作,但插入到“默认”中的记录的主键与从“db01”中获取的主键不同。为了保持与其他表的完整性,pk 不得更改。django 文档部分选择-a-database-for-save建议由于实例“a”已经有一个主键,因此当将新记录插入“默认”时将使用相同的主键。我不能让它这样做。

有谁知道这是否可以做到?提前致谢!!

(这可能看起来像一个奇怪的设置,但应用程序白天在断开连接的上网本上独立运行,并且在所有上网本都停靠的夜间数据合并到主数据库中。我可以在 mysql 中做得很好,但想如果可能,请使用 django ORM。)

0 投票
3 回答
211 浏览

entity-framework - Similar Databases - Entity Model Framework

I have two (2) SqlServerCe SP2 databases in my DataAccess project.

For the purposes of this explanation, let's say one database is Company.sdf and the other is Private.sdf. Both databases have the exact same structure: Same tables, same column IDs, etc.

The Company.sdf database contains the latest information on all products, as downloaded from our company's server to allow Engineers and Sales Personnel to access information when network connections are not available.

The Private.sdf database contains any projects or scenarios that Engineers and Sales Personnel have created to build a system or estimate a cost.

I started by creating an Entity Model for the Company.sdf database called CompanyModel. I finally got the Entity Model to connect to it after some difficulty (Entity Framework Noobie).

Today, I created my second Entity Model for the Private.sdf database called PrivateModel. As soon as I did this, I got multiple errors stating that each member of my DataAccess project already contains a definition for a similar item in the other database.

R A T S !

How do I add Entity Models for similar databases?

The DataAccess project is going to be my DAL in my n-tier approach. While searching here for answers, I read RPM1984's response in 3013146 about how a model should know nothing about which database its connecting to - this is the job of your DAL Repository, but I'm not sure how to best do this for my situation.

0 投票
2 回答
888 浏览

symfony1 - 模型存储在多个数据库中的 Symfony 项目

我正在编写 Symfony 项目(使用 symfony 1.4 版本,Propel 作为其 ORM),其中一些数据存储在 MySQL 数据库中,而其他一些数据存储在 PostgreSQL 数据库中的另一台服务器上。

更准确地说,我想同时将一些模型存储在 MySQL 数据库中,并将其他模型存储在 PostgreSQL 数据库中,并且在没有显式数据库切换的情况下无缝执行(我的意思是 Propel 将使用正确的数据库连接和 SQL 方言来检索/存储数据)。MySQL 部分的模型与 PostgreSQL 没有关系。

是否可以?如果是,我也想知道如何设置开发环境(我想在开发和生产环境中访问不同的 MySQL/PostgreSQL 数据库)。

UPD:我发现了关于重新解决这个问题的问题:Symfony 中的多个数据库支持但我必须检查它是否适用于最新版本的 Symfony。

0 投票
1 回答
566 浏览

java - 使用 Java EE 和 Hibernate 的具有多个项目的 Web 应用程序

我有一个通用的设计问题困扰了我一段时间。

目标:

  • 使用 Vaadin 为前端创建 Web 应用程序
  • 用户必须能够在运行时创建项目。每个项目都使用相同的(域)模型,但数据不同
  • 每个项目的数据必须分开(到不同的数据库中)
  • 用户可以登录,选择项目并访问特定的数据库
  • 不同的用户可以同时处理不同的项目
  • 应用程序使用带有注释和编程配置的 Hibernate

现在的情况

  • 静态HibernateUtil在很多地方使用(getSessionFactory.getCurrentSession)
  • 使用 ThreadLocal 部分实现 Session-Per-View 模式以获取当前的应用程序实例,该实例通过使用 HTTPServletRequestListener 在查看请求之前和之后打开和关闭会话和事务来充当会话(和事务)管理器
  • 无法直接访问视图层的逻辑层:
    • 在某些部分,当前会话是通过使用静态 HibernateUtil
    • 在其他地方,通过构造函数设置会话管理器。然后将此会话管理器传递给 DAO 以提供用于数据检索的会话操作
    • 创建项目时,使用 Hibernates 创建选项来创建数据库(将来可以在创建时切换为静态 ddl 导入)

问题

可以想象,存在各种问题:

  • 静态访问 sessionfactory 以获取会话不适用于多个项目,因为静态 HibernateUtil 只能同时携带一个(db)url,因此会话会混合
  • 从逻辑层访问 SessionManager 不好(需要通过几个构造函数来提供)
  • 不同方法的混合是丑陋的,但目标是纠正这一点

想法

  • 实现依赖注入,即使在逻辑层也能提供正确的 DAOFactory。用 Guice 尝试过,但如果实例不是通过注入器创建的,则会得到空指针异常(请参阅我的另一个问题)。因此它不起作用。

我希望我可以在代码中的任何位置注入/使用正确的 DAO 工厂实例(可以访问正确的会话/数据库),而无需逻辑层知道当前加载了哪个数据库。所以逻辑层不应该关心会话处理或任何事情。我只想从任何地方拨打 xyDAO.find(id) 或类似电话,它会获得正确的数据库。我还认为,如果只有逻辑深处的一个类需要它,那么通过构造函数将 SessionManager 传递给多个类并不好。

您将采取什么方法来实现所述目标?

如果有人可以提供帮助,我将不胜感激。如果您需要更多信息,请告诉我,我会提供!

0 投票
3 回答
551 浏览

mysql - 如何在 2 个不同服务器上的 2 个不同数据库中的 2 个不同表上编写 MySQL 查询?

我有 2 张桌子

server1 上 database1 中的 table1具有userID 和 userName

server2 上 database2 中的 table2具有用户 ID

我需要一种方法来访问 server1 上的 table1 以获取 table2 中用户 ID 的用户名

如何使用 MySQL 进行查询?

0 投票
0 回答
1799 浏览

mysql - MySQL - 保持数据库与多个客户端同步的最佳方式

有数百个客户将使用他们管理自己的信息的 Windows 系统。该信息被发送到服务器进行分析(网络系统)。

客户端和服务器都将具有相同的数据库结构。有一些表格将通过 Windows 客户端更新,而其他表格将通过 Web 系统更新。很少有表可以在两者中更新。

问题在于我们需要保持这些数据库的同步。当前的方法是将所有“插入、更新、删除”语句存储在一个表中,并每天更新一次客户端(打开时)和服务器(关闭时)。

我不喜欢当前的方法,因为我认为它不是很安全(即使我们对数据使用强加密),我相信有更好的方法来做到这一点。

我刚刚迁移到使用 MariaDB,并且正在阅读有关 Aria 存储引擎的文章:

Aria 几乎可以重播日志中的所有内容。(包括创建/删除/重命名/截断表)。因此,您只需复制日志即可备份 Aria。

问题:

  • 您是否认为可以使用 Aria Logging 来解决我的问题(这与当前的方法有何不同)?

  • 有没有人有类似案例(多客户端同步)的经验?

  • 我只是有使用 MyISAM 和 InnoDB 的经验……还有其他存储引擎可以更好地处理这种情况吗?

### 更新(7 月 2 日)###

我探索了使用 MySQL 二进制日志及其自动复制的可能性。恕我直言,该方法非常适合服务器数据与客户端数据完全相同的情况。BLACKHOLE 存储引擎可用于仅同步确定的表(这可能非常有用)。就我而言,服务器和客户端具有相同的结构,但它们没有相同的数据。换句话说,服务器包含所有客户端的数据,每个客户端都有自己的数据集(保持相同的结构)。

尝试应用 MySQL 的自动复制,将需要在服务器中为每个客户端拥有一个数据库,这使得它更加复杂。

我想我会坚持原来的计划,因为它让我可以灵活地轻松查询每个客户端的更改(直到我找到更好的方法)。

0 投票
3 回答
8175 浏览

migration - Symfony2 使用教义 2 迁移多个数据库

我在 symfony2 + 学说 2 中有 2 个数据库 db1 和 db2,这两个数据库在表及其字段方面彼此不同。

我需要处理迁移。只要有一个数据库,一切就可以正常工作。

但是当有多个数据库时它不起作用。

另外,有什么方法可以提供实体管理器特定的迁移设置。

或者有什么方法可以在迁移类中提供连接或实体管理器。

0 投票
1 回答
1536 浏览

mysql - 拆分 MySQL 数据库

我有一个关于拆分数据库的问题。这是有问题的查询:

问题是现在数据库资金和产品将在不同的服务器上。解决办法是什么?我需要两个查询吗?我有点失落。

谢谢!

0 投票
2 回答
1251 浏览

android - Android ContentProvider 初始化不在应用程序启动时

是否可以在应用程序中初始化 contentprovider?

因为我需要为每个用户/服务器组合创建一个数据库,并且我正在使用 contentprovider 的 oncreate 方法中的登录信息创建数据库!