问题标签 [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.
perl - 在 Perl 的 DBIx::Class ORM 中自动生成对象
我开始学习 DBIx::class 并且达到了必须创建表示表的对象的地步。应该手动创建此类(对所有字段和关系进行硬编码.....)还是有一种方法可以使用数据库模式自动生成它们。我读过一些关于装载机的东西,但我不知道它们的真正用途。
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 似乎有很好的文档——我想我对它太陌生了,我找不到合适的地方/东西来搜索。
提前致谢!
perl - 如何在同一列上过滤具有 2 个条件的 Perl DBIx 记录集?
我在DBIx::Class中沾沾自喜——到目前为止我很喜欢它。
我遇到的一个问题是我想查询记录,过滤掉不在特定日期范围内的记录。
我花了一段时间才弄清楚如何进行<=
匹配类型而不是相等匹配:
明显的问题是,由于过滤器在哈希中,我正在覆盖“status_date”的值,并且只搜索status_date <= $end_date的位置。被执行的 SQL 是:
我搜索了 CPAN、Google 和 SO,但无法弄清楚如何将 2 个条件应用于同一列。我能够找到的所有文档都显示了如何过滤超过 1 列,但不是同一列上的 2 个条件。
我确定我遗漏了一些明显的东西。这里有人可以向我指出吗?
perl - 在 DBIx::Class 中注入关系
我有一些 DBIx::Class::Core 对象,它们对各种数据库表进行建模。
对于其中一些模型(那些具有“队列”列的模型),我有另一个类注入潜艇(基本上,沿着它的队列状态“移动”模型对象)。
我也想让那个类注入has_many
关系 ala
但我似乎无法正确注册关系(不断收到“没有这样的关系”错误 - 但是,当在源上调用关系方法时会返回关系)。
关于出了什么问题的任何线索?
perl - 为什么 DBIx::Class::Schema::Loader 不创建我的类?
我正在尝试使用Perl 中的DBIx::Class生成静态模式。下面显示的命令输出Schema.pm而没有其他文件。知道我做错了什么,或者如何调试它?
我在 Windows XP 上使用草莓 Perl 。数据库是 SQL Server 2000,通过 ODBC 连接访问。我可以使用具有相同 ODBC 连接的普通旧DBI成功运行查询。
perl - DBIC 为主键生成“无效精度”错误
该表存储文件名。主键是一个自动递增的整数。使用结果集的搜索有效。并调用delete方法会生成以下错误消息:
ID 是主键。如果我打印 ID,它会显示84930 - 没有句点。任何想法为什么删除会产生错误?
数据库是 SQL Server 2000。我在 Windows XP 下使用 DBIx::Class 和 Strawberry Perl。
perl - 如何在 MySQL 数据库上的 DBI::Class 模型中存储 DateTime::Duration 对象?
我目前使用DBIx::Class::InflateColumn::DateTime插件将我的日期列膨胀为 DateTime 对象并将我的 DateTime 对象缩小为 MySQL 日期值。
我想存储个人的年龄(我不能使用 DOB),为此,年、月或日的值可能为 0。因此我使用的是 DateTime::Duration 对象。如果该值不是有效日期(并且 0020-08-00 无效),插件将失败。我可以使用插件,我必须自己编写还是有其他方法?
(顺便说一句,MySQL 确实允许这样的值——我不担心它是否“无效”——它可以满足我的需要,而且我不打算更改我的 RDBMS。)
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 ?
perl - 使用 DBIx::Class Schema Loader 时,有没有办法在单独的文件中维护自定义关系和方法?
目前我们使用DBIx::Class::Schema::Loader来生成和重新生成(当我们的 db 模式更改时)一组 Result 类。
我们在这些类的底部添加了额外的关系和方法,当人们重新生成或更改模式时,这会导致合并地狱。
我们希望在一组单独的文件中维护我们的自定义更改,这些文件与自动生成的文件并行。
有没有一种简单、干净、推荐的方法?
perl - 从 DBIx::Class 中的 has_many 关系中检索数据
给定两个表的简单案例 - 术语和定义 - 其中术语has_many
定义和定义belongs_to
术语,所有术语和相应的定义都将被获取并以某种方式显示。
到目前为止,这是我想出的:
它可以完成这项工作,但我想知道是否可以采取一种不同的、不那么笨拙的方法。