Search code examples
perldbix-class

Can DBIx::Class be used to create tables?


I do not think I understand the scope of DBIx::Class
Do I have to manually create a database with regular SQL first, then use the schemaloader (or manually code the schema/resultsets)?
Or is there a way to tell DBIx::Class to go ahead and create the tables from a manually coded schema and resultset?
I ask b/c if I need to create the database via SQL CREATE TABLE statement, I have the column essentially duplicated in the ResultSet code, OR I need to rely on schemaloader which I assume is inefficient and inappropriate for production.


Solution

  • You can deploy() your schema:

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

    Of course, the above will drop your existing tables :)