refactor kontor-schema by moving classes to seprate modules
This commit is contained in:
committed by
Thomas Peetz
parent
71ecfaff1f
commit
7dc18b10cb
@@ -0,0 +1,7 @@
|
||||
from enum import Enum
|
||||
|
||||
class ArgumentData(Enum):
|
||||
EXPORT_TYPE = 'export_type'
|
||||
DB_FILE = 'db_file'
|
||||
DATA_TYPE = 'data_type'
|
||||
DELETE_FIRST = 'delete_first'
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import mariadb
|
||||
from cement import Controller, ex
|
||||
|
||||
from kontor.controllers import ArgumentData
|
||||
|
||||
|
||||
class Database(Controller):
|
||||
class Meta:
|
||||
@@ -24,16 +26,16 @@ class Database(Controller):
|
||||
)
|
||||
def export(self):
|
||||
data = {
|
||||
'db_file': 'data.json',
|
||||
'export_type': 'JSON',
|
||||
ArgumentData.DB_FILE: 'data.json',
|
||||
ArgumentData.EXPORT_TYPE: 'JSON',
|
||||
}
|
||||
if self.app.pargs.db_file is not None:
|
||||
data['db_file'] = self.app.pargs.db_file
|
||||
data[ArgumentData.DB_FILE] = self.app.pargs.db_file
|
||||
db = self.app.kontor_db
|
||||
self.app.log.info(f"export DB to {data['db_file']} as {data['export_type']}")
|
||||
results = db.export_db(data['export_type'], data['db_file'])
|
||||
data['results'] = results
|
||||
self.app.render(data, 'export_db.jinja2')
|
||||
self.app.log.info(f"export DB to {data[ArgumentData.DB_FILE]} as {data[ArgumentData.EXPORT_TYPE]}")
|
||||
results = db.export_db(data[ArgumentData.EXPORT_TYPE], data[ArgumentData.DB_FILE])
|
||||
for key, value in results.items():
|
||||
self.app.log.info(f"{key}: {value}")
|
||||
|
||||
@ex(
|
||||
label='import',
|
||||
@@ -51,16 +53,18 @@ class Database(Controller):
|
||||
)
|
||||
def import_cmd(self):
|
||||
data = {
|
||||
'db_file': 'data.json',
|
||||
'data_type': 'JSON',
|
||||
'delete_first': False,
|
||||
ArgumentData.DB_FILE: 'data.json',
|
||||
ArgumentData.DATA_TYPE: 'JSON',
|
||||
ArgumentData.DELETE_FIRST: False,
|
||||
}
|
||||
if self.app.pargs.db_file is not None:
|
||||
data['db_file'] = self.app.pargs.db_file
|
||||
data[ArgumentData.DB_FILE] = self.app.pargs.db_file
|
||||
if self.app.pargs.delete_first is not None:
|
||||
data['delete_first'] = self.app.pargs.delete_first
|
||||
data[ArgumentData.DELETE_FIRST] = self.app.pargs.delete_first
|
||||
db = self.app.kontor_db
|
||||
db.import_db(data['db_file'], data['delete_first'])
|
||||
if data[ArgumentData.DELETE_FIRST]:
|
||||
db.delete_entries()
|
||||
db.import_db(data[ArgumentData.DB_FILE])
|
||||
|
||||
@ex(
|
||||
help='check the db schema against MetaDataTable and MetaDataColumn'
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
Following tables were exported:
|
||||
|
||||
{% for key, value in results.items() %}
|
||||
Table {{key}}: {{value}} entries
|
||||
{% endfor %}
|
||||
Reference in New Issue
Block a user