为什么create = dynamic已被弃用?

时间:2012-03-02 05:37:57

标签: perl sqlite dbi catalyst

我正在使用下面给出的命令创建数据库模型。

script/myapp2_create.pl model TestDatabase DBIC::Schema \ MyApp2::Schema::TestDatabase create=dynamic \ dbi:SQLite:/tmp/database

我收到一条警告说:

************************************ WARNING **********************************
* create=dynamic is DEPRECATED, please use create=static instead.             *
*******************************************************************************

我可以知道为什么不推荐使用create = dynamic吗?我知道

  

create = dynamic告诉DBIC每次都读取数据库   应用程序启动以确定架构(表的布局,   外键关系等。)

但是这有什么问题?为什么create = static是首选?

2 个答案:

答案 0 :(得分:2)

来自the Catalyst manual

  

虽然DBIx :: Class包含了对create = dynamic模式的支持,以便在每次应用程序启动时自动读取数据库结构,但不再推荐使用它。虽然它可以用于“华而不实”的演示,但我们在下面使用的create = static模式的使用可以同样快速地实现并提供许多优点(例如能够将自己的方法添加到整个DBIC框架,这是一种技术,我们在第4章中看到。

答案 1 :(得分:1)

猜测:可能是因为动态加载功能已移至Schema::Loader