initializedb.py
4.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
import os
import sys
import transaction
from pyramid.paster import (
get_appsettings,
setup_logging,
)
from sqlalchemy import (
engine_from_config,
)
from tangsel.base import Base
from tangsel.base.models import DBSession
from tangsel.base.scripts.initializedb import append_csv, reset_sequences, \
alembic_run
from tangsel.models import Group, Permission, GroupPermission
from ..models import *
from ..models import (
PbbmDBSession as ModuleDBSession,
)
def get_file(filename):
base_dir = os.path.split(__file__)[0]
fullpath = os.path.join(base_dir, 'data', filename)
return open(fullpath)
def usage(argv):
pass
def main(argv=sys.argv):
if len(argv) != 2:
usage(argv)
config_uri = argv[1]
setup_logging(config_uri)
settings = get_appsettings(config_uri)
# engine = engine_from_config(settings, 'pbb.')
# PbbDBSession.configure(bind=engine)
# PbbBase.metadata.bind = engine
# PbbBase.metadata.create_all()
engine = engine_from_config(settings, 'sqlalchemy.')
DBSession.configure(bind=engine)
Base.metadata.bind = engine
Base.metadata.create_all(engine)
# alembic_run(config_uri, "alembic_pbbm")
reset_sequences()
if "lib_dir" in settings and settings["lib_dir"]:
try:
from cx_Oracle import init_oracle_client
except:
from oracledb import init_oracle_client
lib_dir = rf"{settings['lib_dir']}"
init_oracle_client(lib_dir=lib_dir)
url = 'pbbm.url' in settings and settings['pbbm.url'] and 'pbbm.' or None
if not url:
url = 'pbb.url' in settings and settings['pbb.url'] and 'pbb.' or 'sqlalchemy.'
engine = engine_from_config(settings, url)
PbbmDBSession.configure(bind=engine)
PbbmBase.metadata.bind = engine
PbbmBase.metadata.create_all(engine)
# engine = ModuleDBSession.bind
# create_schema(engine, pbbm_schema)
# ModuleBase.metadata.create_all(engine)
# ModuleDBSession.configure(bind=engine)
# initial_data.insert()
print('>>Append Table')
# append_csv(Route, 'routes.csv', ['kode'], get_file_func=get_file, update_exist=True)
# append_csv(Menus, 'menus.csv', ['kode'], get_file_func=get_file, update_exist=False)
append_csv(Group, 'group.csv', ['group_name'],
get_file_func=get_file, update_exist=True)
append_csv(Permission, 'permissions.csv', ['perm_name'], get_file_func=get_file,
update_exist=True)
append_csv(GroupPermission, 'group_permission.csv', ['group_id', 'perm_name'],
get_file_func=get_file, update_exist=True)
# append_csv(Parameter, "parameters.csv", ["kode"], get_file_func=get_file)
# append_csv(PbbPelayanan, "layanan.csv", ["kode"], get_file_func=get_file)
# append_csv(PbbSyarat, "syarat.csv", ["kode"], get_file_func=get_file)
# transaction.commit()
# append_csv(PbbSyaratPelayanan,"layanan_syarat.csv", ["pelayanan_id", "syarat_id"], get_file_func=get_file)
transaction.commit()
print('****PBBM CREATED****')
# import os
# import sys
# import transaction
# import subprocess
# from sqlalchemy import (
# engine_from_config,
# select,
# )
# from sqlalchemy.schema import CreateSchema
# from pyramid.paster import (
# get_appsettings,
# setup_logging,
# )
#
# from ..models import (
# PbbmDBSession as ModuleDBSession,
# PbbmBase as ModuleBase,
# )
#
# from ..models import *
# from . import initial_data
# #from .tools import mkdir
#
# from ...scripts.initializedb import create_schema, read_file
# from ..tools import get_settings
# from ..models import pbbm_schema
# def main(settings):
# transaction.commit()
#
# url = 'pbb.url' in settings and settings['pbb.url'] and 'pbb.' or None
# if not url:
# url = 'pbbm.url' in settings and settings['pbbm.url'] and 'pbbm.' or 'sqlalchemy.'
# engine = engine_from_config(settings, url)
# PbbmDBSession.configure(bind=engine)
# PbbmBase.metadata.bind = engine
#
# engine = ModuleDBSession.bind
# create_schema(engine, pbbm_schema)
# ModuleBase.metadata.create_all(engine)
# ModuleDBSession.configure(bind=engine)
# initial_data.insert()
# transaction.commit()
# print('****PBBM CREATED****')