問題タブ [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.
sql-server - EntityFrameworkモデルを複数のデータベースにまたがらせる
次のようなことをすることは有効ですか?
CREATE SYNONYM [dbo].[MyTable] FOR [AnotherDatabase].dbo.[MyTable]
次に、Entity Frameworkのedmxファイルを変更して、他のテーブルと同じようにこのオブジェクトを読み取りますか?
簡単なサンプルテストを行ったところ、選択と更新には問題がないようですが、これを行うべきではない理由があるかどうかを知りたいと思いました。
2番目のデータベースを指すedmxファイルを作成し、そこにエンティティを構築してから、定義をコピーして1番目のデータベースのedmxファイルに貼り付けることで、テーブル定義を取得しています。
アップデート
誰かが興味を持っているなら、私はedmxファイルを複数のデータベースにまたがらせるために私がしたことをここに書きました。同義語を生成し、edmxファイルをマージするためのスクリプトが含まれています。
django - django: save(using=) が新しい主キーを作成しないようにするにはどうすればよいですか
django では、あるデータベース内の同一のテーブルから別のデータベース内のテーブルにデータをコピーしたいと考えています。「db01」から「デフォルト」へ。スキーマは同一です。
動作しますが、'default' に挿入されたレコードの主キーは、'db01' からフェッチされたものと同じではありません。他のテーブルとの整合性を維持するために、pk を変更してはなりません。django docs セクションselecting-a-database-for-saveは、インスタンス「a」にはすでにプライマリがあるため、新しいレコードが「デフォルト」に挿入されるときに同じプライマリキーが使用されることを示唆しています。私はそれをすることができません。
これができるかどうか誰にもわかりますか?前もって感謝します!!
(これは奇妙なセットアップのように思えるかもしれませんが、アプリケーションは日中は切断されたネットブックで独立して実行され、データはすべてのネットブックがドッキングされている夜間にマスター データベースにマージされます。mysql で問題なく実行できますが、可能であれば、django ORM を使用してください。)
entity-framework - 同様のデータベース-エンティティモデルフレームワーク
プロジェクトに2つのSqlServerCeSP2データベースがありますDataAccess
。
この説明のために、一方のデータベースがCompany.sdfで、もう一方のデータベースがPrivate.sdfであるとします。両方のデータベースの構造はまったく同じです。同じテーブル、同じ列IDなどです。
Company.sdfデータベースには、ネットワーク接続が利用できない場合にエンジニアと営業担当者が情報にアクセスできるように、当社のサーバーからダウンロードされたすべての製品に関する最新情報が含まれています。
Private.sdfデータベースには、システムを構築したりコストを見積もったりするためにエンジニアや営業担当者が作成したプロジェクトやシナリオが含まれています。
まず、 CompanyModelというCompany.sdfデータベースのエンティティモデルを作成しました。いくつかの問題が発生した後、ようやくエンティティモデルを接続できるようになりました(Entity Framework Noobie)。
今日、私はPrivateModelと呼ばれるPrivate.sdfデータベース用の2番目のエンティティモデルを作成しました。これを行うとすぐに、プロジェクトの各メンバーに他のデータベースの同様のアイテムの定義がすでに含まれていることを示す複数のエラーが発生しました。DataAccess
ラット!
同様のデータベースにエンティティモデルを追加するにはどうすればよいですか?
このDataAccess
プロジェクトは、私のn層アプローチのDALになります。ここで答えを探している間、3013146のRPM1984の応答を読んで、モデルが接続先のデータベースについて何も知らないようにする必要があります。これはDALリポジトリの仕事ですが、自分の状況に最適な方法がわかりません。
symfony1 - モデルが複数のデータベースに保存されている symfony プロジェクト
一部のデータがMySQLデータベースに保存され、他のデータがPostgreSQLデータベースの別のサーバーに保存されるSymfonyプロジェクト(PropelをORMとしてsymfony 1.4バージョンを使用)を作成しています。
より正確に言うと、いくつかのモデルを MySQL データベースに保存し、他のモデルを PostgreSQL データベースに同時に保存し、明示的なデータベースの切り替えなしでシームレスに実行したいと考えています (つまり、Propel は適切なデータベース接続と SQL ダイアレクトを使用してデータを取得/保存します)。MySQL 部分のモデルは、PostgreSQL との関係を持ちません。
出来ますか?はいの場合、開発環境をセットアップする方法も知りたいです (開発環境と本番環境で異なる MySQL/PostgreSQL DB にアクセスしたい)。
UPD: この問題について SO に関する質問を見つけました: Symfony での複数のデータベースのサポートしかし、Symfony の最近のバージョンで動作するかどうかを確認する必要があります。
java - Java EE と Hibernate を使用した複数のプロジェクトを持つ Web アプリ
しばらくの間、私を悩ませている一般的な設計上の質問があります。
ゴール:
- フロント エンドに Vaadin を使用して Web アプリケーションを作成する
- ユーザーは実行時にプロジェクトを作成できる必要があります。すべてのプロジェクトは同じ (ドメイン) モデルを使用しますが、データは異なります
- すべてのプロジェクトのデータを分離する必要があります (異なるデータベースに)
- ユーザーはログインしてプロジェクトを選択し、特定のデータベースにアクセスできます
- 異なるユーザーが異なるプロジェクトで同時に作業できます
- アプリケーションは、注釈とプログラムによる構成で Hibernate を使用します
現在の状況
- 多くの場所での静的な HibernateUtil の使用 (getSessionFactory.getCurrentSession)
- 現在の Application インスタンスを取得するための ThreadLocal を使用した Session-Per-View パターンの部分実装
- ビュー レイヤーに直接アクセスできないロジック レイヤー:
- いくつかの部分では、現在のセッションは静的な HibernateUtil を使用して取得されます
- 他の場所では、コンストラクターを介してセッション マネージャーを設定します。次に、このセッション マネージャーが DAO に渡され、データ取得と操作のためのセッションが提供されます。
- プロジェクトが作成されると、Hibernates create オプションを使用してデータベースを作成できます (将来的には、作成時に静的 ddl インポートに切り替えることができます)。
問題
ご想像のとおり、さまざまな問題があります。
- セッションを取得するための sessionfactory への静的アクセスは、複数のプロジェクトでは機能しません。静的 HibernateUtil は同時に 1 つの (db)url しか運ぶことができず、セッションが混在するためです。
- Logic Layer から SessionManager へのアクセスは適切ではありません (いくつかのコンストラクターを介して提供する必要があります)
- 異なるアプローチの混合は醜いですが、目標はこれを正すことです
考え
- 依存性注入を実装して、ロジック層でも正しい DAOFactory を提供します。Guice で試してみましたが、インスタンスが Injector を介して作成されていない場合は Null Pointer Exceptions が発生します (他の質問を参照してください)。したがって、機能しません。
たとえば、現在どのデータベースがロードされているかをロジックレイヤーが認識せずに、コードのどこにでもDAOファクトリーの正しいインスタンス(正しいセッション/データベースにアクセスできる)を挿入/使用できればいいのにと思います。したがって、ロジック層はセッション処理などを気にする必要はありません。どこからでも xyDAO.find(id) または同様の呼び出しを行い、正しいデータベースを取得したいだけです。また、ロジックの奥深くで 1 つのクラスだけが必要な場合、コンストラクターによって複数のクラスを介して SessionManager を渡すのは良くないと思います。
示された目標を達成するためにどのようなアプローチをとりますか?
誰かが助けてくれれば本当にありがたいです。追加情報が必要な場合はお知らせください。提供いたします。
mysql - 2 つの異なるサーバー上の 2 つの異なるデータベースに存在する 2 つの異なるテーブルに MySQL クエリを書き込む方法は?
私は2つのテーブルを持っています
userID と userNameを持つ server1 の database1 の table1
userIDを持つ server2 の database2 の table2
server1 の table1 にアクセスして、table2 の userID の userName を取得する方法が必要です
MySQL を使用してクエリを実行するにはどうすればよいですか?
mysql - MySQL - データベースを複数のクライアントと同期させる最良の方法
独自の情報を管理する Windows システムを使用するクライアントは何百もあります。その情報は、分析のためにサーバー (Web システム) に送信されます。
クライアントとサーバーの両方が同じデータベース構造を持ちます。Windows クライアントを介して更新されるいくつかのテーブルと、Web システムを介して他のテーブルがあります。両方で更新できるテーブルはほとんどありません。
問題は、これらのデータベースの同期を維持する必要があることです。現在のアプローチは、すべての「INSERT、UPDATE、DELETE」ステートメントをテーブルに格納し、1 日 1 回、クライアント (開いている場合) とサーバー (閉じる場合) を更新することです。
私は現在のアプローチがあまり安全ではないと思うので (データに強力な暗号化を使用していても) 好きではなく、それを行うためのより良い方法があると信じています。
MariaDB を使用するように移行したばかりで、Aria Storage Engine についてこれを読んでいました。
Aria はログからほとんどすべてを再生できます。(テーブルの作成/削除/名前変更/切り捨てを含む)。したがって、ログをコピーするだけで Aria のバックアップを作成できます。
質問:
私の問題を解決するために Aria Logging を使用することは可能だと思いますか (それは現在のアプローチとどう違うのでしょうか)?
同様のケース(マルチクライアント同期)の経験はありますか?
私は MyISAM と InnoDB の経験があります... この場合により良い他のストレージ エンジンはありますか?
### 更新 (7 月 2 日)###
MySQL バイナリログとその自動レプリケーションを使用する可能性を探りました。IMHO、その方法は、サーバーのデータがクライアントのデータとまったく同じである場合に理想的です。BLACKHOLE ストレージ エンジンは、決定されたテーブルのみを同期するために使用できます (これは非常に便利です)。私の場合、サーバーとクライアントは同じ構造を持っていますが、同じデータを持っていません。つまり、サーバーにはすべてのクライアントのデータが含まれ、各クライアントには独自のデータ セットがあります (同じ構造を維持します)。
MySQL の自動レプリケーションを適用しようとすると、クライアントごとにサーバーにデータベースが必要になり、複雑になります。
元の計画に固執すると思います。これにより、クライアントごとに変更を簡単に照会できる柔軟性が得られるからです (より適切な方法が見つかるまで)。
migration - Symfony2 で doctrine2 を使用して複数のデータベースを移行する
symfony2 + doctrine2 に 2 つのデータベース db1 と db2 があり、両方のデータベースはテーブルとそのフィールドに関して互いに異なります。
移行に取り組む必要があります。データベースが 1 つある限り、問題なく動作します。
ただし、複数のデータベースがある場合は機能しません。
また、エンティティ マネージャー固有の移行設定を提供できる方法はありますか。
または、移行クラスで接続またはエンティティ マネージャーを提供できる方法はありますか。
mysql - MySQL データベースの分割
分割データベースについて質問があります。これが問題のクエリです。
問題は、データベースのお金と製品が別のサーバーにあることです。解決策は何ですか?2 つのクエリが必要ですか? 私は少し迷っています。
ありがとう!
android - アプリケーションの開始時にAndroidContentProviderの初期化が行われない
アプリケーションでコンテンツプロバイダーを初期化することは可能ですか?
ユーザーとサーバーの組み合わせごとにデータベースを作成する必要があり、コンテンツプロバイダーのoncreateメソッドのログイン情報を使用してデータベースを作成しているためです。