Можно ли использовать DBIx :: Class для создания таблиц?

Я не думаю, что понимаю объем DBIx::Class
Нужно ли мне сначала вручную создавать базу данных с обычным SQL, а затем использовать schemaloader (или вручную кодировать схему / наборы результатов)?
Или есть способ узнать DBIx::Class, чтобы продолжить и создать таблицы из схемы и набора результатов, закодированных вручную?
Я спрашиваю b / c, нужно ли мне создать базу данных с помощью оператора SQL CREATE TABLE, у меня есть практически дублированный столбец в коде ResultSet, ИЛИ мне нужно полагаться на schemaloader, который, как я полагаю, неэффективен и не подходит для производства.


person Ron Gonzales    schedule 09.10.2012    source источник


Ответы (2)


Вы можете deploy() свою схему:

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

Конечно, это приведет к удалению ваших существующих таблиц :)

person Tudor Constantin    schedule 09.10.2012

Вы можете пойти любым путем. Вы можете создать схему и получить DBIx :: Class, чтобы проанализировать его, или вы можете получить DBIx :: Class как создать схему для вас.

Первое не обязательно должно быть неэффективным для производства, поскольку вы можете получить DBIx :: Class в сохраните сгенерированный код, чтобы ему не приходилось выполнять анализ при каждом запуске.

person adrianh    schedule 09.10.2012