From d0386dd95fdf498287f373985030ee4edfed9a97 Mon Sep 17 00:00:00 2001 From: Rafael Ostertag <rafael.ostertag@math.uzh.ch> Date: Fri, 15 Jul 2016 12:25:14 +0200 Subject: [PATCH] Bumped version to 0.3. Database name must now be provided as cmd argument. --- setup.py | 2 +- xls2db.py | 8 +++++++- xls2dblib/db.py | 18 ++++++++++++------ 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/setup.py b/setup.py index 5a5f07c..25a2374 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from distutils.core import setup setup( name='xls2db', - version='0.2', + version='0.3', packages=['xls2dblib'], scripts=['xls2db.py'], url='https://git.math.uzh.ch/utilities/xsl2db', diff --git a/xls2db.py b/xls2db.py index f11ffbe..4d72ac5 100755 --- a/xls2db.py +++ b/xls2db.py @@ -1,7 +1,9 @@ #!/usr/bin/env python +from __future__ import print_function import argparse import getpass import logging +import sys __author__ = 'Rafael Ostertag <rafael.ostertag@math.uzh.ch>' @@ -20,6 +22,8 @@ def parse_argument(): nargs='*') parser.add_argument("--excel-file", help="Excel file to read. Can be a XSLX or XSL file.", required=True) parser.add_argument("--debug-output", help="Turn on debug output", action='store_true', default=False) + parser.add_argument("--drop-database", help="Drop existing database", action='store_true', default=False) + parser.add_argument("--database", help="Name of the database", default=None, required=True) return parser.parse_args() @@ -96,11 +100,13 @@ if __name__ == "__main__": if arguments.user: server_connection_info['user'] = arguments.user + excel_file = excel.ExcelFile(arguments.excel_file) - database = db.create_database('tmp', **server_connection_info) + database = db.create_database(arguments.database, arguments.drop_database, **server_connection_info) sheet_info_list = make_sheet_info_from_argument(excel_file, arguments.sheet) for sheet_info in sheet_info_list: import_sheet(database, excel_file, sheet_info) print(database.database_name) + diff --git a/xls2dblib/db.py b/xls2dblib/db.py index 29f663a..d5c89b0 100644 --- a/xls2dblib/db.py +++ b/xls2dblib/db.py @@ -19,22 +19,28 @@ def _make_database_name(prefix): def _make_database_create(name): - return "CREATE DATABASE {};".format(name) + return "CREATE DATABASE IF NOT EXISTS {};".format(name) +def _make_database_drop(name): + return "DROP DATABASE IF EXISTS {};".format(name) -def create_database(prefix, **kwargs): + +def create_database(name, drop=False, **kwargs): db = MySQLdb.connect(**kwargs) logger.debug('Connected to server %s', kwargs['host']) cursor = db.cursor() - database_name = _make_database_name(prefix) - sql = _make_database_create(database_name) + if drop: + sql = _make_database_drop(name) + cursor.execute(sql) + sql = _make_database_create(name) cursor.execute(sql) - logger.debug('Created database %s', database_name) - return Database(database_name, **kwargs) + logger.debug('Created database %s', name) + + return Database(name, **kwargs) class Database(object): -- GitLab