我目前正在使用DBIC Schema Loader函数make_schema_at将我现有的数据库转储到其架构中。一旦模式被转储,我通常喜欢进入并清理关系中的访问者名称以便更好地阅读。
但有时我需要再次更新我的架构,例如添加一个新表和关系,这意味着再次调用make_schema_at,然后重命名我的所有访问器,这非常耗时。
对于任何人都可以推荐的更好的方法吗?
谢谢。答案 0 :(得分:3)
是的,有多种解决方案。
使用Schema :: Loader的配置选项指定生成名称的subs和/或使DBIC模式成为主数据。
在这种情况下,您编写一个新的结果类,而不是在数据库中创建表,并使用DBIC的功能来生成DDL查询。
您甚至可以使用DBIx :: Class :: Migration自动化对数据库的DDL更改。
答案 1 :(得分:0)
永远不要在生成的DBIC模式文件中编辑MD5哈希上方的代码。你只是为自己制造麻烦。
值得花些时间阅读DBIx::Class::Schema::Loader::Base的文档。特别是,仔细查看“moniker_map”,“col_accessor_map”和“rel_name_map”属性。