initializedb.py 1.21 KB
import os
import sys

import transaction
from pyramid.paster import (
    get_appsettings,
    setup_logging,
)
from sqlalchemy import (
    engine_from_config,
)

from tangsel.base.models import (
    DBSession,
    Group,
    Permission,
    GroupPermission,
)
from tangsel.base.scripts.initializedb import append_csv
from tangsel.base.models import Base
from ..models.es_log import *


def get_file(filename):
    base_dir = os.path.split(__file__)[0]
    fullpath = os.path.join(base_dir, 'data', filename)
    return open(fullpath)


def main(argv=sys.argv):
    print('*** Module va/pemda begin ***')
    config_uri = argv[1]
    setup_logging(config_uri)
    settings = get_appsettings(config_uri)
    engine = engine_from_config(settings, 'sqlalchemy.')
    Base.metadata.bind = engine
    Base.metadata.create_all(bind=engine)
    DBSession.configure(bind=engine)
    append_csv(Group, 'group.csv', ['group_name'], get_file_func=get_file)
    append_csv(Permission, 'permission.csv', [
               'perm_name'], get_file_func=get_file)
    append_csv(GroupPermission, 'group_permission.csv', [
               'group_id', 'perm_name'], get_file_func=get_file)
    transaction.commit()
    print('*** Module e-sppt done ***')