Commit 72ebe4ad by aa.gusti

perbaikan report di windows dan migrasi

1 parent bc223f84
"""create table
Revision ID: 8e703a7a0657
Revises: 671617e55c56
Create Date: 2024-11-16 09:03:42.025169
"""
# revision identifiers, used by Alembic.
revision = '8e703a7a0657'
down_revision = '671617e55c56'
branch_labels = None
depends_on = None
from alembic import op
import sqlalchemy as sa
def upgrade():
pass
def downgrade():
pass
......@@ -42,7 +42,6 @@ def create_schema(engine, schema):
if isinstance(engine.dialect, oracle.dialect):
sql = select(['owner']).select_from('dba_segments').where(
"owner = '%s'" % schema.upper())
print(sql)
with engine.connect() as conn:
q = conn.execute(sql)
if not q.fetchone():
......@@ -388,4 +387,4 @@ def main(argv=sys.argv):
transaction.commit()
restore_csv(ResKecamatan, 'kecamatan.csv')
transaction.commit()
restore_csv(ResDesa, 'desa.csv')
restore_csv(ResDesa, 'desa.csv')
\ No newline at end of file
......@@ -49,13 +49,46 @@ def jasper_export(input_file, output_file=None, schema=None,
db_driver = db_driver_port[db_driver][0]
log.info(jdbc_dir)
input_file = input_file.split(":")
# if os.name == 'nt' and len(input_file)>1:
# input_file=[input_file[0]]
# if len(input_file) > 1:
# path = __import__()
# path = os.path.dirname(path.__file__)
# input_file = os.path.join(path, input_file[1])
# else:
# input_file=input_file[0]
module_file = None
if len(input_file) > 1:
path = __import__(input_file[0])
path = os.path.dirname(path.__file__)
input_file = os.path.join(path, input_file[1])
if os.name == 'nt':
if len(input_file) > 2:
module_file = input_file[0]
input_file = ":".join([input_file[1], input_file[2]])
else:
input_file = ":".join([input_file[0], input_file[1]])
else:
module_file = input_file[0]
input_file = input_file[1]
if module_file:
path = __import__(module_file)
path = os.path.dirname(path.__file__)
input_file = os.path.join(path, input_file)
else:
input_file=input_file[0]
input_file = input_file[0]
log.debug(f"Input File: {input_file}" )
# if len(input_file) > 1:
# path = __import__()
# path = os.path.dirname(path.__file__)
# input_file = os.path.join(path, input_file[1])
# else:
# input_file = os.path.join(path, input_file[0])
# if not output_file:
# output_file = get_params("tmp_report", "/tmp")
# output_file = os.path.join(output_file, get_random_string(32))
#
if not output_file:
output_file = get_params("tmp_report", "/tmp")
output_file = os.path.join(output_file, get_random_string(32))
......@@ -93,4 +126,4 @@ def jasper_export(input_file, output_file=None, schema=None,
pyreportjasper.process_report()
output_files = [".".join([output_file, f]) for f in output_formats]
log.info(output_files)
return output_files
return output_files
\ No newline at end of file
Generic single-database configuration.
\ No newline at end of file
"""Pyramid bootstrap environment. """
import logging
import os
import importlib.machinery
from alembic import context
from pyramid.paster import (
get_appsettings,
setup_logging,
)
from sqlalchemy import engine_from_config
from opensipkd.models.meta import Base
config = context.config
setup_logging(config.config_file_name)
settings = get_appsettings(config.config_file_name)
logging.info(settings)
target_metadata = Base.metadata
current_dir = os.path.split(__file__)[0]
helper_file = os.path.join(current_dir, 'helpers.py')
loader = importlib.machinery.SourceFileLoader('alembic_helpers', helper_file)
helpers = loader.load_module()
version_table = 'alembic_models'
version_table_schema = 'public'
def run_migrations_offline():
"""Run migrations in 'offline' mode.
This configures the context with just a URL
and not an Engine, though an Engine is acceptable
here as well. By skipping the Engine creation
we don't even need a DBAPI to be available.
Calls to context.execute() here emit the given string to the
script output.
"""
context.configure(url=settings['sqlalchemy.url'],
version_table=version_table)
with context.begin_transaction():
context.run_migrations()
def run_migrations_online():
"""Run migrations in 'online' mode.
In this scenario we need to create an Engine
and associate a connection with the context.
"""
engine = engine_from_config(settings, prefix='sqlalchemy.')
connection = engine.connect()
context.configure(
connection=connection,
target_metadata=target_metadata,
helpers=helpers,
version_table=version_table,
version_table_schema=version_table_schema
)
try:
with context.begin_transaction():
context.run_migrations()
finally:
connection.close()
if context.is_offline_mode():
run_migrations_offline()
else:
run_migrations_online()
\ No newline at end of file
# http://www.derstappen-it.de/tech-blog/sqlalchemie-alembic-check-if-table-has-column
from alembic import op
from sqlalchemy.engine import reflection
import sqlalchemy as sa
def has_table(table, schema=None, insp=None):
if not insp:
engine = op.get_bind()
insp = reflection.Inspector.from_engine(engine)
return insp.has_table(table, schema=schema)
def table_has_column(table, column, schema=None):
engine = op.get_bind()
insp = reflection.Inspector.from_engine(engine)
has_column = False
if has_table(table, schema, insp):
for col in insp.get_columns(table, schema=schema):
if column != col['name']:
continue
has_column = True
return has_column
def fields_update(table, field, typ, schema="pad"):
context = op.get_context()
helpers = context.opts['helpers']
if not helpers.table_has_column(table, field, schema):
op.add_column(table,
sa.Column(field, typ), schema=schema)
\ No newline at end of file
"""${message}
Revision ID: ${up_revision}
Revises: ${down_revision | comma,n}
Create Date: ${create_date}
"""
# revision identifiers, used by Alembic.
revision = ${repr(up_revision)}
down_revision = ${repr(down_revision)}
branch_labels = ${repr(branch_labels)}
depends_on = ${repr(depends_on)}
from alembic import op
import sqlalchemy as sa
${imports if imports else ""}
def upgrade():
${upgrades if upgrades else "pass"}
def downgrade():
${downgrades if downgrades else "pass"}
"""create table
Revision ID: 1a608edd4715
Revises:
Create Date: 2024-11-16 09:06:29.860302
"""
# revision identifiers, used by Alembic.
revision = '1a608edd4715'
down_revision = None
branch_labels = None
depends_on = None
from alembic import op
import sqlalchemy as sa
def upgrade():
pass
def downgrade():
pass
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!