DBIx :: Class :: Schema :: Loader定制

时间:2018-07-03 13:44:53

标签: perl database-schema dbix-class perl5

我们有一个MyISAM数据库(不要问我为什么不切换到InnoDB,它不受我控制)。

现在,我希望DBIx::Class::Schema::Loader为添加*ID的{​​{1}}列创建关系以获取表名。例如,s应该将表Order.SeanceID与表Order关联起来。

可以Seances被黑客攻击吗?还是编写自己的Loader更好?

1 个答案:

答案 0 :(得分:1)

不用担心“黑客” DBIx :: Class :: Schema :: Loader来处理这个问题。只需生成类,然后手动添加关系即可。

使用DBIx :: Class :: Schema :: Loader生成的每个类的底部都将包含如下所示的文本:

# Created by DBIx::Class::Schema::Loader v0.07043 @ 2018-07-09 09:56:55
# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:6//4n3Crnz9U/q6GZ0Fwtg

# You can replace this text with custom code or comments, and it will be preserved on regeneration

正如最后一条评论所述,如果重新生成该类,则在文本下方文件中插入的所有内容都将保留。因此,您可以安全地手动将关系信息添加到文件的此部分,并知道下次重新生成类时该信息仍然存在。

别忘了您需要添加关系的两面-例如,父表中的has_many关系和关联子表中的倒数belongs_to关系。