NAME

Interchange6::Schema::Manual::DatabaseSupport - Details of database engine support for Interchange6

MySQL

MySQL databases should be created with UTF8 encoding and appropriate collation for your local, for example:

CREATE DATABASE "my_shop_db"
    DEFAULT CHARACTER SET utf8
    DEFAULT COLLATE utf8_general_ci;

The following Connection attributes are recommended as a minimum for MySQL:

mysql_enable_utf8 => 1,
on_connect_call   => 'set_strict_mode',
quote_names       => 1,

YAML-formatted configuration example for Dancer::Plugin::DBIC:

DBIC:
  default:
    dsn: "dbi:mysql:database=mydb;mysql_socket=/tmp/mysql.sock"
    user: myuser
    password: mypassword
    schema_class: Interchange6::Schema
    options:
      mysql_enable_utf8: 1
      on_connect_call: set_strict_mode
      quote_names: 1

PostgreSQL

PostgreSQL databases should be created with UT8 encoding, for example:

createdb -E UTF8 my_shop_db

The following Connection attributes are recommended as a minimum for PostgreSQL:

on_connect_do  => 'SET client_min_messages=WARNING;',
pg_enable_utf8 => 1,
quote_names    => 1,

YAML-formatted configuration example for Dancer::Plugin::DBIC:

DBIC:
  default:
    dsn: dbi:Pg:dbname=mydb
    user: myuser
    password: mypassword
    schema_class: Interchange6::Schema
    options:
      on_connect_do: 'SET client_min_messages=WARNING;'
      pg_enable_utf8: 1
      quote_names: 1

SQLite

Although we support SQLite in as much that all tests are run against it we do not recommend its use in a production environment.

The following Connection attributes are recommended as a minimum for SQLite:

on_connect_call => 'use_foreign_keys',
sqlite_unicode  => 1,
quote_names     => 1,

In addition the following attribute can be useful for test use only for greatly improved performance:

on_connect_do   => 'PRAGMA synchronous = OFF',