問題タブ [legacy-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.
django - レガシー データベースを使用する Django
既存のデータベースの上に django プロジェクトを構築する必要があります。django docs で説明されているように inspectdb を使用し、次に syncdb を使用して django に必要なテーブルを作成します。
django 固有のテーブル (管理者権限、コンテンツ タイプなど) を追跡する方法はありますか? 必要に応じて、将来的にdjangoを完全に削除できるようにしたいと考えています。
ありがとう
nhibernate - NHibernateのレガシーデータベースマッピングは不可能ですか?
誰かがレガシーデータベースのマッピングを手伝ってくれることを願っています。ここで説明している問題は他の人を悩ませていますが、Web上で本当に良い解決策を見つけることができませんでした。
免責事項:これはレガシーDBです。複合キーを制御することはできません。彼らは吸うし、あなたが彼らが吸うと私に言っても変更することはできません。代理キーも追加できません。これらはオプションではないため、どちらも提案しないでください。
2つのテーブルがあり、両方とも複合キーがあります。一方のテーブルのキーの1つは、もう一方のテーブルからコレクションを取得するためのキーの一部として使用されます。つまり、キーはテーブル間で完全には一致しません。ClassBは、可能であれば、このマッピングのためにプロパティを追加することを避けたいすべての場所で使用されます。
ClassAのインスタンスを取得し、PolicyNumberに一致するすべてのClassB行を取得したいと思います。私は1対多で何かを実現しようとしていますが、これは技術的には1対多として扱っている多対多である可能性があることを認識しています。
アソシエーションクラスを使用してみましたが、機能するかどうかを確認するのに十分な距離がありませんでした。私はこれらのより複雑なマッピングに不慣れであり、アドバイスを探しています。私はほとんどどんなアイデアにもオープンです。
ありがとう、コーリー
ruby-on-rails - 新しい Rails アプリケーションでレガシー データベースを使用する際の問題
新しいRailsアプリケーションでレガシーデータベースを使用する際の通常の問題/つまずき/問題/欠点は何ですか?
古いデータベースを使用するか、移行スクリプトを作成して古いデータベースから新しいデータベースにデータを移行するかを決定する必要があります。何を提案しますか?
ruby-on-rails - Railsのスタイルのモジュラスに変換される事前に実行されたSQL
私はRailsの初心者であり、誰かがこれらのSQLをRailsの完全なモジュールに変換していただければ幸いです。質問することがたくさんあることは知っていますが、それらすべてにfind_by_sqlを使用することはできません。または私はできますか?
これらはSQLです(MS-SQLで実行されます)。
SELECT STANJA_NA_DAN_POSTAVKA.STA_ID,
STP_DATE,
STP_TIME,
STA_OPIS,
STA_SIFRA,
STA_POND FROM STANJA_NA_DAN_POSTAVKA
INNER JOIN STANJA_NA_DAN ON(STANJA_NA_DAN.STA_ID=STANJA_NA_DAN_POSTAVKA.STA_ID)
WHERE ((OSE_ID=10)AND (STANJA_NA_DAN_POSTAVKA.STP_DATE>={d '2010-03-30'})
AND (STANJA_NA_DAN_POSTAVKA.STP_DATE<={d '2010-03-30'}))
SELECT ZIGI_OBDELANI.OSE_ID,
ZIGI_OBDELANI.DOG_ID AS DOG_ID,
ZIGI_OBDELANI.ZIO_DATUM AS DATUM,
ZIGI_PRICETEK.ZIG_TIME_D AS ZIG_PRICETEK,
ZIGI_KONEC.ZIG_TIME_D AS ZIG_KONEC
FROM (ZIGI_OBDELANI
INNER JOIN ZIGI ZIGI_PRICETEK
ON ZIGI_OBDELANI.ZIG_ID_PRICETEK = ZIGI_PRICETEK.ZIG_ID )
INNER JOIN ZIGI ZIGI_KONEC ON ZIGI_OBDELANI.ZIG_ID_KONEC = ZIGI_KONEC.ZIG_ID
WHERE (ZIGI_OBDELANI.OSE_ID = 10)
AND (ZIGI_OBDELANI.ZIO_DATUM >= {d '2010-03-30'})
AND (ZIGI_OBDELANI.ZIO_DATUM <= {d '2010-03-30'})
AND (ZIGI_PRICETEK.ZIG_VELJAVEN <> 0)
AND (ZIGI_KONEC.ZIG_VELJAVEN <> 0)
ORDER BY ZIGI_OBDELANI.OSE_ID, ZIGI_PRICETEK.ZIG_TIME ASC
これらのSQLは毎日の労働時間であり、私はそれらをそのまま取得しました。また、(SQLからわかるように)Railsの規則にないデータベースを入手しました。PSとして:
STP_DATE> = {d'2010-03-30'})のようなものは、もちろん日付(スロベニア語の日付表記)であり、変数(date)に置き換えられるため、ユーザーは日付の開始日と終了日を選択できます。
このデータはすべて表の同じページに表示されるので、おそらくすべてが1つのモジュールに含まれているのでしょうか。または多く?; これが役立つなら、多分。
だから誰かが私を助けることができますか?それは私の仕事と私の最初のプロジェクトのためであり、私はRailsの初心者であり、上司は入院しています(実際にはかなり騒々しくなっています)
本当にありがとう!
ですから、複雑なSQLの少なくとも1つに関連するモデル部分を誰かが実行できるかどうか、私は本当に感謝しています。1つのコントローラーと1つのアクションですべてのデータを読み取ります。すべてが1回の実行で行われます。
database - 膨大なレガシー データベースをモダナイズする方法は?
質問があります。ここで提案を探しています。
そのため、私のアプリケーションはデスクトップ アプリケーションを Web に変換することで「最新化」しており、ICEFaces UI とサーバー サイドは Java で記述されています。ただし、現在のカウントでは約 700 ~ 900 のテーブルがあり、テーブルにはおそらく合計で 10 億のレコードがある同じ Oracle データベースを維持しています。個々のテーブルには 2 億 5000 万行あるものもあれば、2500 万行を超えるものもあります。
言うまでもなく、データベースは十分にスケーリングされていません。その結果、アプリケーションのパフォーマンスは最悪のようです。アーキテクト/意思決定者は、永続性を拒否するか、再構築することを望まないかのいずれかです。したがって、基本的には、現在ほとんどのユーザーのニーズに対応し、比較的簡単に機能するデスクトップ アプリケーションに新たな塗装を施しています。現在、デスクトップ アプリでの実際のデータベース パフォーマンスはかなり遅いです。先ほど言及したクイック パフォーマンスは、データベースに関係のないものでした (言い間違えてすみません)。このアプリケーションのパフォーマンスがどれほど低く、日常のユーザーが仕事をするのがどれほど難しいかを考えると、夜眠れません。
では、私の質問は、この差し迫った災害を軽減するためにどのようなオプションが必要ですか? データベース構造を損なわずにパフォーマンスを高速化するために、データベースと Java コードの間に配置できる何らかのタイプの中間層はありますか? キャッシュは明らかにオプションですが、それが万能薬だとは思いません。間に NoSQL DB をレイヤー化することは可能ですか?
ruby-on-rails - Railsはprimary_key+foreign_keyオプションを使用した関連付けで問題が発生します
Railsからレガシーデータベーススキーマにアクセスしたい。主キーOBJECT_IDを持つ1つのテーブルNAGIOS_OBJECTSと、列HOST_OBJECT_IDを持つNAGIOS_OBJECTSを参照する1つのテーブルNAGIOS_HOST_CHECKSがあります。したがって、関係を次のように定義しました。
ただし、a_nagios_object.nagios_host_checkまたはa_nagios_host_check.nagios_objectを呼び出すと、常にnilになります。
私のコードの何が問題になっているのでしょうか?
nhibernate - 進行中のプロジェクトでレガシーデータベースにnHibernateを導入するのは良いことですか?
私は現在進行中のプロジェクトに取り組んでいます。そこでは、いくつかのテーブルに対して異なるスキーマを持つデータベースの2つのインスタンスがあり、1つから別のテーブルへの転送に使用されています。
データベーススキーマは、次のように明確に定義されていません。
- 一部のテーブルに主キーがありません
- 複合キーとしての主キー
- 複合主キーの外部キー
- 同じテーブルの主キー列を参照する外部キー制約
- 複合主キーが別のテーブルで外部キーとして参照されています
- 400以上のテーブルがあり、増加します
実装されているオブジェクト指向の概念が非常に少ないアプリケーション、または使用されるオブジェクトが少ないとしましょう。
したがって、もしあれば、いくつかの答えを探して、開発プロセスを高速化するために、この特定の時間にリポジトリパターンを備えたNHibernateを導入します。
乾杯。
paging - カスタム データ レイヤーを使用した RIA ページング
カスタム データ アクセス レイヤーを使用して、データベースからドメイン オブジェクト (顧客、注文など) を読み取ります。このデータ アクセス レイヤーは、ページングまたは並べ替えをサポートしていません。
WCF RIA サービスを使用して、データの一部 (顧客など) を Silverlight クライアントに公開したいと考えています。クライアントでは、ページングを使用してデータ グリッドを表示したいと考えています。
RIA DomainService には、次のような関数があります。
この関数は、データベースからすべての顧客レコードを読み取ります。このシナリオでは、RIA はいかなる形式のサーバー側ページングも実行できないと思います。関数が呼び出されると、常にすべての顧客を読み取ります。
私の質問は次のとおりです。
RIA は顧客リストをクライアントにキャッシュしますか (そして GetCustomers を 1 回だけ呼び出します)、それともユーザーがデータ グリッドの次のページに移動するたびに操作を実行しますか?
私のシナリオでは、操作の実行に 5 秒かかる場合があります。これは、1 回実行された場合は許容されますが、ユーザーがデータ グリッドの新しいページに移動するたびに 5 秒かかる場合は許容されません。
RIA を使用して従来のデータ アクセス レイヤーにアクセスし、ページングを使用する場合に使用する適切なソリューション/パターン/方法はありますか?
nhibernate - 複合キーの問題の一部にマッピングされた NHibernate ナビゲーター - レガシー データベースの使用
変更できないレガシーデータベースがあります。そして、ガベージで遅すぎる古い DataAccess 層の代わりに NHibernate に移行しようとしています。
次のようなテーブルがあります。
GPI テーブルには (PU_ID, PAR_ID, Data, Data2) 列があります
BLOCK テーブルには (GA_ID, Data, PAR_ID) 列があります
COMPANY テーブルには (PU_ID, Data) 列があります
上記のテーブルに対してこれらのマッピングを作成しました。
GPI
ブロック
会社
クラスはとてもシンプルでわかりやすいです。すべてが Equals および GetHashCode メソッドを実装しています。
動作するナビゲーターのリストは次のとおりです。
- GroupPartnerInterest.Company - 素晴らしい作品
- Company.GroupPartnerInterests - 素晴らしい作品
- GroupPartnerInterest.Company - 素晴らしい作品
そして、これら2つは失敗します:
- Block.GroupPartnerInterests:
私は単体テストを持っています:
GPI マッピング テストでブロック ナビゲーション マッピングをコメントアウトすると、動作し、いくつかのデータが出力されます。
Block #1
Company 'LALA':
Company 'LALA SA': Company 'BG PO': Company 'LIMPOPO': Company 'HAHA': Company 'Other partner(s)': Block #4
しかし、テストは次のエラーで失敗します。
NHibernate.LazyInitializationException: Initializing[Model.EntityClasses.Block#999] - ロールのコレクションの遅延初期化に失敗しました: Model.EntityClasses.Block.GroupPartnerInterests、セッションまたはセッションが閉じられませんでした。
「999」は既存の PAR_ID です。データは一貫しています。この PAR_ID を持つ 2 つのブロックと、GPI にいくつかのレコードがあります。
ある時点でセッションを閉じるのはなぜですか?
- GroupPartnerInterest.Blocks:
単体テストは上で述べたものとほぼ同じで、異なるプロパティが使用されているだけです。エラーは次のとおりです。
NHibernate.MappingException: NHibernate.MappingException: プロパティが見つかりません: エンティティ Model.EntityClasses.GroupPartnerInterest の GroupId。
GPI マッピングの Blocks navigator の要素から "property-ref=GroupId" を削除すると、次の例外が発生します。
NHibernate.FKUnmatchingColumnsException: NHibernate.FKUnmatchingColumnsException: 外部キー (FKA3966498349694F:[BLOCK] [PAR_ID])) には、参照される主キー ([GPI] [PAR_ID, PU_ID]) と同じ数の列が必要です。
GroupPartnerInterest.Blocks ナビゲーターが機能するように、ブロックを GPI にマップする方法はありますか?
ありがとう、アレックス
hibernate - 既存のデータベースで休止状態を使用する
既存のデータベースに対して休止状態を使用したいと考えています。ほとんどの場合、データベースからデータを読み取る必要があり、まれにフィールドを変更する必要があります。
行内の 1 つのフィールドを更新できるようにしたいのですが、他のすべてのフィールドが変更されないようにする必要があります。
休止状態は、フィールドが書き込まれたときと同じように書き戻されることを保証しますか (オブジェクトを変更していないと仮定します)