问题标签 [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 查询获取正确时区的时间戳是这样的:

我想知道是否有可能在我的 DBIx 模式中为“MyTable”强制它在每次从数据库中检索“时间戳”字段时应用 datetime 函数?

食谱中,使用 ->search() 函数时似乎可以做到这一点,但我想知道如果我使用 search()、find()、all() 是否有可能做到这一点, find_or_new() 或任何将从数据库中提取此列的函数,它会将 datetime() SQLite 函数应用于它吗?

DBIx::Class 似乎有很好的文档——我想我对它太陌生了,我找不到合适的地方/东西来搜索。

提前致谢!

0 投票
2 回答
1907 浏览

perl - 如何在同一列上过滤具有 2 个条件的 Perl DBIx 记录集?

我在DBIx::Class中沾沾自喜——到目前为止我很喜欢它。

我遇到的一个问题是我想查询记录,过滤掉不在特定日期范围内的记录。

我花了一段时间才弄清楚如何进行<=匹配类型而不是相等匹配:

明显的问题是,由于过滤器在哈希中,我正在覆盖“status_date”的值,并且只搜索status_date <= $end_date的位置。被执行的 SQL 是:

我搜索了 CPAN、Google 和 SO,但无法弄清楚如何将 2 个条件应用于同一列。我能够找到的所有文档都显示了如何过滤超过 1 列,但不是同一列上的 2 个条件。

我确定我遗漏了一些明显的东西。这里有人可以向我指出吗?

0 投票
1 回答
530 浏览

perl - 在 DBIx::Class 中注入关系

我有一些 DBIx::Class::Core 对象,它们对各种数据库表进行建模。

对于其中一些模型(那些具有“队列”列的模型),我有另一个类注入潜艇(基本上,沿着它的队列状态“移动”模型对象)。

我也想让那个类注入has_many关系 ala

但我似乎无法正确注册关系(不断收到“没有这样的关系”错误 - 但是,当在源上调用关系方法时会返回关系)。

关于出了什么问题的任何线索?

0 投票
4 回答
1202 浏览

perl - 为什么 DBIx::Class::Schema::Loader 不创建我的类?

我正在尝试使用Perl 中的DBIx::Class生成静态模式。下面显示的命令输出Schema.pm而没有其他文件。知道我做错了什么,或者如何调试它?

我在 Windows XP 上使用草莓 Perl 。数据库是 SQL Server 2000,通过 ODBC 连接访问。我可以使用具有相同 ODBC 连接的普通旧DBI成功运行查询。

0 投票
1 回答
877 浏览

perl - DBIC 为主键生成“无效精度”错误

该表存储文件名。主键是一个自动递增的整数。使用结果集的搜索有效。并调用delete方法会生成以下错误消息:

ID 是主键。如果我打印 ID,它会显示84930 - 没有句点。任何想法为什么删除会产生错误?

数据库是 SQL Server 2000。我在 Windows XP 下使用 DBIx::Class 和 Strawberry Perl。

0 投票
1 回答
182 浏览

perl - 如何在 MySQL 数据库上的 DBI::Class 模型中存储 DateTime::Duration 对象?

我目前使用DBIx::Class::InflateColumn::DateTime插件将我的日期列膨胀为 DateTime 对象并将我的 DateTime 对象缩小为 MySQL 日期值。

我想存储个人的年龄(我不能使用 DOB),为此,年、月或日的值可能为 0。因此我使用的是 DateTime::Duration 对象。如果该值不是有效日期(并且 0020-08-00 无效),插件将失败。我可以使用插件,我必须自己编写还是有其他方法?

(顺便说一句,MySQL 确实允许这样的值——我不担心它是否“无效”——它可以满足我的需要,而且我不打算更改我的 RDBMS。)

0 投票
1 回答
304 浏览

perl - Catalyst: How do I make DBIx::Class::Schema::Loader::make_schema_at() static preserve case?

I'd like to be able to force the PACKAGE->add_columns() to not lc everything. I know there's a preserve_case option, but I can't figure out where to put it. Is there a 'myproj_schema.pl' file I can create in /conf ?

0 投票
3 回答
726 浏览

perl - 使用 DBIx::Class Schema Loader 时,有没有办法在单独的文件中维护自定义关系和方法?

目前我们使用DBIx::Class::Schema::Loader来生成和重新生成(当我们的 db 模式更改时)一组 Result 类。

我们在这些类的底部添加了额外的关系和方法,当人们重新生成或更改模式时,这会导致合并地狱。

我们希望在一组单独的文件中维护我们的自定义更改,这些文件与自动生成的文件并行。

有没有一种简单、干净、推荐的方法?

0 投票
2 回答
976 浏览

perl - 从 DBIx::Class 中的 has_many 关系中检索数据

给定两个表的简单案例 - 术语和定义 - 其中术语has_many定义和定义belongs_to术语,所有术语和相应的定义都将被获取并以某种方式显示。

到目前为止,这是我想出的:

它可以完成这项工作,但我想知道是否可以采取一种不同的、不那么笨拙的方法。