DBIx :: Class可以用来创建表吗?

Ron*_*les 8 perl dbix-class

我不认为我理解的范围DBIx::Class
我是否必须首先使用常规SQL手动创建数据库,然后使用模式加载器(或手动编写模式/结果集)?
或者有没有办法告诉DBIx::Class你继续从手动编码的模式和结果集创建表?
我问b/c是否需要通过SQL CREATE TABLE语句创建数据库,我的列基本上是在ResultSet代码中重复的,或者我需要依赖于schemaloader,我认为这种方法效率低且不适合生产.

Tud*_*tin 13

您可以使用deploy()您的架构:

my $schema = MyApp::Schema->connect(
          $dsn,
          $user,
          $password,
        );
$schema->deploy( { add_drop_table => 1 } );
Run Code Online (Sandbox Code Playgroud)

当然,上面会删除你现有的表:)


adr*_*anh 10

你可以去任何一条路线.您可以创建一个模式并获取DBIx :: Class来分析它,或者您可以让DBIx :: Class为您构建模式.

前者不一定非常低效,因为您可以使用DBIx :: Class来保存生成的代码,这样就不必每次运行都进行分析.