问题标签 [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::Class 无限结果

在我描述细节之前,问题是,我运行 $c->model('ResultName')->search({k=>v}) 并且当我循环它的 has_many 关系的结果时,只有一个数据库,但它永远循环。我试过谷歌搜索,发现一个人解决了这个问题,但对我的解释太简短了。他的职位在这里

基本上我有3张桌子

订单、订单项和项目。物品是可用的。订单是一个人想要的物品的集合。所以我可以用类似的东西把它们绑在一起

select oi.order_item_id,oi.order_id,i.item_id from orders as o 内部连接 ​​order_items as oi on oi.order_id = o.order_id 内部连接项目 as i on i.item_id = oi.item_id where blah blah blah ....

我运行了 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 投票
2 回答
628 浏览

mysql - 我是否需要手动为 DBIx::Class belongs_to 关系创建索引

我正在将DBIx::Class模块用于我拥有的应用程序的 ORM 方法。

我的人际关系有些问题。

我有以下

还有其他几个模块,但我不认为它们是相关的。

当我尝试部署此架构时,我收到以下错误:

据我所知,MySQL 抱怨 FOREIGN KEY 约束,特别是表中对 ( config_key, id)的引用cluster。从我对 MySQL 文档的阅读来看,这似乎是一个合理的抱怨,尤其是关于此文档页面上的第三个要点。

这是我的问题。我在DBIx::Class模块中遗漏了什么吗?我意识到我可以显式地创建必要的索引来匹配这个外键约束,但这似乎是重复的工作。我应该做些什么来隐含地发生这种情况吗?

0 投票
1 回答
587 浏览

perl - 如何在 Moose 强制中访问对象的属性?

我想将 Str 强制转换为 DBIx::Class::Row 对象以获取 Moose 类中的属性。为此,我需要在 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 (Loader) 的 ORM 构建应用程序。我的大多数数据库模型都有一个“名称”列。我的一个控制器主要使用“名称”列搜索所有模式类。然而,一些模式类没有“名称”列。

是否可以在 DBIx::Class 中添加一种使用另一列的“虚拟”列:

偷偷改写为

我希望我是有道理的,有人吗?

谢谢,罗伯

0 投票
1 回答
344 浏览

database - Catalyst 中的 DBIx::Class 升级 (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 继承自 Base.pm 继承自 DBIx::Class::core (默认)。

不知何故,我无法弄清楚如何做到这一点。我的创建脚本如下,谁能告诉我我做错了什么?该脚本可以创建我的模型,但是所有结果集类都直接从 DBIx::Class::core 继承,而没有我的 Base 类。