From 6f5b95771fc3c63924a515a33198398f984bbaa0 Mon Sep 17 00:00:00 2001 From: Azeez Muibi Date: Fri, 11 Apr 2025 16:44:50 +0100 Subject: [PATCH] update --- JUNK/fd58e10e4968_update_offers.py | 75 ------------ README.md | 4 +- migrations/README | 1 - migrations/alembic.ini | 50 -------- migrations/env.py | 113 ------------------ migrations/script.py.mako | 24 ---- ...9_migration_on_thu_apr_10_21_50_01_utc_.py | 32 ----- ...8_migration_on_thu_apr_10_16_21_45_utc_.py | 86 ------------- scripts/entrypoint.sh | 8 -- 9 files changed, 2 insertions(+), 391 deletions(-) delete mode 100644 JUNK/fd58e10e4968_update_offers.py delete mode 100644 migrations/README delete mode 100644 migrations/alembic.ini delete mode 100644 migrations/env.py delete mode 100644 migrations/script.py.mako delete mode 100644 migrations/versions/1340e7e578b9_migration_on_thu_apr_10_21_50_01_utc_.py delete mode 100644 migrations/versions/b8f6fd76ead8_migration_on_thu_apr_10_16_21_45_utc_.py delete mode 100644 scripts/entrypoint.sh diff --git a/JUNK/fd58e10e4968_update_offers.py b/JUNK/fd58e10e4968_update_offers.py deleted file mode 100644 index eb2d52b..0000000 --- a/JUNK/fd58e10e4968_update_offers.py +++ /dev/null @@ -1,75 +0,0 @@ -"""Update Offers - -Revision ID: fd58e10e4968 -Revises: -Create Date: 2025-03-28 15:47:35.620664 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = 'fd58e10e4968' -down_revision = None -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('accounts', - sa.Column('id', sa.String(length=50), nullable=False), - sa.Column('customer_id', sa.String(length=50), nullable=False), - sa.Column('account_type', sa.String(length=50), nullable=True), - sa.Column('status', sa.String(length=20), nullable=True), - sa.Column('lien_amount', sa.Float(), nullable=True), - sa.Column('created_at', sa.DateTime(), nullable=True), - sa.Column('updated_at', sa.DateTime(), nullable=True), - sa.PrimaryKeyConstraint('id') - ) - op.create_table('customers', - sa.Column('id', sa.String(length=50), nullable=False), - sa.Column('msisdn', sa.String(length=20), nullable=False), - sa.Column('country_code', sa.String(length=3), nullable=False), - sa.Column('created_at', sa.DateTime(), nullable=True), - sa.Column('updated_at', sa.DateTime(), nullable=True), - sa.PrimaryKeyConstraint('id'), - sa.UniqueConstraint('msisdn') - ) - op.create_table('loans', - sa.Column('id', sa.String(length=50), nullable=False), - sa.Column('customer_id', sa.String(length=50), nullable=False), - sa.Column('account_id', sa.String(length=50), nullable=False), - sa.Column('product_id', sa.String(length=20), nullable=False), - sa.Column('principal_amount', sa.Float(), nullable=False), - sa.Column('status', sa.String(length=20), nullable=True), - sa.Column('created_at', sa.DateTime(), nullable=True), - sa.Column('updated_at', sa.DateTime(), nullable=True), - sa.PrimaryKeyConstraint('id') - ) - op.create_table('transactions', - sa.Column('id', sa.String(length=50), nullable=False), - sa.Column('account_id', sa.String(length=50), nullable=False), - sa.Column('type', sa.String(length=50), nullable=False), - sa.Column('amount', sa.Float(), nullable=False), - sa.Column('status', sa.String(length=20), nullable=True), - sa.Column('created_at', sa.DateTime(), nullable=True), - sa.Column('updated_at', sa.DateTime(), nullable=True), - sa.PrimaryKeyConstraint('id') - ) - op.drop_table('test') - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('test', - sa.Column('id', sa.INTEGER(), autoincrement=True, nullable=False), - sa.Column('name', sa.VARCHAR(length=125), autoincrement=False, nullable=True) - ) - op.drop_table('transactions') - op.drop_table('loans') - op.drop_table('customers') - op.drop_table('accounts') - # ### end Alembic commands ### diff --git a/README.md b/README.md index 76963e2..13bcce4 100644 --- a/README.md +++ b/README.md @@ -45,10 +45,10 @@ Then, open the `.env` file and **update the following variables with your actual This ensures that the application is properly configured with your environment variables. -> **Optional:** Change file permissions for the entrypoint script +> **Optional:** Change file permissions for the enterypointone script ```bash -chmod +x scripts/entrypoint.sh +chmod +x scripts/enterypointone.sh ``` --- diff --git a/migrations/README b/migrations/README deleted file mode 100644 index 0e04844..0000000 --- a/migrations/README +++ /dev/null @@ -1 +0,0 @@ -Single-database configuration for Flask. diff --git a/migrations/alembic.ini b/migrations/alembic.ini deleted file mode 100644 index ec9d45c..0000000 --- a/migrations/alembic.ini +++ /dev/null @@ -1,50 +0,0 @@ -# A generic, single database configuration. - -[alembic] -# template used to generate migration files -# file_template = %%(rev)s_%%(slug)s - -# set to 'true' to run the environment during -# the 'revision' command, regardless of autogenerate -# revision_environment = false - - -# Logging configuration -[loggers] -keys = root,sqlalchemy,alembic,flask_migrate - -[handlers] -keys = console - -[formatters] -keys = generic - -[logger_root] -level = WARN -handlers = console -qualname = - -[logger_sqlalchemy] -level = WARN -handlers = -qualname = sqlalchemy.engine - -[logger_alembic] -level = INFO -handlers = -qualname = alembic - -[logger_flask_migrate] -level = INFO -handlers = -qualname = flask_migrate - -[handler_console] -class = StreamHandler -args = (sys.stderr,) -level = NOTSET -formatter = generic - -[formatter_generic] -format = %(levelname)-5.5s [%(name)s] %(message)s -datefmt = %H:%M:%S diff --git a/migrations/env.py b/migrations/env.py deleted file mode 100644 index 4c97092..0000000 --- a/migrations/env.py +++ /dev/null @@ -1,113 +0,0 @@ -import logging -from logging.config import fileConfig - -from flask import current_app - -from alembic import context - -# this is the Alembic Config object, which provides -# access to the values within the .ini file in use. -config = context.config - -# Interpret the config file for Python logging. -# This line sets up loggers basically. -fileConfig(config.config_file_name) -logger = logging.getLogger('alembic.env') - - -def get_engine(): - try: - # this works with Flask-SQLAlchemy<3 and Alchemical - return current_app.extensions['migrate'].db.get_engine() - except (TypeError, AttributeError): - # this works with Flask-SQLAlchemy>=3 - return current_app.extensions['migrate'].db.engine - - -def get_engine_url(): - try: - return get_engine().url.render_as_string(hide_password=False).replace( - '%', '%%') - except AttributeError: - return str(get_engine().url).replace('%', '%%') - - -# add your model's MetaData object here -# for 'autogenerate' support -# from myapp import mymodel -# target_metadata = mymodel.Base.metadata -config.set_main_option('sqlalchemy.url', get_engine_url()) -target_db = current_app.extensions['migrate'].db - -# other values from the config, defined by the needs of env.py, -# can be acquired: -# my_important_option = config.get_main_option("my_important_option") -# ... etc. - - -def get_metadata(): - if hasattr(target_db, 'metadatas'): - return target_db.metadatas[None] - return target_db.metadata - - -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. - - """ - url = config.get_main_option("sqlalchemy.url") - context.configure( - url=url, target_metadata=get_metadata(), literal_binds=True - ) - - 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. - - """ - - # this callback is used to prevent an auto-migration from being generated - # when there are no changes to the schema - # reference: http://alembic.zzzcomputing.com/en/latest/cookbook.html - def process_revision_directives(context, revision, directives): - if getattr(config.cmd_opts, 'autogenerate', False): - script = directives[0] - if script.upgrade_ops.is_empty(): - directives[:] = [] - logger.info('No changes in schema detected.') - - conf_args = current_app.extensions['migrate'].configure_args - if conf_args.get("process_revision_directives") is None: - conf_args["process_revision_directives"] = process_revision_directives - - connectable = get_engine() - - with connectable.connect() as connection: - context.configure( - connection=connection, - target_metadata=get_metadata(), - **conf_args - ) - - with context.begin_transaction(): - context.run_migrations() - - -if context.is_offline_mode(): - run_migrations_offline() -else: - run_migrations_online() diff --git a/migrations/script.py.mako b/migrations/script.py.mako deleted file mode 100644 index 2c01563..0000000 --- a/migrations/script.py.mako +++ /dev/null @@ -1,24 +0,0 @@ -"""${message} - -Revision ID: ${up_revision} -Revises: ${down_revision | comma,n} -Create Date: ${create_date} - -""" -from alembic import op -import sqlalchemy as sa -${imports if imports else ""} - -# revision identifiers, used by Alembic. -revision = ${repr(up_revision)} -down_revision = ${repr(down_revision)} -branch_labels = ${repr(branch_labels)} -depends_on = ${repr(depends_on)} - - -def upgrade(): - ${upgrades if upgrades else "pass"} - - -def downgrade(): - ${downgrades if downgrades else "pass"} diff --git a/migrations/versions/1340e7e578b9_migration_on_thu_apr_10_21_50_01_utc_.py b/migrations/versions/1340e7e578b9_migration_on_thu_apr_10_21_50_01_utc_.py deleted file mode 100644 index 92e0eef..0000000 --- a/migrations/versions/1340e7e578b9_migration_on_thu_apr_10_21_50_01_utc_.py +++ /dev/null @@ -1,32 +0,0 @@ -"""Migration on Thu Apr 10 21:50:01 UTC 2025 - -Revision ID: 1340e7e578b9 -Revises: b8f6fd76ead8 -Create Date: 2025-04-10 21:50:32.113149 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '1340e7e578b9' -down_revision = 'b8f6fd76ead8' -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - with op.batch_alter_table('transactions', schema=None) as batch_op: - batch_op.add_column(sa.Column('ref_model', sa.String(length=50), nullable=True)) - - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - with op.batch_alter_table('transactions', schema=None) as batch_op: - batch_op.drop_column('ref_model') - - # ### end Alembic commands ### diff --git a/migrations/versions/b8f6fd76ead8_migration_on_thu_apr_10_16_21_45_utc_.py b/migrations/versions/b8f6fd76ead8_migration_on_thu_apr_10_16_21_45_utc_.py deleted file mode 100644 index 69d16e7..0000000 --- a/migrations/versions/b8f6fd76ead8_migration_on_thu_apr_10_16_21_45_utc_.py +++ /dev/null @@ -1,86 +0,0 @@ -"""Migration on Thu Apr 10 16:21:45 UTC 2025 - -Revision ID: b8f6fd76ead8 -Revises: -Create Date: 2025-04-10 16:22:15.946157 - -""" -from alembic import op -import sqlalchemy as sa -from sqlalchemy.dialects import postgresql - -# revision identifiers, used by Alembic. -revision = 'b8f6fd76ead8' -down_revision = None -branch_labels = None -depends_on = None - - -def upgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.create_table('repayments', - sa.Column('id', sa.Integer(), autoincrement=True, nullable=False), - sa.Column('loan_id', sa.String(length=50), nullable=False), - sa.Column('customer_id', sa.String(length=50), nullable=False), - sa.Column('product_id', sa.String(length=20), nullable=True), - sa.Column('created_at', sa.DateTime(), nullable=True), - sa.Column('updated_at', sa.DateTime(), nullable=True), - sa.PrimaryKeyConstraint('id') - ) - with op.batch_alter_table('loans', schema=None) as batch_op: - batch_op.alter_column('id', - existing_type=sa.VARCHAR(length=50), - type_=sa.Integer(), - existing_nullable=False, - autoincrement=True, - existing_server_default=sa.text("nextval('loan_id_seq'::regclass)")) - - with op.batch_alter_table('transactions', schema=None) as batch_op: - batch_op.alter_column('channel', - existing_type=sa.VARCHAR(length=8), - type_=sa.String(length=50), - existing_nullable=False) - batch_op.alter_column('created_at', - existing_type=postgresql.TIMESTAMP(timezone=True), - type_=sa.DateTime(), - existing_nullable=True, - existing_server_default=sa.text('now()')) - batch_op.alter_column('updated_at', - existing_type=postgresql.TIMESTAMP(timezone=True), - type_=sa.DateTime(), - existing_nullable=True, - existing_server_default=sa.text('now()')) - batch_op.drop_constraint('transactions_id_key', type_='unique') - - # ### end Alembic commands ### - - -def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - with op.batch_alter_table('transactions', schema=None) as batch_op: - batch_op.create_unique_constraint('transactions_id_key', ['id']) - batch_op.alter_column('updated_at', - existing_type=sa.DateTime(), - type_=postgresql.TIMESTAMP(timezone=True), - existing_nullable=True, - existing_server_default=sa.text('now()')) - batch_op.alter_column('created_at', - existing_type=sa.DateTime(), - type_=postgresql.TIMESTAMP(timezone=True), - existing_nullable=True, - existing_server_default=sa.text('now()')) - batch_op.alter_column('channel', - existing_type=sa.String(length=50), - type_=sa.VARCHAR(length=8), - existing_nullable=False) - - with op.batch_alter_table('loans', schema=None) as batch_op: - batch_op.alter_column('id', - existing_type=sa.Integer(), - type_=sa.VARCHAR(length=50), - existing_nullable=False, - autoincrement=True, - existing_server_default=sa.text("nextval('loan_id_seq'::regclass)")) - - op.drop_table('repayments') - # ### end Alembic commands ### diff --git a/scripts/entrypoint.sh b/scripts/entrypoint.sh deleted file mode 100644 index 3e73752..0000000 --- a/scripts/entrypoint.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -echo "Running DB migrations..." -flask db migrate -m "Migration on $(date)" -flask db upgrade - -echo "Starting Gunicorn server..." -exec gunicorn -w 4 -b 0.0.0.0:5000 wsgi:wsgi_app