---
name: "DBIx::Class::Admin"
section: "3pm"
platform: "linux"
package: "libdbix-class-perl"
version: "0.082844-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/DBIx::Class::Admin"
---

# DBIx::Class::Admin(3pm)

Administration object for schemas

## NAME

DBIx::Class::Admin - Administration object for schemas

## SYNOPSIS

```
  $ dbicadmin --help
  $ dbicadmin --schema=MyApp::Schema \
    --connect='["dbi:SQLite:my.db", "", ""]' \
    --deploy
  $ dbicadmin --schema=MyApp::Schema --class=Employee \
    --connect='["dbi:SQLite:my.db", "", ""]' \
    --op=update --set='{ "name": "New_Employee" }'
  use DBIx::Class::Admin;
  # ddl manipulation
  my $admin = DBIx::Class::Admin->new(
    schema_class=> 'MY::Schema',
    sql_dir=> $sql_dir,
    connect_info => { dsn => $dsn, user => $user, password => $pass },
  );
  # create SQLite sql
  $admin->create('SQLite');
  # create SQL diff for an upgrade
  $admin->create('SQLite', {} , "1.0");
  # upgrade a database
  $admin->upgrade();
  # install a version for an unversioned schema
  $admin->install("3.0");
```

## REQUIREMENTS

The Admin interface has additional requirements not currently part of DBIx::Class. See DBIx::Class::Optional::Dependencies for more details.

## ATTRIBUTES

### schema\_class

the class of the schema to load

### schema

A pre-connected schema object can be provided for manipulation

### resultset

a resultset from the schema to operate on

### where

a hash ref or json string to be used for identifying data to manipulate

### set

a hash ref or json string to be used for inserting or updating data

### attrs

a hash ref or json string to be used for passing additional info to the -\>search call

### connect\_info

connect\_info the arguments to provide to the connect call of the schema\_class

### config\_file

config\_file provide a config\_file to read connect\_info from, if this is provided config\_stanze should also be provided to locate where the connect\_info is in the config The config file should be in a format readable by Config::Any.

### config\_stanza

config\_stanza for use with config\_file should be a '::' delimited 'path' to the connection information designed for use with catalyst config files

### config

Instead of loading from a file the configuration can be provided directly as a hash ref.  Please note config\_stanza will still be required.

### sql\_dir

The location where sql ddl files should be created or found for an upgrade.

### sql\_type

The type of sql dialect to use for creating sql files from schema

### version

Used for install, the version which will be 'installed' in the schema

### preversion

Previous version of the schema to create an upgrade diff for, the full sql for that version of the sql must be in the sql\_dir

### force

Try and force certain operations.

### quiet

Be less verbose about actions

### trace

Toggle DBIx::Class debug output

## METHODS

### create

- Arguments: $sqlt\_type, \\%sqlt\_args, $preversion

  `"create"` will generate sql for the supplied schema\_class in sql\_dir. The flavour of sql to generate can be controlled by supplying a sqlt\_type which should be a SQL::Translator name.

Arguments for SQL::Translator can be supplied in the sqlt\_args hashref.

Optional preversion can be supplied to generate a diff to be used by upgrade.

### upgrade

- Arguments: \<none\>

  upgrade will attempt to upgrade the connected database to the same version as the schema\_class. **MAKE SURE YOU BACKUP YOUR DB FIRST**

### install

- Arguments: $version

  install is here to help when you want to move to DBIx::Class::Schema::Versioned and have an existing database.  install will take a version and add the version tracking tables and 'install' the version.  No further ddl modification takes place.  Setting the force attribute to a true value will allow overriding of already versioned databases.

### deploy

- Arguments: $args

  deploy will create the schema at the connected database.  `$args` are passed straight to "deploy" in DBIx::Class::Schema.

### insert

- Arguments: $rs, $set

  insert takes the name of a resultset from the schema\_class and a hashref of data to insert into that resultset

### update

- Arguments: $rs, $set, $where

  update takes the name of a resultset from the schema\_class, a hashref of data to update and a where hash used to form the search for the rows to update.

### delete

- Arguments: $rs, $where, $attrs

  delete takes the name of a resultset from the schema\_class, a where hashref and a attrs to pass to -\>search. The found data is deleted and cannot be recovered.

### select

- Arguments: $rs, $where, $attrs

  select takes the name of a resultset from the schema\_class, a where hashref and a attrs to pass to -\>search. The found data is returned in a array ref where the first row will be the columns list.

## FURTHER QUESTIONS?

Check the list of additional DBIC resources.

## COPYRIGHT AND LICENSE

This module is free software copyright by the DBIx::Class (DBIC) authors. You can redistribute it and/or modify it under the same terms as the DBIx::Class library.
