問題タブ [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.
ruby-on-rails - ActiveRecord に SQL を自動的に追加させる
[明確にする更新質問]
Rails 3/3.1 でモデルを作成し、そのモデルに設定した結合を ActiveRecord で自動的に使用/追加することはできますか?
元:
次のようなコードを使用します。
しかし、ActiveRecord は明示的に呼び出さなくても内部でbase_queryメソッドを呼び出します。もっとRailsらしくするためです。
何か案は?
database - 従来のファイル スキーマ - リバース エンジニアリング
現在、2 万を超えるデータベース テーブルを Corel Paradox 4.0 形式 (DOS ベース、.db 拡張子付き) から SQL データベースに変換中です。 Python のようなスクリプト言語 (または Ruby や PHP。ただし、私は Windows デスクトップのセットアップで作業しているので Python が理想的です。ただし、必要に応じて開発用に Linux VM の 1 つを起動することもできます)。ディレクトリ内のすべての .db ファイルをプルし、ワンクリックで一連の .sql データベースを出力します。
PHP には特に Paradox ファイルを処理するために構築された限られたライブラリがあることはわかっていますが、Python、Ruby、およびその他の言語に関しては、あまり運がありませんでした。
私の質問は、フォーマットを変換するスクリプトを作成する場合、入力するファイルの構文をどのように定義すればよいですか? たとえば、.exe、.zip、.msi などに関して、開発者が従うべき単一の形式/構文が公開されていますか? もしそうなら、チェックすべき最も包括的で確実なソースは何ですか?
私は現在、フィールドとテーブルを表示するために使用できる Windows 用の Paradox のコピーを持っていますが、それは高レベルの概要しか示していないため、スクリプトの役に立ちません。
情報をありがとうございました。
django - Django への移植、レガシー ユーザー データベースのサポート
Web サイトを生の php から Django に移植しています。inspectdb を使用して、既存のデータベースのモデルを作成しました。発生した問題は、以前にユーザーを登録し、パスワードを md5 ハッシュ md5($pass) として保存していたことと、Django がこの md5 バージョンをサポートしていないことです。
従来のユーザー データベースをサポートし、新しいユーザーがユーザー プロファイルをサポートする強力な Django ユーザー モデルを利用する方法はありますか?
ruby-on-rails-3 - レガシーテーブルからいくつかのデータを描画する新しいRailsアプリ
「id」という自動インクリメントの主キーと「name」という文字列フィールドを使用して、「Doo_dad」というレガシーテーブルのデータにアクセスする必要がある新しいRailsアプリがあります。
そこで、 app / models/doodad.rbという新しいモデルファイルを作成しました。これは次のようになります。
Railsコンソールをロードすると、Railsで生成されたモデルにアクセスできましたが、クラスが表示されませんでした
app / models/doodad.rbのクラスDoodadが読み込まれていませんでした。私が次のことをしたとき、このコードは良いです:
つまり、 app / models / doodad.rbのコンテンツにモンキーパッチを適用すると、すべてが正常になり、「Uno」と呼ばれるDoodadがデータベースに保存されました。
Railsにレガシーテーブルに接続するモデルクラスをロードさせるにはどうすればよいですか?
oracle - レガシー データベースに主キーと外部キーが混在: 更新エラー「プロパティはオブジェクトのキー情報の一部であり、変更できません」
次の表を検討してください。
テーブルの詳細には、列 nr から列 nr への外部キーがあります。両方のテーブルは、プライマリ データベース キーをエンティティ キーとしてエンティティにマップされます。マスターとディテールの間には 1 対多の関係があります。
1 つの詳細を持つマスターを EF コンテキストに追加し、SaveChanges を呼び出すと、データベース内のトリガーによってマスターの nr フィールドが決定され、EF に返され、details.nr プロパティに書き込まれ、詳細テーブルに保存されます。よくやった、EF!
しかし、詳細エンティティの詳細フィールドの 1 つを更新して SaveChanges を呼び出しようとすると、「プロパティ 'Nr' はオブジェクトのキー情報の一部であり、変更できません」というエラーが表示されます。どうやら EF は、関連するマスターから Nr フィールドを更新しようとします。もちろん、これは変更されていません。
この制限を回避する最善の方法は何ですか? 新しいエンティティ キー フィールドを追加し、主キー列を変更することはできません。
免責事項: この問題に焦点を当てるためにコードを手作業で書きました。コンパイルできない可能性がありますが、要点を理解していただければ幸いです。
更新:問題は解決したと思います(願っています...)。詳細エンティティの SCN フィールドを ConcurrencyMode=Fixed と StoreGeneratedPattern=Computed の両方に設定すると、Nr フィールドに関するエラー メッセージが表示されます。SCN フィールドを ConcurrencyMode=Fixed および StoreGeneratedPattern=None に設定すると、SaveChanges はエラーなしで返されます。
java - Grails プロジェクト: レガシー db マッピングのためのゴームまたは JPA/Hibernate アノテーション?
Grails アプリケーションでは、非常に古いデータベースにマップされた一連の Grails ドメイン クラスを作成する必要があります。
この非常に古いデータベースは、テーブルと列に多くの「ファンキーな」判読不能な名前を使用しています。
これらのテーブルには、(多すぎる) 多くの場合 (多すぎる) 列が含まれています。
すべての関係に静的マッピングを使用し、列名に JPA 注釈を使用することを考えていました (ほとんどすべての列の名前を変更する必要があり、マッピング セクションは象形になります)。
このようなミックスは可能ですか?
はいの場合、それは私が避けなければならないものですか?
ruby-on-rails - RubyActiveRecordでの列変換の処理
レガシーデータベースを扱っていると、SQLServerデータベースで日付が小数で格納されている列に出くわしました。例:2011-04-23は20110423.0として保存されます。
「奇妙な」列ストレージ規則を処理するための一般的なActiveRecordメカニズムはありますか?実際に整数として格納される列挙型のような列も同じメカニズムを利用する可能性がある別のケースですが、探しているものがまったく見つかりません。
シリアル化によって部分的にそこに到達したようです。
しかし、幻想は薄いです。列は、それが小数として格納された日付であることを「認識」していません。例:比較は失敗します:
ruby-on-rails-3 - Rails3 および ActiveRecord とレガシー データベース: JOIN が他のテーブル列を返さない
共通の列 (player_key) で相互にリンクする 2 つの異なるテーブル (tbl_players と tbl_player_ratings) を含むレガシー データベースがあります。
私の問題: Rails3 では、PlayersRatings を Players に結合して取得しようとすると、PlayerRatings の列のみが返されます。ただし、mysql コマンド ラインで同じ SQL クエリを実行すると、両方のテーブルの列が返されます。
簡単にするために、ここでは各テーブルの列の一部のみを示します。
tbl_players
tbl_player_ratings
これらのテーブルを表す私の Rails クラスは次のようになります。
Railsコンソールで実行しているクエリ:
これは、Player フィールドが表示されていない唯一の PlayerRating を返します。
上記の rails コマンドによって生成される SQL:
mysql コマンドラインでその正確なコマンドを実行すると、両方のテーブルのすべての列が返されます。
Rails と ActiveRecord が同じことをしないのはなぜですか (両方のテーブルのすべての列を返す)?
sql-server-2008 - MS-SQLServerを使用したLiquibaseのセットアップ
Liquibase(www.liquibase.org)をMVC3 SQL Server 2008プロジェクトに利用して、データベースの移行/変更を管理しています。ただし、最初のハードルであるMicrosoftSQLServerインスタンスへの接続に遭遇しています。
liquibaseサイトのクイックスタートチュートリアルを見ていますが、mysqlをSQLサーバーDBに交換しています
私はこのコマンドを実行します:
そして、このエラーを受け取ります:
運が悪かったので、sqljdbcドライバーを指す--classpathを追加しようとしました。
liquibaseを使用してMS-SQLServerデータベースを作成または更新するにはどうすればよいですか?
c# - NHibernate、ヌル参照値をDBに0(ゼロ)として保存
null関係を保存するときに0を保存するタプリザーのこの例を見つけました。これは、レガシーデータベーススキーマのアプリで作業しているために必要です。
ここでタプリザーを試しました:http://nhforge.org/blogs/nhibernate/archive/2011/01/28/how-to-use-0-instead-of-null-for-foreign-keys.aspx
その例では、ProxyFactoryのnullreferenceexceptionを取得しました。次に、ここでコードの更新を見つけました:https ://bitbucket.org/jfromaniello/hotgazpachoeg/changeset/87ac41c473ae
しかし、それは私にとってもうまくいきません。最後のメソッドであるSetPropertyValues(DBからオブジェクトを読み取るときに使用されるダーティハック3として説明)では、関連のないオブジェクト(サンプルではない)を読み取るときに、この部分でnullref例外が発生しますif(typeof(IEntity))
私のマッピングは次のとおりです(簡略化):
そのようなオブジェクトが存在しない場合、parentSampleID列は0でなければなりません。
私は、挿入と更新でダーティハックを実行するだけでよいと考えました(おそらく私の場合は挿入のみです)。
挿入時に、偽のプロキシを作成したいのですが、[2]のコードは、データベースからエンティティをロードします(Nullオブジェクトを使用する可能性がありますか?!)。
ダーティハックを挿入します。
上記の代わりに、偽のプロキシを作成してみました。
次に、ctorで設定されている_sessionfactoryでnullref例外が発生します。
これを達成する方法はありますか?