7e5b5dc7342b_init.py 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. """init
  2. Revision ID: 7e5b5dc7342b
  3. Revises:
  4. Create Date: 2024-06-24 13:15:33.808998
  5. """
  6. from typing import Sequence, Union
  7. from alembic import op
  8. import sqlalchemy as sa
  9. import apps.webui.internal.db
  10. from migrations.util import get_existing_tables
  11. # revision identifiers, used by Alembic.
  12. revision: str = '7e5b5dc7342b'
  13. down_revision: Union[str, None] = None
  14. branch_labels: Union[str, Sequence[str], None] = None
  15. depends_on: Union[str, Sequence[str], None] = None
  16. def upgrade() -> None:
  17. existing_tables = set(get_existing_tables())
  18. # ### commands auto generated by Alembic - please adjust! ###
  19. if "auth" not in existing_tables:
  20. op.create_table('auth',
  21. sa.Column('id', sa.String(), nullable=False),
  22. sa.Column('email', sa.String(), nullable=True),
  23. sa.Column('password', sa.Text(), nullable=True),
  24. sa.Column('active', sa.Boolean(), nullable=True),
  25. sa.PrimaryKeyConstraint('id')
  26. )
  27. if "chat" not in existing_tables:
  28. op.create_table('chat',
  29. sa.Column('id', sa.String(), nullable=False),
  30. sa.Column('user_id', sa.String(), nullable=True),
  31. sa.Column('title', sa.Text(), nullable=True),
  32. sa.Column('chat', sa.Text(), nullable=True),
  33. sa.Column('created_at', sa.BigInteger(), nullable=True),
  34. sa.Column('updated_at', sa.BigInteger(), nullable=True),
  35. sa.Column('share_id', sa.Text(), nullable=True),
  36. sa.Column('archived', sa.Boolean(), nullable=True),
  37. sa.PrimaryKeyConstraint('id'),
  38. sa.UniqueConstraint('share_id')
  39. )
  40. if "chatidtag" not in existing_tables:
  41. op.create_table('chatidtag',
  42. sa.Column('id', sa.String(), nullable=False),
  43. sa.Column('tag_name', sa.String(), nullable=True),
  44. sa.Column('chat_id', sa.String(), nullable=True),
  45. sa.Column('user_id', sa.String(), nullable=True),
  46. sa.Column('timestamp', sa.BigInteger(), nullable=True),
  47. sa.PrimaryKeyConstraint('id')
  48. )
  49. if "document" not in existing_tables:
  50. op.create_table('document',
  51. sa.Column('collection_name', sa.String(), nullable=False),
  52. sa.Column('name', sa.String(), nullable=True),
  53. sa.Column('title', sa.Text(), nullable=True),
  54. sa.Column('filename', sa.Text(), nullable=True),
  55. sa.Column('content', sa.Text(), nullable=True),
  56. sa.Column('user_id', sa.String(), nullable=True),
  57. sa.Column('timestamp', sa.BigInteger(), nullable=True),
  58. sa.PrimaryKeyConstraint('collection_name'),
  59. sa.UniqueConstraint('name')
  60. )
  61. if "file" not in existing_tables:
  62. op.create_table('file',
  63. sa.Column('id', sa.String(), nullable=False),
  64. sa.Column('user_id', sa.String(), nullable=True),
  65. sa.Column('filename', sa.Text(), nullable=True),
  66. sa.Column('meta', apps.webui.internal.db.JSONField(), nullable=True),
  67. sa.Column('created_at', sa.BigInteger(), nullable=True),
  68. sa.PrimaryKeyConstraint('id')
  69. )
  70. if "function" not in existing_tables:
  71. op.create_table('function',
  72. sa.Column('id', sa.String(), nullable=False),
  73. sa.Column('user_id', sa.String(), nullable=True),
  74. sa.Column('name', sa.Text(), nullable=True),
  75. sa.Column('type', sa.Text(), nullable=True),
  76. sa.Column('content', sa.Text(), nullable=True),
  77. sa.Column('meta', apps.webui.internal.db.JSONField(), nullable=True),
  78. sa.Column('valves', apps.webui.internal.db.JSONField(), nullable=True),
  79. sa.Column('is_active', sa.Boolean(), nullable=True),
  80. sa.Column('updated_at', sa.BigInteger(), nullable=True),
  81. sa.Column('created_at', sa.BigInteger(), nullable=True),
  82. sa.PrimaryKeyConstraint('id')
  83. )
  84. if "memory" not in existing_tables:
  85. op.create_table('memory',
  86. sa.Column('id', sa.String(), nullable=False),
  87. sa.Column('user_id', sa.String(), nullable=True),
  88. sa.Column('content', sa.Text(), nullable=True),
  89. sa.Column('updated_at', sa.BigInteger(), nullable=True),
  90. sa.Column('created_at', sa.BigInteger(), nullable=True),
  91. sa.PrimaryKeyConstraint('id')
  92. )
  93. if "model" not in existing_tables:
  94. op.create_table('model',
  95. sa.Column('id', sa.Text(), nullable=False),
  96. sa.Column('user_id', sa.Text(), nullable=True),
  97. sa.Column('base_model_id', sa.Text(), nullable=True),
  98. sa.Column('name', sa.Text(), nullable=True),
  99. sa.Column('params', apps.webui.internal.db.JSONField(), nullable=True),
  100. sa.Column('meta', apps.webui.internal.db.JSONField(), nullable=True),
  101. sa.Column('updated_at', sa.BigInteger(), nullable=True),
  102. sa.Column('created_at', sa.BigInteger(), nullable=True),
  103. sa.PrimaryKeyConstraint('id')
  104. )
  105. if "prompt" not in existing_tables:
  106. op.create_table('prompt',
  107. sa.Column('command', sa.String(), nullable=False),
  108. sa.Column('user_id', sa.String(), nullable=True),
  109. sa.Column('title', sa.Text(), nullable=True),
  110. sa.Column('content', sa.Text(), nullable=True),
  111. sa.Column('timestamp', sa.BigInteger(), nullable=True),
  112. sa.PrimaryKeyConstraint('command')
  113. )
  114. if "tag" not in existing_tables:
  115. op.create_table('tag',
  116. sa.Column('id', sa.String(), nullable=False),
  117. sa.Column('name', sa.String(), nullable=True),
  118. sa.Column('user_id', sa.String(), nullable=True),
  119. sa.Column('data', sa.Text(), nullable=True),
  120. sa.PrimaryKeyConstraint('id')
  121. )
  122. if "tool" not in existing_tables:
  123. op.create_table('tool',
  124. sa.Column('id', sa.String(), nullable=False),
  125. sa.Column('user_id', sa.String(), nullable=True),
  126. sa.Column('name', sa.Text(), nullable=True),
  127. sa.Column('content', sa.Text(), nullable=True),
  128. sa.Column('specs', apps.webui.internal.db.JSONField(), nullable=True),
  129. sa.Column('meta', apps.webui.internal.db.JSONField(), nullable=True),
  130. sa.Column('valves', apps.webui.internal.db.JSONField(), nullable=True),
  131. sa.Column('updated_at', sa.BigInteger(), nullable=True),
  132. sa.Column('created_at', sa.BigInteger(), nullable=True),
  133. sa.PrimaryKeyConstraint('id')
  134. )
  135. if "user" not in existing_tables:
  136. op.create_table('user',
  137. sa.Column('id', sa.String(), nullable=False),
  138. sa.Column('name', sa.String(), nullable=True),
  139. sa.Column('email', sa.String(), nullable=True),
  140. sa.Column('role', sa.String(), nullable=True),
  141. sa.Column('profile_image_url', sa.Text(), nullable=True),
  142. sa.Column('last_active_at', sa.BigInteger(), nullable=True),
  143. sa.Column('updated_at', sa.BigInteger(), nullable=True),
  144. sa.Column('created_at', sa.BigInteger(), nullable=True),
  145. sa.Column('api_key', sa.String(), nullable=True),
  146. sa.Column('settings', apps.webui.internal.db.JSONField(), nullable=True),
  147. sa.Column('info', apps.webui.internal.db.JSONField(), nullable=True),
  148. sa.PrimaryKeyConstraint('id'),
  149. sa.UniqueConstraint('api_key')
  150. )
  151. # ### end Alembic commands ###
  152. def downgrade() -> None:
  153. # ### commands auto generated by Alembic - please adjust! ###
  154. op.drop_table('user')
  155. op.drop_table('tool')
  156. op.drop_table('tag')
  157. op.drop_table('prompt')
  158. op.drop_table('model')
  159. op.drop_table('memory')
  160. op.drop_table('function')
  161. op.drop_table('file')
  162. op.drop_table('document')
  163. op.drop_table('chatidtag')
  164. op.drop_table('chat')
  165. op.drop_table('auth')
  166. # ### end Alembic commands ###