diff --git a/migrations/public/versions/29c9d981a10b_security_additions_to_tenants_cors.py b/migrations/public/versions/29c9d981a10b_security_additions_to_tenants_cors.py new file mode 100644 index 0000000..f9ccb08 --- /dev/null +++ b/migrations/public/versions/29c9d981a10b_security_additions_to_tenants_cors.py @@ -0,0 +1,46 @@ +"""Security Additions to Tenants CORS + +Revision ID: 29c9d981a10b +Revises: a8c1c8e9a31a +Create Date: 2024-05-15 14:29:02.153043 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '29c9d981a10b' +down_revision = 'a8c1c8e9a31a' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('roles_users', schema=None) as batch_op: + batch_op.drop_constraint('roles_users_user_id_fkey', type_='foreignkey') + batch_op.drop_constraint('roles_users_role_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'role', ['role_id'], ['id'], referent_schema='public', ondelete='CASCADE') + batch_op.create_foreign_key(None, 'user', ['user_id'], ['id'], referent_schema='public', ondelete='CASCADE') + + with op.batch_alter_table('user', schema=None) as batch_op: + batch_op.drop_constraint('user_tenant_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'tenant', ['tenant_id'], ['id'], referent_schema='public') + + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('user', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('user_tenant_id_fkey', 'tenant', ['tenant_id'], ['id']) + + with op.batch_alter_table('roles_users', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('roles_users_role_id_fkey', 'role', ['role_id'], ['id'], ondelete='CASCADE') + batch_op.create_foreign_key('roles_users_user_id_fkey', 'user', ['user_id'], ['id'], ondelete='CASCADE') + + # ### end Alembic commands ### diff --git a/migrations/public/versions/445db8db7cbc_defined_interaction_domain.py b/migrations/public/versions/445db8db7cbc_defined_interaction_domain.py new file mode 100644 index 0000000..271add6 --- /dev/null +++ b/migrations/public/versions/445db8db7cbc_defined_interaction_domain.py @@ -0,0 +1,62 @@ +"""Defined interaction domain + +Revision ID: 445db8db7cbc +Revises: 66739292fa56 +Create Date: 2024-05-17 18:55:46.433218 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '445db8db7cbc' +down_revision = '66739292fa56' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('roles_users', schema=None) as batch_op: + batch_op.drop_constraint('roles_users_role_id_fkey', type_='foreignkey') + batch_op.drop_constraint('roles_users_user_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'user', ['user_id'], ['id'], referent_schema='public', ondelete='CASCADE') + batch_op.create_foreign_key(None, 'role', ['role_id'], ['id'], referent_schema='public', ondelete='CASCADE') + + with op.batch_alter_table('tenant_domain', schema=None) as batch_op: + batch_op.drop_constraint('tenant_domain_updated_by_fkey', type_='foreignkey') + batch_op.drop_constraint('tenant_domain_created_by_fkey', type_='foreignkey') + batch_op.drop_constraint('tenant_domain_tenant_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'tenant', ['tenant_id'], ['id'], referent_schema='public') + batch_op.create_foreign_key(None, 'user', ['created_by'], ['id'], referent_schema='public') + batch_op.create_foreign_key(None, 'user', ['updated_by'], ['id'], referent_schema='public') + + with op.batch_alter_table('user', schema=None) as batch_op: + batch_op.drop_constraint('user_tenant_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'tenant', ['tenant_id'], ['id'], referent_schema='public') + + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('user', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('user_tenant_id_fkey', 'tenant', ['tenant_id'], ['id']) + + with op.batch_alter_table('tenant_domain', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('tenant_domain_tenant_id_fkey', 'tenant', ['tenant_id'], ['id']) + batch_op.create_foreign_key('tenant_domain_created_by_fkey', 'user', ['created_by'], ['id']) + batch_op.create_foreign_key('tenant_domain_updated_by_fkey', 'user', ['updated_by'], ['id']) + + with op.batch_alter_table('roles_users', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('roles_users_user_id_fkey', 'user', ['user_id'], ['id'], ondelete='CASCADE') + batch_op.create_foreign_key('roles_users_role_id_fkey', 'role', ['role_id'], ['id'], ondelete='CASCADE') + + # ### end Alembic commands ### diff --git a/migrations/public/versions/66739292fa56_allow_for_more_than_1_api_key.py b/migrations/public/versions/66739292fa56_allow_for_more_than_1_api_key.py new file mode 100644 index 0000000..67431e1 --- /dev/null +++ b/migrations/public/versions/66739292fa56_allow_for_more_than_1_api_key.py @@ -0,0 +1,70 @@ +"""allow for more than 1 API key + +Revision ID: 66739292fa56 +Revises: 92cdb9c6f6b7 +Create Date: 2024-05-16 10:27:40.241812 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '66739292fa56' +down_revision = '92cdb9c6f6b7' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('roles_users', schema=None) as batch_op: + batch_op.drop_constraint('roles_users_role_id_fkey', type_='foreignkey') + batch_op.drop_constraint('roles_users_user_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'role', ['role_id'], ['id'], referent_schema='public', ondelete='CASCADE') + batch_op.create_foreign_key(None, 'user', ['user_id'], ['id'], referent_schema='public', ondelete='CASCADE') + + with op.batch_alter_table('tenant', schema=None) as batch_op: + batch_op.add_column(sa.Column('encrypted_chat_api_key', sa.String(length=500), nullable=True)) + batch_op.drop_column('encrypted_api_key') + + with op.batch_alter_table('tenant_domain', schema=None) as batch_op: + batch_op.drop_constraint('tenant_domain_created_by_fkey', type_='foreignkey') + batch_op.drop_constraint('tenant_domain_updated_by_fkey', type_='foreignkey') + batch_op.drop_constraint('tenant_domain_tenant_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'user', ['created_by'], ['id'], referent_schema='public') + batch_op.create_foreign_key(None, 'user', ['updated_by'], ['id'], referent_schema='public') + batch_op.create_foreign_key(None, 'tenant', ['tenant_id'], ['id'], referent_schema='public') + + with op.batch_alter_table('user', schema=None) as batch_op: + batch_op.drop_constraint('user_tenant_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'tenant', ['tenant_id'], ['id'], referent_schema='public') + + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('user', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('user_tenant_id_fkey', 'tenant', ['tenant_id'], ['id']) + + with op.batch_alter_table('tenant_domain', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('tenant_domain_tenant_id_fkey', 'tenant', ['tenant_id'], ['id']) + batch_op.create_foreign_key('tenant_domain_updated_by_fkey', 'user', ['updated_by'], ['id']) + batch_op.create_foreign_key('tenant_domain_created_by_fkey', 'user', ['created_by'], ['id']) + + with op.batch_alter_table('tenant', schema=None) as batch_op: + batch_op.add_column(sa.Column('encrypted_api_key', sa.VARCHAR(length=500), autoincrement=False, nullable=True)) + batch_op.drop_column('encrypted_chat_api_key') + + with op.batch_alter_table('roles_users', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('roles_users_user_id_fkey', 'user', ['user_id'], ['id'], ondelete='CASCADE') + batch_op.create_foreign_key('roles_users_role_id_fkey', 'role', ['role_id'], ['id'], ondelete='CASCADE') + + # ### end Alembic commands ### diff --git a/migrations/public/versions/6a34aecee578_added_validation_date_to_tenantdomain.py b/migrations/public/versions/6a34aecee578_added_validation_date_to_tenantdomain.py new file mode 100644 index 0000000..3d91620 --- /dev/null +++ b/migrations/public/versions/6a34aecee578_added_validation_date_to_tenantdomain.py @@ -0,0 +1,56 @@ +"""Added Validation Date to TenantDomain + +Revision ID: 6a34aecee578 +Revises: b79748d3aaae +Create Date: 2024-05-15 15:43:44.603301 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '6a34aecee578' +down_revision = 'b79748d3aaae' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('roles_users', schema=None) as batch_op: + batch_op.drop_constraint('roles_users_user_id_fkey', type_='foreignkey') + batch_op.drop_constraint('roles_users_role_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'user', ['user_id'], ['id'], referent_schema='public', ondelete='CASCADE') + batch_op.create_foreign_key(None, 'role', ['role_id'], ['id'], referent_schema='public', ondelete='CASCADE') + + with op.batch_alter_table('tenant_domain', schema=None) as batch_op: + batch_op.add_column(sa.Column('valid_to', sa.Date(), nullable=True)) + batch_op.drop_constraint('tenant_domain_tenant_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'tenant', ['tenant_id'], ['id'], referent_schema='public') + + with op.batch_alter_table('user', schema=None) as batch_op: + batch_op.drop_constraint('user_tenant_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'tenant', ['tenant_id'], ['id'], referent_schema='public') + + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('user', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('user_tenant_id_fkey', 'tenant', ['tenant_id'], ['id']) + + with op.batch_alter_table('tenant_domain', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('tenant_domain_tenant_id_fkey', 'tenant', ['tenant_id'], ['id']) + batch_op.drop_column('valid_to') + + with op.batch_alter_table('roles_users', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('roles_users_role_id_fkey', 'role', ['role_id'], ['id'], ondelete='CASCADE') + batch_op.create_foreign_key('roles_users_user_id_fkey', 'user', ['user_id'], ['id'], ondelete='CASCADE') + + # ### end Alembic commands ### diff --git a/migrations/public/versions/92cdb9c6f6b7_added_versioning_information_to_.py b/migrations/public/versions/92cdb9c6f6b7_added_versioning_information_to_.py new file mode 100644 index 0000000..02f63ee --- /dev/null +++ b/migrations/public/versions/92cdb9c6f6b7_added_versioning_information_to_.py @@ -0,0 +1,66 @@ +"""Added Versioning information to TenantDomain + +Revision ID: 92cdb9c6f6b7 +Revises: 6a34aecee578 +Create Date: 2024-05-15 16:36:55.044838 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '92cdb9c6f6b7' +down_revision = '6a34aecee578' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('roles_users', schema=None) as batch_op: + batch_op.drop_constraint('roles_users_role_id_fkey', type_='foreignkey') + batch_op.drop_constraint('roles_users_user_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'role', ['role_id'], ['id'], referent_schema='public', ondelete='CASCADE') + batch_op.create_foreign_key(None, 'user', ['user_id'], ['id'], referent_schema='public', ondelete='CASCADE') + + with op.batch_alter_table('tenant_domain', schema=None) as batch_op: + batch_op.add_column(sa.Column('created_at', sa.DateTime(), server_default=sa.text('now()'), nullable=False)) + batch_op.add_column(sa.Column('created_by', sa.Integer(), nullable=False)) + batch_op.add_column(sa.Column('updated_at', sa.DateTime(), server_default=sa.text('now()'), nullable=False)) + batch_op.add_column(sa.Column('updated_by', sa.Integer(), nullable=True)) + batch_op.drop_constraint('tenant_domain_tenant_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'user', ['created_by'], ['id'], referent_schema='public') + batch_op.create_foreign_key(None, 'tenant', ['tenant_id'], ['id'], referent_schema='public') + batch_op.create_foreign_key(None, 'user', ['updated_by'], ['id'], referent_schema='public') + + with op.batch_alter_table('user', schema=None) as batch_op: + batch_op.drop_constraint('user_tenant_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'tenant', ['tenant_id'], ['id'], referent_schema='public') + + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('user', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('user_tenant_id_fkey', 'tenant', ['tenant_id'], ['id']) + + with op.batch_alter_table('tenant_domain', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('tenant_domain_tenant_id_fkey', 'tenant', ['tenant_id'], ['id']) + batch_op.drop_column('updated_by') + batch_op.drop_column('updated_at') + batch_op.drop_column('created_by') + batch_op.drop_column('created_at') + + with op.batch_alter_table('roles_users', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('roles_users_user_id_fkey', 'user', ['user_id'], ['id'], ondelete='CASCADE') + batch_op.create_foreign_key('roles_users_role_id_fkey', 'role', ['role_id'], ['id'], ondelete='CASCADE') + + # ### end Alembic commands ### diff --git a/migrations/public/versions/a8c1c8e9a31a_security_additions_to_tenants.py b/migrations/public/versions/a8c1c8e9a31a_security_additions_to_tenants.py new file mode 100644 index 0000000..20b6238 --- /dev/null +++ b/migrations/public/versions/a8c1c8e9a31a_security_additions_to_tenants.py @@ -0,0 +1,52 @@ +"""Security Additions to Tenants + +Revision ID: a8c1c8e9a31a +Revises: ac7753aa8fa3 +Create Date: 2024-05-15 14:25:44.355580 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'a8c1c8e9a31a' +down_revision = 'ac7753aa8fa3' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('roles_users', schema=None) as batch_op: + batch_op.drop_constraint('roles_users_user_id_fkey', type_='foreignkey') + batch_op.drop_constraint('roles_users_role_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'user', ['user_id'], ['id'], referent_schema='public', ondelete='CASCADE') + batch_op.create_foreign_key(None, 'role', ['role_id'], ['id'], referent_schema='public', ondelete='CASCADE') + + with op.batch_alter_table('tenant', schema=None) as batch_op: + batch_op.add_column(sa.Column('encrypted_api_key', sa.String(length=500), nullable=True)) + + with op.batch_alter_table('user', schema=None) as batch_op: + batch_op.drop_constraint('user_tenant_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'tenant', ['tenant_id'], ['id'], referent_schema='public') + + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('user', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('user_tenant_id_fkey', 'tenant', ['tenant_id'], ['id']) + + with op.batch_alter_table('tenant', schema=None) as batch_op: + batch_op.drop_column('encrypted_api_key') + + with op.batch_alter_table('roles_users', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('roles_users_role_id_fkey', 'role', ['role_id'], ['id'], ondelete='CASCADE') + batch_op.create_foreign_key('roles_users_user_id_fkey', 'user', ['user_id'], ['id'], ondelete='CASCADE') + + # ### end Alembic commands ### diff --git a/migrations/public/versions/ac7753aa8fa3_add_tags_for_html_embeddings_and_.py b/migrations/public/versions/ac7753aa8fa3_add_tags_for_html_embeddings_and_.py new file mode 100644 index 0000000..6935770 --- /dev/null +++ b/migrations/public/versions/ac7753aa8fa3_add_tags_for_html_embeddings_and_.py @@ -0,0 +1,68 @@ +"""Add tags for html embeddings and simplify model usage + +Revision ID: ac7753aa8fa3 +Revises: ecf1215f61da +Create Date: 2024-05-13 11:17:35.151639 + +""" +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import postgresql + +# revision identifiers, used by Alembic. +revision = 'ac7753aa8fa3' +down_revision = 'ecf1215f61da' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('roles_users', schema=None) as batch_op: + batch_op.drop_constraint('roles_users_user_id_fkey', type_='foreignkey') + batch_op.drop_constraint('roles_users_role_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'user', ['user_id'], ['id'], referent_schema='public', ondelete='CASCADE') + batch_op.create_foreign_key(None, 'role', ['role_id'], ['id'], referent_schema='public', ondelete='CASCADE') + + with op.batch_alter_table('tenant', schema=None) as batch_op: + batch_op.add_column(sa.Column('embedding_model', sa.String(length=50), nullable=True)) + batch_op.add_column(sa.Column('llm_model', sa.String(length=50), nullable=True)) + batch_op.add_column(sa.Column('html_end_tags', postgresql.ARRAY(sa.String(length=10)), nullable=True)) + batch_op.add_column(sa.Column('html_included_elements', postgresql.ARRAY(sa.String(length=50)), nullable=True)) + batch_op.add_column(sa.Column('html_excluded_elements', postgresql.ARRAY(sa.String(length=50)), nullable=True)) + batch_op.drop_column('allowed_embedding_models') + batch_op.drop_column('default_llm_model') + batch_op.drop_column('default_embedding_model') + batch_op.drop_column('allowed_llm_models') + + with op.batch_alter_table('user', schema=None) as batch_op: + batch_op.drop_constraint('user_tenant_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'tenant', ['tenant_id'], ['id'], referent_schema='public') + + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('user', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('user_tenant_id_fkey', 'tenant', ['tenant_id'], ['id']) + + with op.batch_alter_table('tenant', schema=None) as batch_op: + batch_op.add_column(sa.Column('allowed_llm_models', postgresql.ARRAY(sa.VARCHAR(length=50)), autoincrement=False, nullable=True)) + batch_op.add_column(sa.Column('default_embedding_model', sa.VARCHAR(length=50), autoincrement=False, nullable=True)) + batch_op.add_column(sa.Column('default_llm_model', sa.VARCHAR(length=50), autoincrement=False, nullable=True)) + batch_op.add_column(sa.Column('allowed_embedding_models', postgresql.ARRAY(sa.VARCHAR(length=50)), autoincrement=False, nullable=True)) + batch_op.drop_column('html_excluded_elements') + batch_op.drop_column('html_included_elements') + batch_op.drop_column('html_end_tags') + batch_op.drop_column('llm_model') + batch_op.drop_column('embedding_model') + + with op.batch_alter_table('roles_users', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('roles_users_role_id_fkey', 'role', ['role_id'], ['id'], ondelete='CASCADE') + batch_op.create_foreign_key('roles_users_user_id_fkey', 'user', ['user_id'], ['id'], ondelete='CASCADE') + + # ### end Alembic commands ### diff --git a/migrations/public/versions/b79748d3aaae_security_additions_to_tenants_cors_part_.py b/migrations/public/versions/b79748d3aaae_security_additions_to_tenants_cors_part_.py new file mode 100644 index 0000000..34e3a19 --- /dev/null +++ b/migrations/public/versions/b79748d3aaae_security_additions_to_tenants_cors_part_.py @@ -0,0 +1,56 @@ +"""Security Additions to Tenants CORS Part 2 + +Revision ID: b79748d3aaae +Revises: 29c9d981a10b +Create Date: 2024-05-15 14:33:22.321287 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'b79748d3aaae' +down_revision = '29c9d981a10b' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('tenant_domain', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('tenant_id', sa.Integer(), nullable=False), + sa.Column('domain', sa.String(length=255), nullable=False), + sa.ForeignKeyConstraint(['tenant_id'], ['public.tenant.id'], ), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('domain'), + schema='public' + ) + with op.batch_alter_table('roles_users', schema=None) as batch_op: + batch_op.drop_constraint('roles_users_user_id_fkey', type_='foreignkey') + batch_op.drop_constraint('roles_users_role_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'role', ['role_id'], ['id'], referent_schema='public', ondelete='CASCADE') + batch_op.create_foreign_key(None, 'user', ['user_id'], ['id'], referent_schema='public', ondelete='CASCADE') + + with op.batch_alter_table('user', schema=None) as batch_op: + batch_op.drop_constraint('user_tenant_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'tenant', ['tenant_id'], ['id'], referent_schema='public') + + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('user', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('user_tenant_id_fkey', 'tenant', ['tenant_id'], ['id']) + + with op.batch_alter_table('roles_users', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('roles_users_role_id_fkey', 'role', ['role_id'], ['id'], ondelete='CASCADE') + batch_op.create_foreign_key('roles_users_user_id_fkey', 'user', ['user_id'], ['id'], ondelete='CASCADE') + + op.drop_table('tenant_domain', schema='public') + # ### end Alembic commands ### diff --git a/migrations/public/versions/ecf1215f61da_add_tags_for_html_embeddings.py b/migrations/public/versions/ecf1215f61da_add_tags_for_html_embeddings.py new file mode 100644 index 0000000..d3f058b --- /dev/null +++ b/migrations/public/versions/ecf1215f61da_add_tags_for_html_embeddings.py @@ -0,0 +1,52 @@ +"""Add tags for html embeddings + +Revision ID: ecf1215f61da +Revises: b853a06f4bf4 +Create Date: 2024-05-12 11:09:27.701764 + +""" +from alembic import op +import sqlalchemy as sa +from sqlalchemy.dialects import postgresql + +# revision identifiers, used by Alembic. +revision = 'ecf1215f61da' +down_revision = 'b853a06f4bf4' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('roles_users', schema=None) as batch_op: + batch_op.drop_constraint('roles_users_role_id_fkey', type_='foreignkey') + batch_op.drop_constraint('roles_users_user_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'role', ['role_id'], ['id'], referent_schema='public', ondelete='CASCADE') + batch_op.create_foreign_key(None, 'user', ['user_id'], ['id'], referent_schema='public', ondelete='CASCADE') + + with op.batch_alter_table('tenant', schema=None) as batch_op: + batch_op.add_column(sa.Column('html_tags', postgresql.ARRAY(sa.String(length=10)), nullable=True)) + + with op.batch_alter_table('user', schema=None) as batch_op: + batch_op.drop_constraint('user_tenant_id_fkey', type_='foreignkey') + batch_op.create_foreign_key(None, 'tenant', ['tenant_id'], ['id'], referent_schema='public') + + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('user', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('user_tenant_id_fkey', 'tenant', ['tenant_id'], ['id']) + + with op.batch_alter_table('tenant', schema=None) as batch_op: + batch_op.drop_column('html_tags') + + with op.batch_alter_table('roles_users', schema=None) as batch_op: + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.drop_constraint(None, type_='foreignkey') + batch_op.create_foreign_key('roles_users_user_id_fkey', 'user', ['user_id'], ['id'], ondelete='CASCADE') + batch_op.create_foreign_key('roles_users_role_id_fkey', 'role', ['role_id'], ['id'], ondelete='CASCADE') + + # ### end Alembic commands ### diff --git a/migrations/tenant/versions/505b61314bba_defined_interaction_domain.py b/migrations/tenant/versions/505b61314bba_defined_interaction_domain.py new file mode 100644 index 0000000..285ce32 --- /dev/null +++ b/migrations/tenant/versions/505b61314bba_defined_interaction_domain.py @@ -0,0 +1,28 @@ +"""Defined interaction domain + +Revision ID: 505b61314bba +Revises: e2735d216d3c +Create Date: 2024-05-20 08:20:19.786246 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '505b61314bba' +down_revision = 'e2735d216d3c' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + pass + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + pass + # ### end Alembic commands ### diff --git a/migrations/tenant/versions/53fee8f13cdb_defined_interaction_domain_2.py b/migrations/tenant/versions/53fee8f13cdb_defined_interaction_domain_2.py new file mode 100644 index 0000000..4f2281c --- /dev/null +++ b/migrations/tenant/versions/53fee8f13cdb_defined_interaction_domain_2.py @@ -0,0 +1,56 @@ +"""Defined interaction domain 2 + +Revision ID: 53fee8f13cdb +Revises: 505b61314bba +Create Date: 2024-05-20 08:37:25.182616 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '53fee8f13cdb' +down_revision = '505b61314bba' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('chat_session', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('user_id', sa.Integer(), nullable=True), + sa.Column('session_start', sa.DateTime(), nullable=False), + sa.Column('session_end', sa.DateTime(), nullable=True), + sa.ForeignKeyConstraint(['user_id'], ['public.user.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('interaction', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('chat_session_id', sa.Integer(), nullable=False), + sa.Column('question', sa.Text(), nullable=False), + sa.Column('answer', sa.Text(), nullable=True), + sa.Column('language', sa.String(length=2), nullable=False), + sa.Column('appreciation', sa.Integer(), nullable=True), + sa.Column('question_at', sa.DateTime(), nullable=False), + sa.Column('answer_at', sa.DateTime(), nullable=True), + sa.ForeignKeyConstraint(['chat_session_id'], ['chat_session.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('interaction_embedding', + sa.Column('interaction_id', sa.Integer(), nullable=False), + sa.Column('embedding_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['embedding_id'], ['embeddings.id'], ondelete='CASCADE'), + sa.ForeignKeyConstraint(['interaction_id'], ['interaction.id'], ondelete='CASCADE'), + sa.PrimaryKeyConstraint('interaction_id', 'embedding_id') + ) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('interaction_embedding') + op.drop_table('interaction') + op.drop_table('chat_session') + # ### end Alembic commands ### diff --git a/migrations/tenant/versions/e2735d216d3c_defined_interaction_domain.py b/migrations/tenant/versions/e2735d216d3c_defined_interaction_domain.py new file mode 100644 index 0000000..b6db39f --- /dev/null +++ b/migrations/tenant/versions/e2735d216d3c_defined_interaction_domain.py @@ -0,0 +1,28 @@ +"""Defined interaction domain + +Revision ID: e2735d216d3c +Revises: f88854b2ac59 +Create Date: 2024-05-17 18:56:10.547571 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'e2735d216d3c' +down_revision = 'f88854b2ac59' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + pass + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + pass + # ### end Alembic commands ###