我们有一个MyISAM DB (不要问我为什么不切换到InnoDB,它不受我的控制)。
现在,我希望DBIx::Class::Schema::Loader为*ID列创建关系,添加s以获取表名。例如,Order.SeanceID应该将表Order与表Seances关联起来。
可以通过黑客攻击DBIx::Class::Schema::Loader来做到这一点吗?还是编写我自己的Loader更好?
发布于 2018-07-09 17:03:42
不用担心“黑客攻击”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关系。
https://stackoverflow.com/questions/51156209
复制相似问题