問題タブ [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 投票する
3 に答える
659 参照

mysql - MySql:トランザクションはデッドロックを検出しませんか?

次の perl コードを検討してください。

更新はトランザクションによって保護されているため、2 つのプロセスが「num」フィールドを更新しようとすると、2 つ目のプロセスは競合に負けたため、何らかのエラーで失敗するはずです。Interbase では、これを「デッドロック」エラーと呼んでいます。ただし、MySQL は update() 呼び出しで一時停止しますが、最初の呼び出しが commit を呼び出した後は喜んで続行します。2 番目のプロセスは num の「古い」値を持つため、インクリメントが正しくありません。観察:

どちらの場合も、結果の値は「1015」です。これはどのように正しいのでしょうか?

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

perl - DBIx::Class::Schema::Loader の出力を整理するにはどうすればよいですか?

DBIx::Class私たちは現在、私たちのチームに紹介していDBIx::Class::Schema::Loaderます。ただし、コード スタイルには厳しい要件があります。つまり、これまでコードを生成したことがないためPerl::Tidy、スクリプトの一部として取得する必要があります。pre-commitここで、Schema::Loader生成されるコードがクリーンで整頓されていることを確認する必要があります。perltidyDBIC の MD5 ハッシュが台無しになるため、コミット前にコードを実行することはできません。したがって、統合されたポストプロセッサSchema::Loaderが私の好みであり、おそらく唯一の実行可能なソリューションです。それでも、この問題をどのように処理しますか?

編集DBIx::Class::Schema::Loader::Baseパラメーターを取得した場合は、パラメーターを使用するようにパッチを適用することもできます。perltidy preprocess

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

perl - Perl DBIx :: Class-new()を使用する場合のデフォルト値?

DBIx :: Class ResultSourceでnew()メソッドを使用して(一時的な可能性のある)変数を作成する場合、DBICスキーマで指定されたデフォルト値(そこからテーブルを作成するために指定した)が属性に入力されていないようです。スキーマ)。

現在、このようなクラスの1つ(これが問題となった最初のケ​​ース)に対して1つのデフォルト値を作成しています。

そのクラス(つまり、属性queue => DEFAULT_QUEUE_VAL)。ただし、長期的には、さまざまなデフォルト値を持ついくつかのDBICクラスがあり、さまざまな場合すべてに上記のロジックを複製することは避けたいと考えています。

これを行うために利用できるCPANモジュール/プラグインはありますか?CPANの(明らかに大雑把な)検索では何も見つかりませんでした。

編集:コードサンプルのゴミを修正しました。古いコードからcpしたことがわかりました。

0 投票する
0 に答える
1129 参照

sql - Perl の DBIx::Class $resultset->update が複雑な検索クエリで失敗するのはなぜですか?

次のようなPerl DBIx::Class検索があります。

そして、私は..

しかし、私はエラーが発生します...

DBI 例外: DBD::mysql::st の実行に失敗しました: SQL 構文にエラーがあります。1 行目の 'FOR REVOCATION '1' )' の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください [for Statement "UPDATE wmv_attempt SET status = ? WHERE ( ARRAY(0xadf93a8) FOR REVOCATION ? )" with ParamValues: 0='revoking', 1=1] (eval 20938) 行 1

$rs->as_query()検索に使用する SQL を取得する場合、次のようになります。

これはうまくいきます。

update()結果セットで実行すると、WHERE句を正しく作成できないようです。

これはバグだと思います。

誰かが私が間違っているかもしれないことや別のアプローチを提案できますか?

ありがとう、トム

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

perl - DBIx::Class と Catalyst を使用して実行時に関係を追加するにはどうすればよいですか?

私が構築しているアプリケーションでは、ユーザーはテーブル間の関係を指定できます。

これは実行時にのみ決定するため、起動用のスキーマ モジュールで has_many 関係または belongs_to 関係を指定することはできません。

したがって、2 つのテーブルが与えられます。システムと場所、それらの間のレコードを結合する関係を追加したいと思います。

以下のソリューションの一部があります。

したがって、列fk0は場所の主キーへの外部キー マッピングになりますid

関係への将来のアクセスを許可するには、再登録が必要であることはわかっていますが、それがわかりません。

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

perl - この単純なケースで、DBIx::Class の結果クラスをどのようにセットアップすればよいでしょうか?

3 つのテーブルで構成される次の単純化されたサンプル データベースがあるとします。

が与えられた場合event_id、すべての主催者の名前を照会したり、 が与えられたperson_id場合、この人物がイベントのゲストまたは作成者であるすべてのイベントの名前を検索したりしたい場合があります。

単純な SQL を使用してすべてを行う方法を知っています。DBIx::Classを使用する際に、どの結果クラスを設定する必要があり、どのような関係を指定する必要があるか教えていただけますか?

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

perl - DBIx::Class の結果をカスタム Moose クラスにマップする簡単な方法はありますか?

Moose のクラスを受講するのはちょっと面倒なようです。次に、DBIx::Classを使用して結果セットを取得し、結果セットをムース クラスに手動でマップします。

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

sql - DBIx::Class を使用して、ネストされた has_many または belongs_to 関係を作成するにはどうすればよいですか?

私のコードには、次の 3 つのクラスがForumありForum::Threadます。Forum::Post

私がやりたいことは、できればカスタム関数を作成せずに、クラスからForum::Postクラスへの属している関係を作成し、has_many を使用Forumしてその逆を作成することです。(これは確かに、技術的な制限や実際の問題というよりも知的作業ですが、可能であれば知りたいです。)

コメントアウトされた行には、関係に関する私の意図が含まれていますが、現在の形式では機能しません。ドキュメントを調べてみましたが、この特定のケースに関連するものは見つかりません。

ポインタはありますか?

フォーラム クラス:

スレッドクラス:

投稿クラス:

PS:簡潔にするために、実際のコンテンツを保持するための追加の列は省略されています。

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

perl - DBIX::Class の使用時に Moose トリガーが起動しない

Moose は初めてで、DBIx::Class で使用しようとしています。基本的な DBIC のクエリと更新は機能しますが、属性を変更すると、書き込もうとしたトリガーが実行されません。

'isin' print 'FOO' のトリガーが表示されることを期待していますが、何も起こりません。パッケージから DBIx::Class を取り除くと、トリガーは期待どおりに実行されます。

DBIx::Class がトリガーの発火を妨げるような方法で値を設定していると思われます。

残念ながら、Moose での DBIx::Class の使用に関するリソースを見つけることができませんでした。私が書いたものは、ほとんどDBIx::Class と Mooseで見つけたものに基づいています。

DBIx::Class や Moose を間違って使用していますか? Mooseで使用すべき別のORMはありますか?

起動しないトリガーを含むパッケージ:

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

perl - Class::DBI から DBIx::Class への移行

現在、現在のアプリケーションを Class::DBI から移行するために、DBIx::Class に関する調査を行っています。正直なところ、DBIx::Class については、結果クラスの構成に関しては少しがっかりしています。Class::DBI を使用すると、コード ジェネレーターなしで on 関数を呼び出すだけで、モデルのメタデータをセットアップできます。私の質問は . .. DBIX::Class でも同じことができますか? クライアント側のトリガーが DBIx::Class でサポートされていないようです。または、間違ったドキュメントを見ていませんか?