問題タブ [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 に答える
397 参照

database - どうすればis-DBIx::Classとの関係をモデル化できますか?

次の(簡略化された)MySQLテーブル定義を使用します。

DBIx :: Classを初めて使用するため、データベースエンティティ(コンピューターとプリンターの両方がアイテム)間の継承関係をモデル化したいと思いますが、提供されたbelongs_to関係タイプでは、基本クラスとの関連付けが非表示ではないため、両方のクラスのエンティティを手動で作成する必要があります。派生クラスの基本クラス属性へのアクセスは、独自の属性へのアクセスとは異なります。

私が言うことを可能にするエレガントな解決策はありますか?

または(フェッチされたプリンター行):

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

perl - DBIx::Class::ResultSet でこの検索と order_by を実行するにはどうすればよいですか

問題定義。

複数のユーザーを持つ複数のクライアントがあります。各クライアントは、カスタム データをユーザー、検索、および順序付けに関連付けることができる必要があります。


データベース ソリューション:

customfields テーブルを定義するテーブル Customfields。IDと名前があります。これには、Userfields テーブル (別名「属性」) との has_many 関係があります。

Userfields テーブルには、userid、customfieldid、content、および id があります。これは、Useraccounts テーブル (別名「useraccount」) および Customfields (別名「customfield」) に属しています。


私が望む提案されたselectステートメント:

これは、必要なものを達成して生成する select ステートメントです。

この場合、それらは select ステートメント内の 0 ... x サブ select ステートメントのいずれかであり、それらのいずれかまたはいずれも順序付けする必要がない可能性があります。


質問

dbix クラスの結果セットで ->search を使用してこれを達成するにはどうすればよいですか? または、dbix クラスの結果セットで検索を使用して同じ結果を得るにはどうすればよいですか?

Useraccounts テーブルから通常選択する方法は次のとおりですが、ここから必要な複雑なステートメントを実行する方法がわかりません。

御時間ありがとうございます。

-pdh

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

perl - DBIx::Class でクエリの数を数える方法は?

Web コンテキストで使用DBIx::Classしており、実行された SQL クエリの数と、ページのレンダリングにかかった時間を表示したいと考えています。

それを実装する方法について何か考えはありますか?

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

sql - データベース内のツリーのすべての祖先/子孫を取得するためのクエリ?

同じテーブル内の別の行を指す (または null である) テーブルがあります(id, parent_id, data)parent_id

(1)特定のIDのすべての祖先と(2)特定のIDのすべての子孫を照会する標準的な方法はありますか?

私も でこれを行っているDBIx::Classので、そのモジュール (または他のモジュール) でこれを行う最も便利な方法があれば、それについても聞きたいです。

編集: 明確化 - すべての親 = すべての祖先、すべての子 = すべての子孫。

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

perl - DBIx::Class で自己結合を使用するグループのグループ

DBIx::Class の使用方法を理解しようとしています。

グループ自体がグループのメンバーになるようなレコードのグループが必要な場合は、次のようなものを含むスキーマを作成できます。

DBIx::Class::Schema::Loader を使用してこのスキーマをダンプすると、次の関係が得られます。

Group.pm

グループグループ.pm

グループテーブルが両側にある多対多の関係ブリッジが必要だと思うので、これを作成しました:

リレーションシップ ブリッジの定義についての私の理解は次のようになるためです。

このコードを試したとき:

DBIC_TRACE を設定すると、SQL は次のようになります。

しかし、行はもっと似ているはずだと思います:

誰かが私が多対多の関係ブリッジをどのように誤解しているのかを提案し、多対多の関数定義を修正してくれたら、感謝します.

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

perl - 多重継承を持つ DBIx::Class が更新時に失敗するのはなぜですか?

すべてのクラスが共通の基本クラスと定義クラスを使用する DBIC スキーマがあります。基本クラスは共通コンポーネントをロードし、変更セットを監査テーブルに記録するために update メソッドをオーバーライドします。定義クラスは、データベースから生成される静的クラスです。典型的なクラス ヘッダーは次のようになります。

User クラスの更新にオーバーライドを追加するまで、すべてが正常に機能していました。どうやら基本クラスにオーバーライドがあり、 User クラスが何らかの形で競合しています。next::method(@_) を使用して次の更新メソッドを呼び出していますが、常にハングします。

これは CGI アプリケーションです。したがって、「保存」を押すと、エスケープを押してリクエストをキャンセルするまで、ブラウザがホイールを回転させます。この時点で、私のロギングは元に戻り、すべてのクエリが正しく迅速に実行されていることを示していますが、User クラスの最後でハングし、ブラウザーでエスケープを押すまで進行しません。

更新:これは、触媒との相互作用に問題があるようです。単独で実行すると、このコードは正しく機能します。ただし、Catalyst アプリケーション内から実行すると失敗します。

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

perl - どのモジュールがMooseをロードしているのかを知るにはどうすればよいですか?

CGI::ApplicationのどのモジュールがMooseをロードしているかを把握しようとしています。「require」をオーバーロードしようとしましたが、構文が正しくないようです。誰かが次のコードをクリーンアップできれば、私はそれをいただければ幸いです。

基本的に、このスクリプトの問題は、実際には何もロードされていないことです。CORE :: require(@ )が呼び出されても、何も「実行」されません。$ [0]を使用してスクリプト名を直接渡そうとしましたが、タイムアウトになるまでスクリプトがデッドロックしていました。

注:上記のスクリプトは、起動スクリプトの最初にあります

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

perl - DBIx :: Class :: Schema :: Loaderはそのモニカマップをキャッシュしますか?

最近、データベースに「audit_logs」テーブルを追加しましたが、不満を感じた後、何らかの理由でデータベースに「auditlog」テーブルがすでに存在することに気付きました。使われていなかったので落としました。Auditlog.pmファイルとAuditLogs.pmファイルをスキーマから削除してから、再生成しました。何らかの理由で、競合する「auditlog」テーブルまたはAuditlog.pmファイルがなくなったにもかかわらず、DCSLは「audit_logs」テーブルのAuditLogs.pmを再度作成しました。

Log.pmを生成するために考えられるすべてのことを試しましたが、成功しませんでした。私が理解できる唯一のことは、それがどこかにモニカマップをキャッシュしていることであり、私はそれをリセットできないようです。

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

perl - DBIx :: Classの結果をきれいに印刷するにはどうすればよいですか?

DBIx :: Class::ResultSetの結果を次のようにきれいに印刷したいと思います。

DBIx :: SQLCrosstab :: Formatクラスを見つけましたが、独自のクエリでのみ機能するようです。

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

perl - DBIx :: Classを使用して、テーブルとそれ自体の多対多の関係を設定する

アプリケーションをClass::DBIからDBIx::Classに移植していますが、サポートが必要です。T主キーtidを持つテーブルと、の行をそれ自体の複数の(子)行にChildT関連付ける別のテーブルがあります。のインスタンスのすべての子を見つけることができるように、との間の関係を設定するにはどうすればよいですか。これら2つのテーブルの簡略版を次に示します。TTTChildTT

tid両方ともの列をchildid参照します。idT

ありがとう!