問題タブ [dbix-class]

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 投票する
1 に答える
290 参照

perl - Perl の DBIx::Class ORM でオブジェクトを自動生成する

DBIx::class の学習を開始し、テーブルを表すオブジェクトを作成する必要があるところまで来ました。このクラスを手動で作成する必要があります (すべてのフィールドと関係をハードコーディングする.....)、またはデータベース スキーマを使用して自動的に生成する方法があります。ローダーについて何か読んだことがありますが、実際にどこで使用されているのかわかりませんでした。

0 投票する
1 に答える
862 参照

perl - Perl DBIx::Class はデータベースから列を取得する方法をオーバーライドできますか?

私は今日まで DBIx::Class を使用したことがないので、まったくの初心者です。

これが可能かどうかはわかりませんが、基本的に SQLite データベースにタイムスタンプ列を持つテーブルがあります。タイムスタンプ列のデフォルト値は「CURRENT_TIMESTAMP」です。SQLite はこれを GMT タイムゾーンで保存しますが、私のサーバーは CDT タイムゾーンです。

正しいタイムゾーンでタイムスタンプを取得するための私の SQLite クエリは次のとおりです。

データベースから「タイムスタンプ」フィールドを取得するたびに、「MyTable」の DBIx スキーマで強制的に日時関数を適用することが可能かどうか疑問に思っています。

クックブックでは->search() 関数を使えばできるようですが、search()、find()、all()、 find_or_new()、またはデータベースからこの列を取得する関数は、datetime() SQLite 関数を適用しますか?

DBIx::Class には優れたドキュメントがあるようです。私は、検索するのに適切な場所/ものを見つけられないほど、初心者だと思います。

前もって感謝します!

0 投票する
2 に答える
1907 参照

perl - 同じ列に 2 つの条件がある Perl DBIx レコードセットをフィルタリングするにはどうすればよいですか?

私はDBIx::Classに足を踏み入れています — これまでのところ気に入っています。

私が直面している問題の 1 つは、特定の日付範囲にないレコードを除外して、レコードをクエリしたいということです。

<=等価一致の代わりに特定の種類の一致を行う方法を見つけるのにしばらく時間がかかりました。

これに関する明らかな問題は、フィルターがハッシュ化されているため、"status_date" の値を上書きし、status_date <= $end_date の場所のみを検索していることです。実行される SQL は次のとおりです。

CPAN、Google、および SO を検索しましたが、同じ列に 2 つの条件を適用する方法がわかりませんでした。私が見つけたすべてのドキュメントは、複数の列でフィルタリングする方法を示していますが、同じ列で2つの条件は示していません。

明らかな何かが欠けていると確信しています。ここで誰かが私にそれを指摘できますか?

0 投票する
1 に答える
530 参照

perl - DBIx::Classにリレーションシップを挿入する

さまざまなデータベーステーブルをモデル化するDBIx::Class::Coreオブジェクトがいくつかあります。

これらのモデルの一部(「キュー」列を持つモデル)では、別のクラスにサブを挿入します(基本的に、モデルオブジェクトをキューの状態に沿って「移動」します)。

そのクラスにもhas_many関係を注入してもらいたいです

しかし、リレーションシップを正しく登録できないようです(ただし、「No such Relationship」エラーが発生し続けます。ただし、ソースでリレーションシップメソッドを呼び出すと、リレーションシップが返されます)。

何が悪いのかについての手がかりはありますか?

0 投票する
4 に答える
1202 参照

perl - DBIx::Class::Schema::Loader がクラスを作成しないのはなぜですか?

Perl でDBIx::Classを使用して静的スキーマを生成しようとしています。以下に示すコマンドは、Schema.pmを出力し、他のファイルは出力しません。私が間違っていること、またはこれをデバッグする方法について何か考えはありますか?

Windows XP でStrawberry Perlを使用しています。データベースは SQL Server 2000 で、ODBC 接続を介してアクセスします。同じODBC接続でプレーンな古いDBIを使用してクエリを正常に実行できます。

0 投票する
1 に答える
877 参照

perl - DBIC が主キーの「無効な精度」エラーを生成する

テーブルにはファイル名が格納されます。主キーは自動インクリメント整数です。結果セットを使用した検索が機能します。また、 deleteメソッドを呼び出すと、次のエラー メッセージが生成されます。

ID は主キーです。ID を印刷すると、ピリオドなしで84930と表示されます。削除するとエラーが発生する理由はありますか?

データベースは SQL Server 2000 です。私は DBIx::Class と Strawberry Perl を Windows XP で使用しています。

0 投票する
1 に答える
182 参照

perl - DateTime::DurationオブジェクトをMySQLデータベースのDBI::Classモデルに保存するにはどうすればよいですか?

現在、DBIx :: Class :: InflateColumn :: DateTimeプラグインを使用して、日付列をDateTimeオブジェクトに拡張し、DateTimeオブジェクトをMySQLの日付値に拡張しています。

個人の年齢(DOBは使用できません)を保存したいのですが、この場合、年、月、または日の値は0になる可能性があります。したがって、DateTime::Durationオブジェクトを使用しています。値が有効な日付でない場合(および0020-08-00が無効な場合)、プラグインは失敗します。プラグインを使用できますか、自分で作成する必要がありますか、それとも別の方法がありますか?

(BTW MySQLはそのような値を許可します-それが「無効」であるかどうかは関係ありません-それは私が必要とするものに対して機能し、RDBMSを変更する予定はありません。)

0 投票する
1 に答える
304 参照

perl - Catalyst: DBIx::Class::Schema::Loader::make_schema_at() を静的に保存するにはどうすればよいですか?

PACKAGE ->add_columns() がすべてを lc しないように強制できるようにしたいと思い ます。オプションがあることは知っていpreserve_caseますが、どこに置くべきかわかりません。/conf に作成できる「myproj_schema.pl」ファイルはありますか?

0 投票する
3 に答える
726 参照

perl - DBIx::Class Schema Loaderを使用する場合、カスタムの関係とメソッドを別々のファイルで維持する方法はありますか?

現在、DBIx::Class::Schema::Loaderを使用して、一連の Result クラスを生成および再生成します (db スキーマが変更された場合)。

これらのクラスの下部に追加の関係とメソッドを追加します。これにより、人々がスキーマを再生成または変更すると、マージ地獄が発生します。

カスタムの変更を、自動生成されたファイルと並行して配置される別のファイル セットに維持したいと考えています。

これを行うためのシンプルでクリーンな推奨方法はありますか?

0 投票する
2 に答える
976 参照

perl - DBIx::Classのhas_many関係からデータを取得する

2つのテーブル(用語と定義)の単純なケースを考えると、用語has_many定義と定義belongs_to用語では、すべての用語と対応する定義がフェッチされ、何らかの方法で表示されます。

これが私がこれまでに思いついたものです:

それは仕事をしますが、私は別の、より粗雑でないアプローチをとることができるかどうか疑問に思いました。