问题标签 [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.
mysql - MySql:事务不检测死锁?
考虑以下 perl 代码:
我期望由于更新受事务保护,那么如果两个进程尝试更新“num”字段,第二个进程应该会失败并出现一些错误,因为它失去了比赛。Interbase 将此称为“死锁”错误。然而,MySQL 会在 update() 调用上暂停,但会在第一个调用提交后愉快地继续。然后第二个进程具有 num 的“旧”值,导致增量不正确。观察:
在这两种情况下,结果值都是“1015”。这怎么可能是正确的?
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
perl - Perl DBIx::Class - 使用 new() 时的默认值?
当在 DBIx::Class ResultSource 上使用 new() 方法来创建(可能是临时的)变量时,它似乎没有使用 DBIC 模式中指定的默认值填充属性(我们已指定用于从该模式创建表)架构)。
目前,我们正在为一个这样的类创建一个默认值(这是一个问题的第一种情况)
在那个类中(即属性 queue=>DEFAULT_QUEUE_VAL)。但是,从长远来看,我们有几个 DBIC 类具有不同的默认值,我们希望避免在所有不同的情况下重复上述逻辑。
是否有任何可用的 CPAN 模块/插件来执行此操作?我们在(诚然粗略的)CPAN 搜索中没有看到任何内容。
编辑:修复了代码示例中的一些垃圾;原来我 cp'd 来自过时的代码。
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
perl - 如何在运行时使用 DBIx::Class 和 Catalyst 添加关系?
在我正在构建的应用程序中,用户可以指定表之间的关系。
由于我只在运行时确定这一点,因此我无法在模式模块中指定 has_many 或 belongs_to 关系以进行启动。
所以给定两张表;系统和地点,我想添加关系以连接它们之间的记录。
我有以下解决方案的一部分:
因此,该列fk0
将是映射到位置主键的外键id
。
我知道必须重新注册才能允许将来访问该关系,但我无法弄清楚。
perl - 在这种简单的情况下,我应该如何设置我的 DBIx::Class 结果类?
假设我有一个由三个表组成的以下简化示例数据库:
给定一个event_id
,我可能想查询所有组织者的名字,给定一个person_id
我可能想找到这个人是活动的客人或创建者的所有活动的名称,依此类推。
我知道如何使用简单的 SQL 来完成所有这些工作。您能否告诉我在使用DBIx::Class时需要设置哪些结果类以及需要指定哪些类型的关系?
perl - 有没有一种简单的方法可以将 DBIx::Class 结果映射到我的自定义 Moose 类?
上我的 Moose 课似乎有点痛苦。然后使用DBIx::Class获取结果集..然后手动将我的结果集映射到 moose 类。
sql - 如何使用 DBIx::Class 创建嵌套的 has_many 或 belongs_to 关系?
在我的代码中,我有以下三个类:Forum
和Forum::Thread
Forum::Post
我想要做的是创建一个从Forum::Post
类到Forum
类的belongs_to-relationship,反之亦然,使用has_many,最好不为其创建自定义函数。(诚然,这更像是一种智力练习,而不是技术限制或实际问题,但如果可能的话,我很想知道。)
注释掉的行包含我对关系的意图,但在目前的形式下,它们无法工作。我在文档中四处寻找,但找不到与此特定案例相关的任何内容。
任何指针?
论坛类:
线程类:
帖子类:
PS:为简洁起见,省略了包含实际内容的其他列。
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 吗?
带有不会触发的触发器的包:
perl - 从 Class::DBI 迁移到 DBIx::Class
我目前正在对 DBIx::Class 进行一些研究,以便从 Class::DBI 迁移我当前的应用程序。老实说,在配置结果类时,我对 DBIx::Class 有点失望,使用 Class::DBI 我可以在模型上设置元数据,只需在没有代码生成器的情况下调用 on 函数等等我的问题是。 ..我可以与 DBIX::Class 做同样的事情吗?似乎 DBIx::Class 不支持客户端触发器,或者我没有查看错误的文档?