問題タブ [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.
c# - Entity Framework はモデル内のさまざまなデータ型をサポートしていますか?
EF を使用して、顧客のシステムにインストールされているレガシー SQL Server データベースにアクセスすることを検討しています。
問題は、データベース スキーマが 100% 一貫していないことです。それらはすべて同じ (関連する) テーブルとフィールドを持っていますが、一部の数値フィールドは異なるデータ型を持っている可能性があります。
私が見る限り、これらのタイプはアプリケーションの観点からは「互換性があります」: たとえば、小さい数字を含むフィールドsmallint
は顧客 A のデータベースにあるかもしれませんが、int
顧客 B のデータベースにあるかもしれません。または、価格を含むフィールドは、decimal(10,2)
A のデータベースではfloat
、B のデータベースでは (そうです、つまり、B は浮動小数点の問題に悩まされる可能性があります。つまり、これはレガシー データベースなのです)。
データベースにアクセスしているのは私たちだけではないため、スキーマを変更する (つまり統合する) ことはできません。Entity Framework はそれに対処できますか (つまり、double
モデル定義が a であると主張した場合、SQL Server テーブルで a を適切に受け入れるdecimal(10,2)
でしょうか)、それとも恐ろしくクラッシュしますか?
c# - ORM フレームワークから SQL サポートなしのレガシー データベースへ
1980 年代初頭の古いレガシー データベースに対して C# プログラムの作成を開始します。SQL や関係はサポートされておらず、それとの通信は Telnet コマンドを介して行われます。
ある種の ORM フレームワークを使用するか、独自のフレームワークを作成することを考えています。私の質問は、これらの特殊な条件に簡単に適応できる優れたフレームワークがあるかどうかです。
プログラム内のクラスをデータベース内のテーブルにマップし、複雑な telnet コマンドや返された情報を意味のあるものに変換することを考えることなく、最新の方法でデータベースを操作できるようにしたいと考えています。
legacy - すべての Raima db_VISTA バージョン 3.20 データをテキストにダンプします
友人は、もはや機能しない古いプログラムを持っていますが、彼はデータを回復したいと考えています。
ファイルのヘッダーから、これが古い Raima db_VISTA バージョン 3.20 データベースであることがわかりました。この同様の質問を見つけました。エクスポート オプションが利用できない場合、レガシー DOS アプリケーションでデータをエクスポートするにはどうすればよいですか? 、しかし、データを別の形式にダンプする方法を教えてくれる答えはありません。
Raima に連絡してみましたが、フォーラムが機能していません (私のトピックはモデレーターによって投稿されませんでした)。
データのエクスポートに役立つツールを知っていますか?
ruby-on-rails - Devise + Legacy DB: 「パスワード」列
古い CakePHP サイトを Rails 4 にゆっくりと移行しようとしています。多大な労力が必要なため、サイトを徐々に移行する必要があります。一度に 1 つの部分のみを移行し、Active Admin から始めます。このようなことを行うことについて多くの質問を見てきましたが、考慮しなければならないトリッキーな追加事項がいくつかあります。
- CakePHP コードを変更できません
- CakePHP サイトを壊すことはできません
- CakePHP サイトは、ハッシュ化されたパスワードを「password」という名前のデータベース列に保存しますが、Devise はそれを好みません。「password」はプレーンテキストのパスワードであると想定し、その DB 列もオーバーライドしようとする厄介な習慣に陥っています。
サイト全体が Rails に移行されたら、アプリを Devise に移行する方法に関する無数の回答のいずれかを確実にフォローし始めることができますが、今のところ、既存のアプリで作業する必要があります。
ありがとう
django - 外部キーが存在しません。管理者にエントリを表示
レガシーデータベースを使用する必要があり、次の問題があります。私のモデルには、ユーザー モデルへの外部キーがあります。
それはうまくいくようです。問題は、一部の履歴エントリでユーザー エントリが存在しないことです。簡単な解決策はありますか?
アプリケーションはそれでうまくいくようです。唯一の問題は、モデルの管理インターフェイスにあります。
有効な外部キーを持つエントリのみが表示されます。他のエントリーも表示することはできますか?
python - Django: レガシー DB における異常なテーブル関係のモデル
私は最初の Django プロジェクトを行っており、サードパーティ プログラムのレガシー DB と格闘しています。DB には、私が把握しようとしている 1 つのセクションについて、少し変わったテーブル構造があります。
基本的なテーブル レイアウトは次のとおりです。
たとえば、PERSON には以下が含まれます。
SPOUSEREL には次のものが含まれます。
これは、ジョン・スミスが「結婚番号 50」でマギー・ブラウンと結婚し、ジョン・スミスが「結婚番号 55」でサラ・リーとも結婚したことを示しています。50 と 55 という数字は、結婚を示すためにある人から別の人へのリンクを作成するだけの数字であり、他の関連性はありません。
ManyToManyField
さまざまなとの組み合わせを試しましたForeignKey
。例:
しかし、成功しませんでした。実行しようとしているクエリを確認すると、ID フィールドが必要な Django でルックアップが失敗していますが、存在しません。「スルー」を使用することを考えましたが、この場合、それ自体を通過する必要がありますか?
これでどこに行くべきかわかりません。
vba - 自動化された方法で、`.mdb` ファイルのバックアップが適切かどうかをテストするにはどうすればよいですか?
.mdb
私は毎晩データベース (およびそれは別のパーティション) の コピーを作成し、それを開いて動作するかどうかをテストします。
に「コピーを作る」つまり:
- RDP経由で接続されているすべてのユーザーをデータベースから追い出します(自動化されていません...)
- 両方のバックエンド ファイルの名前を変更してから、ファイルのコピーを作成します。(自動...)
そして、「動作するかどうかを確認してください」つまり:
- フロントエンド ファイル (
.mde
) を両方のファイルに再リンクします (これは自動化されています)。 - ローカル マシンでフロントエンド (
.mde
) とワークグループ セキュリティ ファイル ( ) を使用してそれ (および別のパーティション) を開き、動作するかどうかを確認します。.mdw
(これは自動化されておらず、ここで注目している部分...)
もう一方のパーティションにはテーブルが 2 つしかないので、そのパーティションを使用することがわかっているフロントエンド ファイルの一部を実行して、バックアップが機能するかどうかをテストします。
ファイルのバックアップに接続し、両方のパーティションのいくつかのテーブルに対してクエリを実行するだけで、実際に人間の目で見なくても、バックアップが適切であることを証明できますか?
ライブデータベースの圧縮プロセスも自動化しましたが、バックアップが実際に機能することを確認するまで、この部分を自動化するのは安全ではないと感じています.
また、「なぜまだアクセスを使用しているのですか?」という内容の投稿を受け取る前に、私はそのような決定を行うことができず、このデータベースは私がここに来るずっと前からここにあったことを述べさせてください。
(注: SO にこれを誤って投稿したと思われる場合は、お気軽にDBA SEまたはServerfaultに移行してください)
ruby-on-rails-4 - Rails 4、sqlserver-adapter: alias_attribute を使用して従来の属性の名前を変更する
Rails 以外の従来の命名法を持つレガシー システムを扱う。すべてのテーブルと属性は大文字であることに注意してください。これは、sqlserver-adapterID
では と同じではないことを意味しid
ます。
クエリalias_attribute :new, :OLD
で使用できる名前を指定できると思っていました。ActiveRecord/ActiveRelation
私が以下に見ているもの( でテスト済みrails console
)から、そうではありません。
ID
最終的な目標は、各モデルに属性などを持たせることにより、Rails の従来の方法論でレガシー システムを「動作」させることです。
モデル定義:
動作しません:
Organization.select(:id)
=>invalid column name 'id'
Organization.select(:ID)
=>invalid column name 'ID'
Organization.select("ID")
=>invalid column name 'ID'
動作します:
Organization.select(:organization_id)
=><finds record>
Organization.select(:ORGANIZATION_ID)
=><finds record>
Organization.select("organization_id")
=><finds record>
Organization.select("ORGANIZATION_ID")
=><finds record>
ms-access - ネストされた MS Access sql クエリのネスト解除
作業用の小さな Access データベースが与えられました。それを作成した人は、レポートを生成するために多くのカスタム クエリを作成しました。私はレポートを修正する任務を負っていますが、最初にクエリを書いた人はいなくなり、ドキュメントを残しませんでした。
私の最大の問題は、彼が 5 レベル以上の深さでクエリをネストしていたことであり、そのままでは読むのが非常に困難です。彼が作成したクエリは通常この形式ですが、より複雑です。
また、CustomQuery{1,2,3} はそれぞれ、他の複数のサブクエリを参照するまったく同じ方法で記述されています。これは信じられないほど読みにくいだけでなく、クエリの 1 つを変更すると、別のクエリの別の場所で呼び出されていることに気付いていないため、別のレポートが壊れてしまうのではないかと心配しています。すべてのクエリを分析して、どのクエリが他のどのクエリによって呼び出されているかを把握する方法があるかどうか、および/またはそれらを自動的にネスト解除できるツールがあるかどうか、またはそれらすべてをトレースする必要があるかどうか疑問に思っています手動で。