问题标签 [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 代码:

我期望由于更新受事务保护,那么如果两个进程尝试更新“num”字段,第二个进程应该会失败并出现一些错误,因为它失去了比赛。Interbase 将此称为“死锁”错误。然而,MySQL 会在 update() 调用上暂停,但会在第一个调用提交后愉快地继续。然后第二个进程具有 num 的“旧”值,导致增量不正确。观察:

在这两种情况下,结果值都是“1015”。这怎么可能是正确的?

0 投票
3 回答
563 浏览

perl - 如何整理 DBIx::Class::Schema::Loader 的输出?

我们目前正在DBIx::Class我们的团队中引入,我们想从DBIx::Class::Schema::Loader. 但是,我们对代码风格有严格的要求,即我们已经将Perl::Tidy其作为pre-commit脚本的一部分,因为我们之前没有任何生成的代码。现在,我们必须确保Schema::Loader生成的代码干净整洁。我们不能perltidy在提交之前运行代码,因为它搞砸了 DBIC 的 MD5 散列。因此,集成的后处理器Schema::Loader将是我的首选,并且可能是唯一可行的解​​决方案。但仍然:你将如何处理这个问题?

编辑如果它得到一个参数,我不妨修补DBIx::Class::Schema::Loader::Base以使用它。perltidy preprocess

0 投票
3 回答
960 浏览

perl - Perl DBIx::Class - 使用 new() 时的默认值?

当在 DBIx::Class ResultSource 上使用 new() 方法来创建(可能是临时的)变量时,它似乎没有使用 DBIC 模式中指定的默认值填充属性(我们已指定用于从该模式创建表)架构)。

目前,我们正在为一个这样的类创建一个默认值(这是一个问题的第一种情况)

在那个类中(即属性 queue=>DEFAULT_QUEUE_VAL)。但是,从长远来看,我们有几个 DBIC 类具有不同的默认值,我们希望避免在所有不同的情况下重复上述逻辑。

是否有任何可用的 CPAN 模块/插件来执行此操作?我们在(诚然粗略的)CPAN 搜索中没有看到任何内容。

编辑:修复了代码示例中的一些垃圾;原来我 cp'd 来自过时的代码。

0 投票
0 回答
1129 浏览

sql - Why does Perl's DBIx::Class $resultset->update fail on complex search queries?

I have a Perl DBIx::Class search the looks like this:

and then I do ..

But I get the error ...

DBI Exception: DBD::mysql::st execute failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FOR REVOCATION '1' )' at line 1 [for Statement "UPDATE wmv_attempt SET status = ? WHERE ( ARRAY(0xadf93a8) FOR REVOCATION ? )" with ParamValues: 0='revoking', 1=1] at (eval 20938) line 1

If I use $rs->as_query() to get the SQL used to do the search it looks like this:

Which works fine.

It seems that when it does the update() on the resultset it fails to be able to create the WHERE clause correctly.

I suspect this is a bug.

Can anyone suggest something I might be doing wrong or an alternative approach?

Thanks, Tom

0 投票
2 回答
912 浏览

perl - 如何在运行时使用 DBIx::Class 和 Catalyst 添加关系?

在我正在构建的应用程序中,用户可以指定表之间的关系。

由于我只在运行时确定这一点,因此我无法在模式模块中指定 has_many 或 belongs_to 关系以进行启动。

所以给定两张表;系统和地点,我想添加关系以连接它们之间的记录。

我有以下解决方案的一部分:

因此,该列fk0将是映射到位置主键的外键id

我知道必须重新注册才能允许将来访问该关系,但我无法弄清楚。

0 投票
1 回答
732 浏览

perl - 在这种简单的情况下,我应该如何设置我的 DBIx::Class 结果类?

假设我有一个由三个表组成的以下简化示例数据库:

给定一个event_id,我可能想查询所有组织者的名字,给定一个person_id我可能想找到这个人是活动的客人或创建者的所有活动的名称,依此类推。

我知道如何使用简单的 SQL 来完成所有这些工作。您能否告诉我在使用DBIx::Class时需要设置哪些结果类以及需要指定哪些类型的关系?

0 投票
3 回答
1887 浏览

perl - 有没有一种简单的方法可以将 DBIx::Class 结果映射到我的自定义 Moose 类?

上我的 Moose 课似乎有点痛苦。然后使用DBIx::Class获取结果集..然后手动将我的结果集映射到 moose 类。

0 投票
2 回答
853 浏览

sql - 如何使用 DBIx::Class 创建嵌套的 has_many 或 belongs_to 关系?

在我的代码中,我有以下三个类:ForumForum::ThreadForum::Post

我想要做的是创建一个从Forum::Post类到Forum类的belongs_to-relationship,反之亦然,使用has_many,最好不为其创建自定义函数。(诚​​然,这更像是一种智力练习,而不是技术限制或实际问题,但如果可能的话,我很想知道。)

注释掉的行包含我对关系的意图,但在目前的形式下,它们无法工作。我在文档中四处寻找,但找不到与此特定案例相关的任何内容。

任何指针?

论坛类:

线程类:

帖子类:

PS:为简洁起见,省略了包含实际内容的其他列。

0 投票
2 回答
958 浏览

perl - 使用 DBIX::Class 时 Moose 触发器不触发

我是 Moose 的新手,正在尝试将它与 DBIx::Class 一起使用。找到基本的 DBIC 查询和更新工作,但是当我修改属性时,我尝试编写的任何触发器都不会执行。

我希望看到 'isin' 打印 'FOO' 的触发器,但没有任何反应。如果我从包中删除 DBIx::Class 触发器将按预期执行。

我怀疑 DBIx::Class 设置值的方式会阻止触发器触发。

不幸的是,我没有找到关于将 DBIx::Class 与 Moose 一起使用的资源。我所写的内容主要基于我在DBIx::Class 和 Moose中找到的内容。

我使用 DBIx::Class 和/或 Moose 错了吗?我应该与 Moose 一起使用不同的 ORM 吗?

带有不会触发的触发器的包:

0 投票
1 回答
713 浏览

perl - 从 Class::DBI 迁移到 DBIx::Class

我目前正在对 DBIx::Class 进行一些研究,以便从 Class::DBI 迁移我当前的应用程序。老实说,在配置结果类时,我对 DBIx::Class 有点失望,使用 Class::DBI 我可以在模型上设置元数据,只需在没有代码生成器的情况下调用 on 函数等等我的问题是。 ..我可以与 DBIX::Class 做同样的事情吗?似乎 DBIx::Class 不支持客户端触发器,或者我没有查看错误的文档?