如何使用DBIC make_schema_at更新架构?

时间:2014-01-04 10:06:47

标签: mysql perl schema dbix-class

我目前正在使用DBIC Schema Loader函数make_schema_at将我现有的数据库转储到其架构中。一旦模式被转储,我通常喜欢进入并清理关系中的访问者名称以便更好地阅读。

但有时我需要再次更新我的架构,例如添加一个新表和关系,这意味着再次调用make_schema_at,然后重命名我的所有访问器,这非常耗时。

对于任何人都可以推荐的更好的方法吗?

谢谢。

2 个答案:

答案 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”属性。