From 2468d5a699903e49e332b21818955e7dd0ff060b Mon Sep 17 00:00:00 2001 From: Julian Rother <julianr@fsmpi.rwth-aachen.de> Date: Fri, 19 Aug 2016 04:38:51 +0200 Subject: [PATCH] Implement database initialisation --- .gitignore | 1 + config.py | 2 ++ server.py | 16 ++++++++++++++++ 3 files changed, 19 insertions(+) diff --git a/.gitignore b/.gitignore index 1a6ee45..d4ec164 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *.swp config.py __pycache__ +*.sqlite diff --git a/config.py b/config.py index d8e9800..7c9da57 100644 --- a/config.py +++ b/config.py @@ -9,3 +9,5 @@ DEBUG = True SQLITE_DB = 'db.sqlite' DB_ENGINE = 'sqlite' +SQLITE_INIT_SCHEMA = True +SQLITE_INIT_DATA = True diff --git a/server.py b/server.py index 2442fcf..d1d4aaa 100755 --- a/server.py +++ b/server.py @@ -2,11 +2,27 @@ from flask import Flask, render_template, g import mysql.connector import sqlite3 +import os app = Flask(__name__) config = app.config +config['DB_SCHEMA'] = 'db_schema.sql' +config['DB_DATA'] = 'db_example.sql' +config['SQLITE_INIT_SCHEMA'] = False +config['SQLITE_INIT_DATA'] = False config.from_pyfile('config.py') +if config['DB_ENGINE'] == 'sqlite': + created = not os.path.exists(config['SQLITE_DB']) + db = sqlite3.connect(config['SQLITE_DB']) + cur = db.cursor() + if config['SQLITE_INIT_SCHEMA']: + cur.executescript(open(config['DB_SCHEMA']).read()) + if config['SQLITE_INIT_DATA'] and created: + cur.executescript(open(config['DB_DATA']).read()) + db.commit() + db.close() + # Row wrapper for sqlite def dict_factory(cursor, row): d = {} -- GitLab