From c4fc3f9d3559bea5566e62b360e178ab2607813a Mon Sep 17 00:00:00 2001 From: veronika Date: Tue, 27 Dec 2022 13:49:33 +0530 Subject: [PATCH 1/5] Update Base model --- .../976c4b9b4514_update_base_model.py | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 migrations/versions/976c4b9b4514_update_base_model.py diff --git a/migrations/versions/976c4b9b4514_update_base_model.py b/migrations/versions/976c4b9b4514_update_base_model.py new file mode 100644 index 00000000..1e85f7fe --- /dev/null +++ b/migrations/versions/976c4b9b4514_update_base_model.py @@ -0,0 +1,90 @@ +"""Update Base model + +Revision ID: 976c4b9b4514 +Revises: 87c7d29e3ddb +Create Date: 2022-12-26 12:56:27.764392 + +""" +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import postgresql + +# revision identifiers, used by Alembic. +revision = '976c4b9b4514' +down_revision = '87c7d29e3ddb' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('admin_token_requests', sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) + op.add_column('admin_token_requests', sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) + op.add_column('admin_token_requests', sa.Column('is_deleted', sa.Boolean(), nullable=True)) + op.add_column('admin_users', sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) + op.add_column('admin_users', sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) + op.add_column('admin_users', sa.Column('is_deleted', sa.Boolean(), nullable=True)) + op.add_column('categories', sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) + op.add_column('categories', sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) + op.add_column('categories', sa.Column('is_deleted', sa.Boolean(), nullable=True)) + op.add_column('external_site_users', sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) + op.add_column('external_site_users', sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) + op.add_column('external_site_users', sa.Column('is_deleted', sa.Boolean(), nullable=True)) + op.add_column('notifications', sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) + op.add_column('notifications', sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) + op.add_column('notifications', sa.Column('is_deleted', sa.Boolean(), nullable=True)) + op.add_column('reasons_canceling', sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) + op.add_column('reasons_canceling', sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) + op.add_column('reasons_canceling', sa.Column('is_deleted', sa.Boolean(), nullable=True)) + op.add_column('statistics', sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) + op.add_column('statistics', sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) + op.add_column('statistics', sa.Column('is_deleted', sa.Boolean(), nullable=True)) + op.add_column('tasks', sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) + op.add_column('tasks', sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) + op.add_column('tasks', sa.Column('is_deleted', sa.Boolean(), nullable=True)) + op.execute('UPDATE tasks SET created_at = created_date') + op.execute('UPDATE tasks SET updated_at = updated_date') + op.add_column('users', sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) + op.add_column('users', sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) + op.add_column('users', sa.Column('is_deleted', sa.Boolean(), nullable=True)) + op.add_column('users_categories', sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) + op.add_column('users_categories', sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) + op.add_column('users_categories', sa.Column('is_deleted', sa.Boolean(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('users_categories', sa.Column('audit_id_users_categories', sa.INTEGER(), autoincrement=False, nullable=True)) + op.create_foreign_key('users_categories_audit_id_users_categories_fkey', 'users_categories', 'base_audit', ['audit_id_users_categories'], ['id']) + op.drop_column('users_categories', 'is_deleted') + op.drop_column('users_categories', 'updated_at') + op.drop_column('users_categories', 'created_at') + op.drop_column('users', 'is_deleted') + op.drop_column('users', 'updated_at') + op.drop_column('users', 'created_at') + op.drop_column('tasks', 'is_deleted') + op.drop_column('tasks', 'updated_at') + op.drop_column('tasks', 'created_at') + op.drop_column('statistics', 'is_deleted') + op.drop_column('statistics', 'updated_at') + op.drop_column('statistics', 'created_at') + op.drop_column('reasons_canceling', 'is_deleted') + op.drop_column('reasons_canceling', 'updated_at') + op.drop_column('reasons_canceling', 'created_at') + op.drop_column('notifications', 'is_deleted') + op.drop_column('notifications', 'updated_at') + op.drop_column('notifications', 'created_at') + op.drop_column('external_site_users', 'is_deleted') + op.drop_column('external_site_users', 'updated_at') + op.drop_column('external_site_users', 'created_at') + op.drop_column('categories', 'is_deleted') + op.drop_column('categories', 'updated_at') + op.drop_column('categories', 'created_at') + op.drop_column('admin_users', 'is_deleted') + op.drop_column('admin_users', 'updated_at') + op.drop_column('admin_users', 'created_at') + op.drop_column('admin_token_requests', 'is_deleted') + op.drop_column('admin_token_requests', 'updated_at') + op.drop_column('admin_token_requests', 'created_at') + # ### end Alembic commands ### From 992dab309118ae1c268ce9ecdfe83ace2731cf8c Mon Sep 17 00:00:00 2001 From: veronika Date: Tue, 27 Dec 2022 13:49:57 +0530 Subject: [PATCH 2/5] Update Base model --- app/models.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/models.py b/app/models.py index f2dc710c..96670211 100644 --- a/app/models.py +++ b/app/models.py @@ -7,13 +7,22 @@ Date, BigInteger ) +from sqlalchemy.ext.declarative import as_declarative from sqlalchemy.sql import expression, func from sqlalchemy.orm import relationship, backref -from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.sql.sqltypes import TIMESTAMP from werkzeug.security import generate_password_hash, check_password_hash -Base = declarative_base() + +@as_declarative() +class Base: + + created_at = Column(TIMESTAMP, server_default=func.current_timestamp(), nullable=True) + updated_at = Column( + TIMESTAMP, server_default=func.current_timestamp(), nullable=True, onupdate=func.current_timestamp() + ) + is_deleted = Column(Boolean(), default=False) + __name__: str class AdminUser(Base): From 1469c1003d074b7743213c5ec7f89f02ded63629 Mon Sep 17 00:00:00 2001 From: veronika Date: Sat, 31 Dec 2022 14:13:42 +0530 Subject: [PATCH 3/5] add mirtation Update Base model --- app/models.py | 19 +-- docker-compose.local.yml | 9 +- .env.dev => env.dev | 0 .../976c4b9b4514_update_base_model.py | 144 ++++++++++-------- 4 files changed, 93 insertions(+), 79 deletions(-) rename .env.dev => env.dev (100%) diff --git a/app/models.py b/app/models.py index 96670211..6e662e13 100644 --- a/app/models.py +++ b/app/models.py @@ -7,22 +7,23 @@ Date, BigInteger ) -from sqlalchemy.ext.declarative import as_declarative +from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.sql import expression, func from sqlalchemy.orm import relationship, backref from sqlalchemy.sql.sqltypes import TIMESTAMP from werkzeug.security import generate_password_hash, check_password_hash -@as_declarative() -class Base: +Base = declarative_base() - created_at = Column(TIMESTAMP, server_default=func.current_timestamp(), nullable=True) - updated_at = Column( - TIMESTAMP, server_default=func.current_timestamp(), nullable=True, onupdate=func.current_timestamp() - ) - is_deleted = Column(Boolean(), default=False) - __name__: str +# @as_declarative() +# class Base: + + # created_at = Column(TIMESTAMP, server_default=func.current_timestamp(), nullable=True) + # updated_at = Column( + # TIMESTAMP, server_default=func.current_timestamp(), nullable=True, onupdate=func.current_timestamp() + # ) + # __name__: str class AdminUser(Base): diff --git a/docker-compose.local.yml b/docker-compose.local.yml index d208e61a..4d7c1734 100644 --- a/docker-compose.local.yml +++ b/docker-compose.local.yml @@ -6,16 +6,17 @@ services: expose: - "8000" - "5000" + - "80" ports: - "8000:8000" - "587:587" env_file: - - .env.dev + - .env front: image: ghcr.io/procharity/procharity_bot_front:latest env_file: - - .env.dev + - .env ports: - "80:80" db: @@ -25,13 +26,13 @@ services: environment: - POSTGRES_USER=procharity - POSTGRES_PASSWORD=procharity - - POSTGRES_DB=procharity_local_test_db + - POSTGRES_DB=procharity_local expose: - "5432" ports: - "9999:5432" env_file: - - .env.dev + - .env volumes: postgres_data: \ No newline at end of file diff --git a/.env.dev b/env.dev similarity index 100% rename from .env.dev rename to env.dev diff --git a/migrations/versions/976c4b9b4514_update_base_model.py b/migrations/versions/976c4b9b4514_update_base_model.py index 1e85f7fe..aa0bf492 100644 --- a/migrations/versions/976c4b9b4514_update_base_model.py +++ b/migrations/versions/976c4b9b4514_update_base_model.py @@ -18,73 +18,85 @@ def upgrade(): # ### commands auto generated by Alembic - please adjust! ### - op.add_column('admin_token_requests', sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) - op.add_column('admin_token_requests', sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) - op.add_column('admin_token_requests', sa.Column('is_deleted', sa.Boolean(), nullable=True)) - op.add_column('admin_users', sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) - op.add_column('admin_users', sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) - op.add_column('admin_users', sa.Column('is_deleted', sa.Boolean(), nullable=True)) - op.add_column('categories', sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) - op.add_column('categories', sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) - op.add_column('categories', sa.Column('is_deleted', sa.Boolean(), nullable=True)) - op.add_column('external_site_users', sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) - op.add_column('external_site_users', sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) - op.add_column('external_site_users', sa.Column('is_deleted', sa.Boolean(), nullable=True)) - op.add_column('notifications', sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) - op.add_column('notifications', sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) - op.add_column('notifications', sa.Column('is_deleted', sa.Boolean(), nullable=True)) - op.add_column('reasons_canceling', sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) - op.add_column('reasons_canceling', sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) - op.add_column('reasons_canceling', sa.Column('is_deleted', sa.Boolean(), nullable=True)) - op.add_column('statistics', sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) - op.add_column('statistics', sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) - op.add_column('statistics', sa.Column('is_deleted', sa.Boolean(), nullable=True)) - op.add_column('tasks', sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) - op.add_column('tasks', sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) - op.add_column('tasks', sa.Column('is_deleted', sa.Boolean(), nullable=True)) - op.execute('UPDATE tasks SET created_at = created_date') - op.execute('UPDATE tasks SET updated_at = updated_date') - op.add_column('users', sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) - op.add_column('users', sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) - op.add_column('users', sa.Column('is_deleted', sa.Boolean(), nullable=True)) - op.add_column('users_categories', sa.Column('created_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) - op.add_column('users_categories', sa.Column('updated_at', sa.TIMESTAMP(), server_default=sa.text('CURRENT_TIMESTAMP'), nullable=True)) - op.add_column('users_categories', sa.Column('is_deleted', sa.Boolean(), nullable=True)) + op.alter_column( + 'tasks','created_date', + new_column_name='created_at' + ) + op.alter_column( + 'tasks','updated_date', + new_column_name='updated_at' + ) + op.alter_column( + 'statistics', 'added_date', + new_column_name='created_at' + ) + op.alter_column( + 'reasons_canceling', 'added_date', + new_column_name='created_at' + ) + op.alter_column( + 'reasons_canceling','updated_date', + new_column_name='updated_at' + ) + op.alter_column( + 'external_site_users','created_date', + new_column_name='created_at' + ) + op.alter_column( + 'external_site_users', 'updated_date', + new_column_name='updated_at' + ) + op.alter_column( + 'notifications','sent_date', + new_column_name='created_at' + ) + + for tbl in ['admin_users', 'users', 'categories', 'users_categories', 'admin_token_requests']: + op.add_column(tbl, sa.Column('created_at', sa.TIMESTAMP, nullable=True)) + + for tbl in ['admin_users', 'users', 'categories', 'statistics', 'notifications', 'users_categories', 'admin_token_requests']: + op.add_column(tbl, sa.Column('updated_at', sa.TIMESTAMP, nullable=True)) # ### end Alembic commands ### def downgrade(): - # ### commands auto generated by Alembic - please adjust! ### - op.add_column('users_categories', sa.Column('audit_id_users_categories', sa.INTEGER(), autoincrement=False, nullable=True)) - op.create_foreign_key('users_categories_audit_id_users_categories_fkey', 'users_categories', 'base_audit', ['audit_id_users_categories'], ['id']) - op.drop_column('users_categories', 'is_deleted') - op.drop_column('users_categories', 'updated_at') - op.drop_column('users_categories', 'created_at') - op.drop_column('users', 'is_deleted') - op.drop_column('users', 'updated_at') - op.drop_column('users', 'created_at') - op.drop_column('tasks', 'is_deleted') - op.drop_column('tasks', 'updated_at') - op.drop_column('tasks', 'created_at') - op.drop_column('statistics', 'is_deleted') - op.drop_column('statistics', 'updated_at') - op.drop_column('statistics', 'created_at') - op.drop_column('reasons_canceling', 'is_deleted') - op.drop_column('reasons_canceling', 'updated_at') - op.drop_column('reasons_canceling', 'created_at') - op.drop_column('notifications', 'is_deleted') - op.drop_column('notifications', 'updated_at') - op.drop_column('notifications', 'created_at') - op.drop_column('external_site_users', 'is_deleted') - op.drop_column('external_site_users', 'updated_at') - op.drop_column('external_site_users', 'created_at') - op.drop_column('categories', 'is_deleted') - op.drop_column('categories', 'updated_at') - op.drop_column('categories', 'created_at') - op.drop_column('admin_users', 'is_deleted') - op.drop_column('admin_users', 'updated_at') - op.drop_column('admin_users', 'created_at') - op.drop_column('admin_token_requests', 'is_deleted') - op.drop_column('admin_token_requests', 'updated_at') - op.drop_column('admin_token_requests', 'created_at') - # ### end Alembic commands ### + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column( + 'tasks','created_at', + new_column_name='created_date' + ) + op.alter_column( + 'tasks','updated_at', + new_column_name='updated_date' + ) + op.alter_column( + 'statistics', 'created_at', + new_column_name='added_date' + ) + op.alter_column( + 'reasons_canceling', 'created_at', + new_column_name='added_date' + ) + op.alter_column( + 'reasons_canceling','updated_at', + new_column_name='updated_date' + ) + op.alter_column( + 'external_site_users','created_at', + new_column_name='created_date' + ) + op.alter_column( + 'external_site_users', 'updated_at', + new_column_name='updated_date' + ) + op.alter_column( + 'notifications','created_at', + new_column_name='sent_date' + ) + + for tbl in ['admin_users', 'users', 'categories', 'users_categories', 'admin_token_requests']: + op.drop_column(tbl, 'created_at') + + for tbl in ['admin_users', 'users', 'categories', 'statistics', 'notifications', 'users_categories', 'admin_token_requests']: + op.drop_column(tbl, 'updated_at') + # ### end Alembic commands ### \ No newline at end of file From afa3e5b9f7067738e690d85be74d070f29049c17 Mon Sep 17 00:00:00 2001 From: veronika Date: Sat, 31 Dec 2022 14:15:36 +0530 Subject: [PATCH 4/5] add mirtation Update Base model --- env.dev => .env.dev | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename env.dev => .env.dev (100%) diff --git a/env.dev b/.env.dev similarity index 100% rename from env.dev rename to .env.dev From 19ee2dc1e807f4503286a04e4976af872134343c Mon Sep 17 00:00:00 2001 From: veronika Date: Sat, 31 Dec 2022 14:18:47 +0530 Subject: [PATCH 5/5] add mirtation Update Base model --- docker-compose.local.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/docker-compose.local.yml b/docker-compose.local.yml index 4d7c1734..d208e61a 100644 --- a/docker-compose.local.yml +++ b/docker-compose.local.yml @@ -6,17 +6,16 @@ services: expose: - "8000" - "5000" - - "80" ports: - "8000:8000" - "587:587" env_file: - - .env + - .env.dev front: image: ghcr.io/procharity/procharity_bot_front:latest env_file: - - .env + - .env.dev ports: - "80:80" db: @@ -26,13 +25,13 @@ services: environment: - POSTGRES_USER=procharity - POSTGRES_PASSWORD=procharity - - POSTGRES_DB=procharity_local + - POSTGRES_DB=procharity_local_test_db expose: - "5432" ports: - "9999:5432" env_file: - - .env + - .env.dev volumes: postgres_data: \ No newline at end of file