【问题标题】:How to create schema for already existing model in catalyst perl如何在催化剂 perl 中为现有模型创建模式
【发布时间】:2015-02-23 22:35:43
【问题描述】:

我正在使用 perl Catalyst。我为模型名称为MyDBI.pm 的数据库创建了模型和架构,并在 SchemaClass/Result 目录中创建了架构。现在我在我的数据库中添加了一个新表。现在我只需要为那个表创建一个模式。我用于创建架构的以下命令

perl script/my_create.pl model MyDBI DBIC::Schema 
    My::SchemaClass::Result::Tablename create=dynamic 
    components=TimeStamp 'dbi:Pg:dbname=mydb' username 123 '{ AutoCommit => 1}'

但它再次创建MyDBI.pmMyDBI.pm.new. 那么我如何在不创建MyDBI.pm 的情况下创建。

提前致谢....

【问题讨论】:

    标签: perl catalyst


    【解决方案1】:

    只要把Schema/Result/.pm classes下的classes只编辑到标记线下,它重新创建就没有问题了?这样你就知道你的模型总是最新的。 模型中的类(MyDBI.pm)只包含连接信息,对吧?

    在 Schema 类中,您会找到这样标记的行:

    # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:+ZwJisOqZAkKLq170l/CNA
    

    【讨论】:

      【解决方案2】:

      不直接将 Schema 类添加到 Result.pm 中更常见,我认为更简洁,这会变得混乱,

      但到 Schema/Result/ 目录,例如 ..../Schema/Result/New.pm -> Schema::Result::New

      然后在包里use base qw/DBIx::Class::Core/;就设置成可以正常使用了。

      Catalyst 会发现这些并自动为您设置。

      【讨论】:

        猜你喜欢
        • 2014-07-23
        • 1970-01-01
        • 1970-01-01
        • 2014-05-30
        • 1970-01-01
        • 2013-02-19
        • 1970-01-01
        • 1970-01-01
        • 2019-12-14
        相关资源
        最近更新 更多