580e984b9882_initial_migration.py 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. """Initial migration
  2. Revision ID: 580e984b9882
  3. Revises:
  4. Create Date: 2024-12-06 10:54:42.146182
  5. """
  6. from typing import Sequence, Union
  7. from alembic import op
  8. import sqlalchemy as sa
  9. from sqlalchemy.dialects import mysql
  10. # revision identifiers, used by Alembic.
  11. revision: str = '580e984b9882'
  12. down_revision: Union[str, None] = None
  13. branch_labels: Union[str, Sequence[str], None] = None
  14. depends_on: Union[str, Sequence[str], None] = None
  15. def upgrade() -> None:
  16. # ### commands auto generated by Alembic - please adjust! ###
  17. op.create_table('user_test',
  18. sa.Column('id', sa.Integer(), nullable=False),
  19. sa.Column('username', sa.String(length=255), nullable=True),
  20. sa.Column('hashed_password', sa.String(length=255), nullable=True),
  21. sa.Column('password', sa.String(length=255), nullable=True),
  22. sa.Column('compellation', sa.String(length=255), nullable=False),
  23. sa.Column('phone', sa.String(length=255), nullable=False),
  24. sa.Column('email', sa.String(length=255), nullable=False),
  25. sa.Column('description', sa.String(length=255), nullable=False),
  26. sa.Column('ragflow_id', sa.String(length=32), nullable=True),
  27. sa.Column('bisheng_id', sa.Integer(), nullable=True),
  28. sa.PrimaryKeyConstraint('id')
  29. )
  30. op.create_index(op.f('ix_user_test_id'), 'user_test', ['id'], unique=False)
  31. op.create_index(op.f('ix_user_test_username'), 'user_test', ['username'], unique=True)
  32. op.drop_table('df_api_token')
  33. op.drop_table('sessions')
  34. op.drop_table('flow_test')
  35. op.drop_table('app_register')
  36. op.drop_table('user_canvas')
  37. op.drop_table('flow')
  38. op.drop_index('ix_group_info_group_id', table_name='group_info')
  39. op.drop_index('ix_group_info_group_name', table_name='group_info')
  40. op.drop_table('group_info')
  41. op.drop_table('group_agent')
  42. op.drop_table('organization_group')
  43. op.drop_table('token')
  44. op.drop_table('dialog')
  45. op.drop_index('ix_agent_id', table_name='agent')
  46. op.add_column('user', sa.Column('updated_at11', sa.Integer(), nullable=True))
  47. op.alter_column('user', 'compellation',
  48. existing_type=mysql.VARCHAR(length=255),
  49. nullable=False)
  50. op.alter_column('user', 'phone',
  51. existing_type=mysql.VARCHAR(length=255),
  52. nullable=False)
  53. op.alter_column('user', 'email',
  54. existing_type=mysql.VARCHAR(length=255),
  55. nullable=False)
  56. op.alter_column('user', 'description',
  57. existing_type=mysql.VARCHAR(length=255),
  58. nullable=False)
  59. op.alter_column('user', 'ragflow_id',
  60. existing_type=mysql.VARCHAR(length=32),
  61. nullable=True)
  62. op.alter_column('user', 'bisheng_id',
  63. existing_type=mysql.INTEGER(),
  64. nullable=True)
  65. # ### end Alembic commands ###
  66. def downgrade() -> None:
  67. # ### commands auto generated by Alembic - please adjust! ###
  68. op.alter_column('user', 'bisheng_id',
  69. existing_type=mysql.INTEGER(),
  70. nullable=False)
  71. op.alter_column('user', 'ragflow_id',
  72. existing_type=mysql.VARCHAR(length=32),
  73. nullable=False)
  74. op.alter_column('user', 'description',
  75. existing_type=mysql.VARCHAR(length=255),
  76. nullable=True)
  77. op.alter_column('user', 'email',
  78. existing_type=mysql.VARCHAR(length=255),
  79. nullable=True)
  80. op.alter_column('user', 'phone',
  81. existing_type=mysql.VARCHAR(length=255),
  82. nullable=True)
  83. op.alter_column('user', 'compellation',
  84. existing_type=mysql.VARCHAR(length=255),
  85. nullable=True)
  86. op.drop_column('user', 'updated_at11')
  87. op.create_index('ix_agent_id', 'agent', ['id'], unique=False)
  88. op.create_table('dialog',
  89. sa.Column('id', mysql.VARCHAR(length=255), nullable=False),
  90. sa.Column('name', mysql.VARCHAR(length=255), nullable=False),
  91. sa.Column('llm_id', mysql.VARCHAR(length=255), nullable=False),
  92. sa.Column('status', mysql.VARCHAR(length=1), nullable=False),
  93. sa.PrimaryKeyConstraint('id'),
  94. mysql_collate='utf8mb4_0900_ai_ci',
  95. mysql_default_charset='utf8mb4',
  96. mysql_engine='InnoDB'
  97. )
  98. op.create_table('token',
  99. sa.Column('id', mysql.INTEGER(), autoincrement=True, nullable=False),
  100. sa.Column('user_id', mysql.INTEGER(), autoincrement=False, nullable=True),
  101. sa.Column('token', mysql.TEXT(), nullable=True),
  102. sa.Column('bisheng_token', mysql.TEXT(), nullable=True),
  103. sa.Column('ragflow_token', mysql.TEXT(), nullable=True),
  104. sa.Column('created_at', mysql.DATETIME(), nullable=True),
  105. sa.PrimaryKeyConstraint('id'),
  106. mysql_collate='utf8mb4_0900_ai_ci',
  107. mysql_default_charset='utf8mb4',
  108. mysql_engine='InnoDB'
  109. )
  110. op.create_table('organization_group',
  111. sa.Column('group_id', mysql.INTEGER(), autoincrement=False, nullable=True),
  112. sa.Column('organization_id', mysql.VARCHAR(length=36), nullable=True),
  113. sa.ForeignKeyConstraint(['group_id'], ['group.id'], name='organization_group_ibfk_1'),
  114. sa.ForeignKeyConstraint(['organization_id'], ['organization.id'], name='organization_group_ibfk_2'),
  115. mysql_collate='utf8mb4_0900_ai_ci',
  116. mysql_default_charset='utf8mb4',
  117. mysql_engine='InnoDB'
  118. )
  119. op.create_table('group_agent',
  120. sa.Column('group_id', mysql.INTEGER(), autoincrement=False, nullable=True),
  121. sa.Column('agent_id', mysql.VARCHAR(length=36), nullable=True),
  122. sa.ForeignKeyConstraint(['agent_id'], ['canvas.id'], name='group_agent_ibfk_2', ondelete='CASCADE'),
  123. sa.ForeignKeyConstraint(['group_id'], ['group.id'], name='group_agent_ibfk_1', ondelete='CASCADE'),
  124. mysql_collate='utf8mb4_0900_ai_ci',
  125. mysql_default_charset='utf8mb4',
  126. mysql_engine='InnoDB'
  127. )
  128. op.create_table('group_info',
  129. sa.Column('group_id', mysql.INTEGER(), autoincrement=True, nullable=False),
  130. sa.Column('group_name', mysql.VARCHAR(length=255), nullable=False),
  131. sa.Column('group_description', mysql.VARCHAR(length=255), nullable=True),
  132. sa.Column('group_status', mysql.INTEGER(), autoincrement=False, nullable=False),
  133. sa.Column('created_at', mysql.DATETIME(), nullable=True),
  134. sa.Column('updated_at', mysql.DATETIME(), nullable=True),
  135. sa.PrimaryKeyConstraint('group_id'),
  136. mysql_collate='utf8mb4_0900_ai_ci',
  137. mysql_default_charset='utf8mb4',
  138. mysql_engine='InnoDB'
  139. )
  140. op.create_index('ix_group_info_group_name', 'group_info', ['group_name'], unique=True)
  141. op.create_index('ix_group_info_group_id', 'group_info', ['group_id'], unique=False)
  142. op.create_table('flow',
  143. sa.Column('id', mysql.VARCHAR(length=255), nullable=False),
  144. sa.Column('name', mysql.VARCHAR(length=255), nullable=False),
  145. sa.Column('status', mysql.INTEGER(), autoincrement=False, nullable=False),
  146. sa.PrimaryKeyConstraint('id'),
  147. mysql_collate='utf8mb4_0900_ai_ci',
  148. mysql_default_charset='utf8mb4',
  149. mysql_engine='InnoDB'
  150. )
  151. op.create_table('user_canvas',
  152. sa.Column('id', mysql.VARCHAR(length=32), nullable=False),
  153. sa.Column('create_date', mysql.DATETIME(), nullable=True),
  154. sa.Column('update_date', mysql.DATETIME(), nullable=True),
  155. sa.Column('avatar', mysql.TEXT(), nullable=True),
  156. sa.Column('user_id', mysql.VARCHAR(length=255), nullable=True),
  157. sa.Column('title', mysql.VARCHAR(length=255), nullable=True),
  158. sa.Column('description', mysql.TEXT(), nullable=True),
  159. sa.Column('canvas_type', mysql.VARCHAR(length=32), nullable=True),
  160. sa.Column('dsl', mysql.TEXT(), nullable=True),
  161. sa.Column('agent_type', mysql.VARCHAR(length=2), nullable=True),
  162. sa.PrimaryKeyConstraint('id'),
  163. mysql_collate='utf8mb4_0900_ai_ci',
  164. mysql_default_charset='utf8mb4',
  165. mysql_engine='InnoDB'
  166. )
  167. op.create_table('app_register',
  168. sa.Column('id', mysql.VARCHAR(length=36), nullable=False),
  169. sa.Column('name', mysql.VARCHAR(length=255), nullable=True),
  170. sa.Column('status', mysql.INTEGER(), autoincrement=False, nullable=False),
  171. sa.Column('created_at', mysql.DATETIME(), nullable=True),
  172. sa.Column('updated_at', mysql.DATETIME(), nullable=True),
  173. sa.PrimaryKeyConstraint('id'),
  174. mysql_collate='utf8mb4_0900_ai_ci',
  175. mysql_default_charset='utf8mb4',
  176. mysql_engine='InnoDB'
  177. )
  178. op.create_table('flow_test',
  179. sa.Column('id', mysql.VARCHAR(length=255), nullable=False),
  180. sa.Column('name', mysql.VARCHAR(length=255), nullable=False),
  181. sa.Column('status', mysql.INTEGER(), autoincrement=False, nullable=False),
  182. sa.PrimaryKeyConstraint('id'),
  183. mysql_collate='utf8mb4_0900_ai_ci',
  184. mysql_default_charset='utf8mb4',
  185. mysql_engine='InnoDB'
  186. )
  187. op.create_table('sessions',
  188. sa.Column('id', mysql.VARCHAR(length=255), nullable=False),
  189. sa.Column('name', mysql.VARCHAR(length=255), nullable=True),
  190. sa.Column('agent_id', mysql.VARCHAR(length=255), nullable=True),
  191. sa.Column('agent_type', mysql.ENUM('RAGFLOW', 'BISHENG', 'BASIC', 'DIFY'), nullable=False),
  192. sa.Column('create_date', mysql.DATETIME(), nullable=True),
  193. sa.Column('update_date', mysql.DATETIME(), nullable=True),
  194. sa.Column('tenant_id', mysql.INTEGER(), autoincrement=False, nullable=True),
  195. sa.Column('message', mysql.TEXT(), nullable=True),
  196. sa.Column('conversation_id', mysql.VARCHAR(length=64), nullable=True),
  197. sa.PrimaryKeyConstraint('id'),
  198. mysql_collate='utf8mb4_0900_ai_ci',
  199. mysql_default_charset='utf8mb4',
  200. mysql_engine='InnoDB'
  201. )
  202. op.create_table('df_api_token',
  203. sa.Column('id', mysql.VARCHAR(length=36), nullable=False),
  204. sa.Column('token', mysql.VARCHAR(length=36), nullable=True),
  205. sa.Column('created_at', mysql.DATETIME(), nullable=True),
  206. sa.Column('updated_at', mysql.DATETIME(), nullable=True),
  207. sa.PrimaryKeyConstraint('id'),
  208. mysql_collate='utf8mb4_0900_ai_ci',
  209. mysql_default_charset='utf8mb4',
  210. mysql_engine='InnoDB'
  211. )
  212. op.drop_index(op.f('ix_user_test_username'), table_name='user_test')
  213. op.drop_index(op.f('ix_user_test_id'), table_name='user_test')
  214. op.drop_table('user_test')
  215. # ### end Alembic commands ###