From c6acd8e1f5e0e06a025e6e832b5da94e40607261 Mon Sep 17 00:00:00 2001 From: Brett Sun Date: Mon, 5 Dec 2016 20:19:26 +0100 Subject: [PATCH] Add generic init_database() function to set up database schema --- bigchaindb/backend/schema.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/bigchaindb/backend/schema.py b/bigchaindb/backend/schema.py index 18d85d51..7c5f4710 100644 --- a/bigchaindb/backend/schema.py +++ b/bigchaindb/backend/schema.py @@ -2,6 +2,9 @@ from functools import singledispatch +import bigchaindb +from bigchaindb.backend.connection import connect + @singledispatch def create_database(connection, name): @@ -53,3 +56,25 @@ def drop_database(connection, name): """ raise NotImplementedError + + +def init_database(name=None): + """Initialize the configured backend for use with BigchainDB. + + Creates a database with :attr:`name` with any required tables + and supporting indexes. + + Args: + name (str): the name of the database to create. + + Raises: + :exc:`~bigchaindb.common.exceptions.DatabaseAlreadyExists`: If the + given :attr:`name` already exists as a database. + """ + + conn = connect() + name = name or bigchaindb.config['database']['name'] + + create_database(conn, name) + create_tables(conn, name) + create_indexes(conn, name)