aw schriftzug.png aw logo 60x60.png

internal package Foswiki::DBI

See PublishedAPI for packages intended to be used by Plugin and Contrib authors, or browse all packages.
See also Developing plugins, Developer's Bible, Technical Overview

  • Foswiki::DBI::Database
  • Foswiki::DBI::Schema - A schema is used to define tables and indexes in an SQL database. Plugins may define a schema for their own needs by subclassing this class. In general a plugin must define a schema class for each database vendor it desires to support, such as SQLite, MariaDB, Oracle etc.

internal package Foswiki::DBI

Interface for Foswiki DBI developers

StaticMethod getDB() → $database

Creates a database connection to the configured implementation, connects to it and loads the base schema.

StaticMethod loadSchema($schemaBase) → $database

Loads a database schema and returns the db. The $schemaBase is the base perl class of the caller. The real database schema being loaded resides in a sub class of the $schemaBase according to the database implementation of the system.

For example a MyPlugin must provide the following classes to support SQLite and MariaDB:

Foswiki::Plugins::MyPlugin::Schema
Foswiki::Plugins::MyPlugin::Schema::MariaDB
Foswiki::Plugins::MyPlugin::Schema::SQLite

The schema is then called using:

my $db = Foswiki::DBI::loadSchema("Foswiki::Plugins::MyPlugin::Schema");

Given MariaDB is the current database implementation, it actually loads the schema Foswiki::Plugins::MyPlugin::Schema::MariaDB and returns a singleton database object of type Foswiki::DBI::Database::MariaDB. This singleton object is shared among all subsystems connecting to the database.

StaticMethod finish()

Close any database connection being made during the session

Topic revision: r1 - 2018-02-27, UnknownUser
This site is powered by FoswikiCopyright &© by the contributing authors. All material on this site is the property of the contributing authors.
Ideas, requests, problems regarding Wiki? Send feedback