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

perl - Mysql 関数から DBIx::Class への変換

関数を使用してこの mysql/select クエリを DBIx::Class に変換したいのですが、正しい方法で構築できません。

関数を使用したMysql /クエリ:

DBIC_TRACE の結果クエリ:

PS DBIx はすでにアップグレードされています。

ありがとう、ルパン

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

perl - DBIx::Class::Schema::Loader が Catalyst で InflateColumn::DateTime を自動的に追加しないようにするにはどうすればよいですか?

CatalystDBIx::Class::Schema::Loaderを使用して、Catalyst でモデルを次のように作成しています。

残念ながら、ローダーはデフォルトのコンポーネントとして自動的に設定さInflateColumn::DateTimeれますが、これは望ましくありません。データベースからの生の値が必要です。

これを防ぐ方法を誰か教えてもらえますか?

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

perl - DBIx::クラスの無限の結果

詳細を説明する前に、問題は、$c->model('ResultName')->search({k=>v}) を実行し、その has_many リレーションの結果をループすると、1 つしかないことです。データベースですが、永遠にループします。グーグルを試してみたところ、問題を解決した人が1人見つかりましたが、説明が短すぎました。彼のポストはここにありました。

基本的に私は3つのテーブルを持っています

Orders、OrderItems、Items。アイテムは利用可能なものです。注文は、1 人の人が欲しいアイテムのコレクションです。だから私はそれらすべてを次のようなもので結び付けることができます

注文から oi.order_item_id,oi.order_id,i.item_id を o として選択します。

DBIx::Class::Schema::Loader を実行し、適切な関係のように見えるものを取得しました

  • MyApp::Schema::Result::Order->has_many('order_items'...)

  • MyApp::Schema::Result::Items->has_many('order_items'...)

  • MyApp::Schema::Result::OrderItems->belongs_to('items'...)

私が試すテスト

内側のループで無限にループします

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

perl - perl DBIx sqlite {sqlite_unicode => 1}?

MySQLに接続する場合:

接続は強制的にutf8になります。

SQLiteに接続します:

接続はutf8にないようです。

目的は、データのフェッチ中にdecode()を使用する必要をなくすことです。

に:

ありがとう

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

perl - Moose強制でオブジェクトの属性にアクセスするにはどうすればよいですか?

Moose クラスの属性の Str を DBIx::Class::Row オブジェクトに変換したいと考えています。これを行うには、DBIC スキーマでルックアップを実行して行を見つける必要があります。ルックアップが失敗した場合、エラーを ArrayRef 属性にプッシュしたいと考えています。

現在、スキーマを属性としてクラスに渡しています。

強制すると、オブジェクトにアクセスできないように見えるため、エラー arrayref 属性にプッシュしたり、スキーマ オブジェクトを使用してルックアップを実行したりできません。

私が試した別の方法は、設定時に「around」を使用して属性を検索および設定することでしたが、これはもちろん、属性値がコンストラクターを介して渡されたときに呼び出されません。

これは可能ですか、または誰かが私が達成したいことを行うための代替実装を持っていますか?

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

mysql - DBIx::Class 関係を再帰的にトラバースする

DBIx::Class サブクラス foo への直接的および間接的な外部キー依存関係を持つテーブルのリストを取得する最も速い方法はどれですか? DBIx::Class::Schema に基づく MySQL データベースがあります。DBIx::Class を直接使用できますか、または SQL::Translator は有向グラフを生成することによって役立ちますか?

次のクラスがあるとします。

入力 Foo の場合、出力は [ Bar, Baz ] になります。

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

perl - DBIx :: Class仮想列?

DBIx :: Class(ローダー)ベースのORMを使用してアプリを構築しています。私のデータベースモデルのほとんどには、「名前」列があります。私のコントローラーの1つは、主に「名前」列を使用してすべてのスキーマクラスを検索します。ただし、いくつかのスキーマクラスには「名前」列がありません。

DBIx :: Classで、代わりに別の列を使用する一種の「仮想」列を追加することは可能ですか。

密かに書き直します

私は理にかなっていると思います、誰か?

Thx、Rob

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

database - DBIx::Catalyst でのクラスのアップグレード (DBIx::Class::Schema::Loader)

アプリケーションに Catalyst を使用しており、製品バージョンを次のメジャー リリースにアップグレードする準備をしています。新しいリリースでは、データベースに多くの変更が加えられました。Catalyst の ORM は、DBIx::Class::Schema::Loader を使用して、物理的な開発データベースから作成されます。Rails のようなフレームワークでは、ORM は逆に機能し、あるバージョンから次のバージョンへの移行は簡単です。

データベースの古いバージョンを新しいバージョンに変更する変更スクリプトを作成するためのソリューションがあるかどうか、誰か教えてもらえますか? mysqldiff、MySQL Workbench (同期オプションが壊れています)、RedGate、Toad for MySQL、その他多数のツールを試しました。そのため、Catalyst アプリケーションまたは DBIx::Class モデルでこれを行うためのより簡単な方法が必要です。

誰でも私を助けることができますか?どうも

ロブ

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

mysql - DBIx::Class ベースの結果クラス

DBIx::Class::Schema::Loader を使用して Catalyst のモデルを作成しようとしています。結果クラスには、メソッドを追加できる基本クラスが必要です。そのため、MyTable.pm は、DBIx::Class::core (デフォルト) を継承する Base.pm を継承します。

どういうわけか、これを行う方法がわかりません。私の作成スクリプトは以下にあります。誰かが私が間違っていることを教えてもらえますか? スクリプトはモデルを正常に作成しますが、すべての結果セット クラスは DBIx::Class::core から直接継承し、間に Base クラスはありません。