4e99a8df00ff_add_load_balancing.py 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. """add load balancing
  2. Revision ID: 4e99a8df00ff
  3. Revises: 47cc7df8c4f3
  4. Create Date: 2024-05-10 12:08:09.812736
  5. """
  6. import sqlalchemy as sa
  7. from alembic import op
  8. import models as models
  9. # revision identifiers, used by Alembic.
  10. revision = '4e99a8df00ff'
  11. down_revision = '64a70a7aab8b'
  12. branch_labels = None
  13. depends_on = None
  14. def upgrade():
  15. # ### commands auto generated by Alembic - please adjust! ###
  16. op.create_table('load_balancing_model_configs',
  17. sa.Column('id', models.StringUUID(), server_default=sa.text('uuid_generate_v4()'), nullable=False),
  18. sa.Column('tenant_id', models.StringUUID(), nullable=False),
  19. sa.Column('provider_name', sa.String(length=255), nullable=False),
  20. sa.Column('model_name', sa.String(length=255), nullable=False),
  21. sa.Column('model_type', sa.String(length=40), nullable=False),
  22. sa.Column('name', sa.String(length=255), nullable=False),
  23. sa.Column('encrypted_config', sa.Text(), nullable=True),
  24. sa.Column('enabled', sa.Boolean(), server_default=sa.text('true'), nullable=False),
  25. sa.Column('created_at', sa.DateTime(), server_default=sa.text('CURRENT_TIMESTAMP(0)'), nullable=False),
  26. sa.Column('updated_at', sa.DateTime(), server_default=sa.text('CURRENT_TIMESTAMP(0)'), nullable=False),
  27. sa.PrimaryKeyConstraint('id', name='load_balancing_model_config_pkey')
  28. )
  29. with op.batch_alter_table('load_balancing_model_configs', schema=None) as batch_op:
  30. batch_op.create_index('load_balancing_model_config_tenant_provider_model_idx', ['tenant_id', 'provider_name', 'model_type'], unique=False)
  31. op.create_table('provider_model_settings',
  32. sa.Column('id', models.StringUUID(), server_default=sa.text('uuid_generate_v4()'), nullable=False),
  33. sa.Column('tenant_id', models.StringUUID(), nullable=False),
  34. sa.Column('provider_name', sa.String(length=255), nullable=False),
  35. sa.Column('model_name', sa.String(length=255), nullable=False),
  36. sa.Column('model_type', sa.String(length=40), nullable=False),
  37. sa.Column('enabled', sa.Boolean(), server_default=sa.text('true'), nullable=False),
  38. sa.Column('load_balancing_enabled', sa.Boolean(), server_default=sa.text('false'), nullable=False),
  39. sa.Column('created_at', sa.DateTime(), server_default=sa.text('CURRENT_TIMESTAMP(0)'), nullable=False),
  40. sa.Column('updated_at', sa.DateTime(), server_default=sa.text('CURRENT_TIMESTAMP(0)'), nullable=False),
  41. sa.PrimaryKeyConstraint('id', name='provider_model_setting_pkey')
  42. )
  43. with op.batch_alter_table('provider_model_settings', schema=None) as batch_op:
  44. batch_op.create_index('provider_model_setting_tenant_provider_model_idx', ['tenant_id', 'provider_name', 'model_type'], unique=False)
  45. with op.batch_alter_table('provider_models', schema=None) as batch_op:
  46. batch_op.alter_column('provider_name',
  47. existing_type=sa.VARCHAR(length=40),
  48. type_=sa.String(length=255),
  49. existing_nullable=False)
  50. with op.batch_alter_table('provider_orders', schema=None) as batch_op:
  51. batch_op.alter_column('provider_name',
  52. existing_type=sa.VARCHAR(length=40),
  53. type_=sa.String(length=255),
  54. existing_nullable=False)
  55. with op.batch_alter_table('providers', schema=None) as batch_op:
  56. batch_op.alter_column('provider_name',
  57. existing_type=sa.VARCHAR(length=40),
  58. type_=sa.String(length=255),
  59. existing_nullable=False)
  60. with op.batch_alter_table('tenant_default_models', schema=None) as batch_op:
  61. batch_op.alter_column('provider_name',
  62. existing_type=sa.VARCHAR(length=40),
  63. type_=sa.String(length=255),
  64. existing_nullable=False)
  65. with op.batch_alter_table('tenant_preferred_model_providers', schema=None) as batch_op:
  66. batch_op.alter_column('provider_name',
  67. existing_type=sa.VARCHAR(length=40),
  68. type_=sa.String(length=255),
  69. existing_nullable=False)
  70. # ### end Alembic commands ###
  71. def downgrade():
  72. # ### commands auto generated by Alembic - please adjust! ###
  73. with op.batch_alter_table('tenant_preferred_model_providers', schema=None) as batch_op:
  74. batch_op.alter_column('provider_name',
  75. existing_type=sa.String(length=255),
  76. type_=sa.VARCHAR(length=40),
  77. existing_nullable=False)
  78. with op.batch_alter_table('tenant_default_models', schema=None) as batch_op:
  79. batch_op.alter_column('provider_name',
  80. existing_type=sa.String(length=255),
  81. type_=sa.VARCHAR(length=40),
  82. existing_nullable=False)
  83. with op.batch_alter_table('providers', schema=None) as batch_op:
  84. batch_op.alter_column('provider_name',
  85. existing_type=sa.String(length=255),
  86. type_=sa.VARCHAR(length=40),
  87. existing_nullable=False)
  88. with op.batch_alter_table('provider_orders', schema=None) as batch_op:
  89. batch_op.alter_column('provider_name',
  90. existing_type=sa.String(length=255),
  91. type_=sa.VARCHAR(length=40),
  92. existing_nullable=False)
  93. with op.batch_alter_table('provider_models', schema=None) as batch_op:
  94. batch_op.alter_column('provider_name',
  95. existing_type=sa.String(length=255),
  96. type_=sa.VARCHAR(length=40),
  97. existing_nullable=False)
  98. with op.batch_alter_table('provider_model_settings', schema=None) as batch_op:
  99. batch_op.drop_index('provider_model_setting_tenant_provider_model_idx')
  100. op.drop_table('provider_model_settings')
  101. with op.batch_alter_table('load_balancing_model_configs', schema=None) as batch_op:
  102. batch_op.drop_index('load_balancing_model_config_tenant_provider_model_idx')
  103. op.drop_table('load_balancing_model_configs')
  104. # ### end Alembic commands ###