递归遍历 DBIx::Class 关系
获取具有外键依赖关系(直接和间接)到 DBIx::Class 子类 foo 的表的列表的最快方法是什么?我有一个基于 DBIx::Class::Schema 的 MySQL 数据库。可以直接使用 DBIx::Class 吗?或者 SQL::Translator 可以通过生成有向图来提供帮助吗?
给定以下类:
package MySchema::Foo;
...
package MySchema::Bar;
__PACKAGE__->belongs_to('foo', 'MySchema::Foo');
package MySchema::Baz;
__PACKAGE__->belongs_to('bar', 'MySchema::Bar');
对于输入 Foo,输出应为 [ Bar, Baz ]。
Which is the quickest way to get the list of tables that have foreign key dependencies, both direct and indirect, to DBIx::Class subclass foo? I have a MySQL database based on a DBIx::Class::Schema. Can DBIx::Class be used directly, or can SQL::Translator help by generating a digraph?
Given the following classes:
package MySchema::Foo;
...
package MySchema::Bar;
__PACKAGE__->belongs_to('foo', 'MySchema::Foo');
package MySchema::Baz;
__PACKAGE__->belongs_to('bar', 'MySchema::Bar');
For the input Foo, the output should be [ Bar, Baz ].
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用
DBIx::Class
的::Schema
和::ResultSource
来完成此操作。首先构建引用类的哈希(ref),然后遍历它:Cooked this with
DBIx::Class
's::Schema
and::ResultSource
. First builds a hash(ref) of referencing classes and then traverses it: