Commit 915e5068 by aa.gusti

perbaikan initializedb sqlalchemy 2.0

1 parent 1279c7b2
......@@ -11,7 +11,6 @@ from opensipkd.models import (
User, Route, Eselon, Jabatan, ResProvinsi, ResDati2, ResKecamatan, ResDesa,
Menus, Pangkat)
from opensipkd.models.handlers import LogDBSession
from opensipkd.tools import get_ext
from pyramid.paster import (get_appsettings, setup_logging, )
from sqlalchemy import (engine_from_config, select, Table, inspect)
from sqlalchemy import text
......@@ -20,6 +19,8 @@ from sqlalchemy.schema import CreateSchema
from sqlalchemy.sql.sqltypes import BOOLEAN
from ziggurat_foundations.models.services.user import UserService
from opensipkd.tools import get_ext
log = logging.getLogger(__name__)
......@@ -61,6 +62,7 @@ def get_file(filename):
def restore_csv(table, filename, get_file_func=get_file, db_session=DBSession):
eng = db_session.get_bind()
q = db_session.query(table)
if q.first():
return
......@@ -96,7 +98,9 @@ def restore_csv(table, filename, get_file_func=get_file, db_session=DBSession):
# foreign_table, foreign_field = t[1].split('.')
foreign_table = Table(foreign_table, Base.metadata,
autoload=True, schema=schema)
# autoload=True,
autoload_with=eng,
schema=schema)
foreign_field = getattr(foreign_table.c, foreign_field)
foreigns[fieldname] = (foreign_table, foreign_field)
fmap[fieldname] = fname_orig
......@@ -106,8 +110,14 @@ def restore_csv(table, filename, get_file_func=get_file, db_session=DBSession):
if fieldname in foreigns:
foreign_table, foreign_field = foreigns[fieldname]
value = cf[fieldname]
sql = select([foreign_table]).where(foreign_field == value)
q = Base.metadata.bind.execute(sql)
# merubah v1.4 ke v.2
# sql = select([foreign_table]).where(foreign_field == value)
sql = select(foreign_table).where(foreign_field == value)
# merubah v1.4 ke v.2
# q = Base.metadata.bind.execute(sql)
with eng.connect() as conn:
q = conn.execute(sql)
ft = q.fetchone()
val = ft and ft.id or None
fieldname = fmap[fieldname]
......@@ -140,12 +150,14 @@ def restore_csv(table, filename, get_file_func=get_file, db_session=DBSession):
# sperti salah route url asalkan kode msh sama
def append_csv(table, filename, keys, get_file_func=get_file,
db_session=DBSession, **args):
eng = db_session.get_bind()
update_exist = args.get("update_exist")
callback = args.get("callback")
delimiter = args.get("delimiter")
ext = get_ext(filename).lower()
log.debug(f"Extension: {ext.strip()}")
log.debug(f"Extension: {ext.strip()=='.tsv'}")
log.debug(f"Extension: {ext.strip() == '.tsv'}")
if not delimiter:
delimiter = ","
if ext.strip() == '.tsv':
......@@ -191,7 +203,9 @@ def append_csv(table, filename, keys, get_file_func=get_file,
foreign_field = t_array[2]
foreign_table = Table(foreign_table, Base.metadata,
autoload=True, schema=schema)
# autoload=True, # merubah v1.4 ke v.2
autoload_with=eng,
schema=schema)
foreign_field = getattr(foreign_table.c, foreign_field)
foreigns[fname] = (foreign_table, foreign_field)
......@@ -209,11 +223,14 @@ def append_csv(table, filename, keys, get_file_func=get_file,
value = callback("mapping", table=foreign_table, field=foreign_field,
value=value)
sql = select([foreign_table]).where(foreign_field == value)
# merubah v1.4 ke v.2
# sql = select([foreign_table]).where(foreign_field == value)
sql = select(foreign_table).where(foreign_field == value)
log.debug(f"Query Foreignkey: {str(sql)}")
# connection = DBSession.connection()
q = Base.metadata.bind.execute(sql)
# q = connection.execute(sql)
# merubah v1.4 ke v.2
# q = Base.metadata.bind.execute(sql)
with eng.connect() as conn:
q = conn.execute(sql)
row = q.fetchone()
value = row and row.id or None
q.close()
......@@ -255,7 +272,8 @@ def append_csv(table, filename, keys, get_file_func=get_file,
# Penambahan checking field nullable false wajib ada datanya 2024-09-05
for c in columns_table:
if (not c["nullable"] and c["name"] not in data and c["name"] != "id"):
raise Exception(f"Table {str(table.__name__)} Field '{c['name']}' wajib ada {c['type']} ")
raise Exception(
f"Table {str(table.__name__)} Field '{c['name']}' wajib ada {c['type']} ")
db_session.add(row)
db_session.flush()
......
sqlalchemy~=1.4.22
pyramid~=2.0
colander~=1.8.3
deform~=2.0.15
transaction~=3.0.1
colorama~=0.4.4
Pillow>=9.1.1
lxml>=4.9.0
beautifulsoup4>=4.11.1
soupsieve>=2.3.2.post1
pip~=22.3.1
wheel~=0.38.4
rsa>=4.8
pyasn1~=0.4.8
Chameleon>=3.10.1
six~=1.16.0
Mako>=1.2.0
Babel~=2.11.0
Beaker~=1.11.0
Pygments>=2.12.0
MarkupSafe>=2.1.1
Genshi~=0.7.5
pytz>=2022.1
WebOb~=1.8.7
translationstring~=1.4
peppercorn~=0.6
iso8601>=1.0.2
google~=3.0.0
cachetools>=5.2.0
certifi~=2022.9.24
urllib3~=1.26.6
requests>=2.28.0
google-api-python-client>=2.51.0
python-dateutil~=2.8.2
alembic>=1.8.0
passlib~=1.7.4
venusian~=3.0.0
plaster~=1.0
hupper~=1.10.3
waitress>=2.1.2
greenlet~=2.0.1
pyparsing>=3.0.9
httplib2>=0.20.4
icecream~=2.1.1
executing~=1.2.0
paginate~=0.5.6
idna~=3.2
asttokens~=2.1.0
setuptools>=57.4.0
uritemplate>=4.1.1
reportlab~=3.6.1
PyJWT>=2.4.0
py~=1.11.0
attrs~=22.1.0
pytest~=7.2.0
pluggy~=1.0.0
iniconfig~=1.1.1
cffi>=1.15.0
cryptography>=37.0.2
jwt>=1.3.1
pikepdf>=5.1.5
packaging>=21.3
pycparser>=2.21
pyramid_rpc
zipp~=3.8.0
papyrus~=2.4
geojson~=2.5.0
pybind11~=2.9.2
qrcode~=7.3.1
exceptiongroup~=1.0.4
Shapely~=1.8.5.post1
GeoAlchemy~=0.7.2
tandur~=0.0.1b0
\ No newline at end of file
......@@ -13,7 +13,7 @@ version = line.split()[0]
requires = [
'sqlalchemy',
'wheel',
'colander==1.8.3',
'colander',
'pyramid',
'pyramid_tm',
"pyramid_beaker",
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!