mirror of
https://github.com/open-webui/open-webui
synced 2024-11-07 00:59:52 +00:00
feat: project migration
This commit is contained in:
parent
fb083237cd
commit
bf57dd808e
@ -56,9 +56,6 @@ def run_migrations():
|
|||||||
print(f"Error: {e}")
|
print(f"Error: {e}")
|
||||||
|
|
||||||
|
|
||||||
run_migrations()
|
|
||||||
|
|
||||||
|
|
||||||
class Config(Base):
|
class Config(Base):
|
||||||
__tablename__ = "config"
|
__tablename__ = "config"
|
||||||
|
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
from alembic import op
|
from alembic import op
|
||||||
from sqlalchemy import Inspector
|
from sqlalchemy import Inspector
|
||||||
import uuid
|
|
||||||
|
|
||||||
|
|
||||||
def get_existing_tables():
|
def get_existing_tables():
|
||||||
@ -11,4 +10,6 @@ def get_existing_tables():
|
|||||||
|
|
||||||
|
|
||||||
def get_revision_id():
|
def get_revision_id():
|
||||||
|
import uuid
|
||||||
|
|
||||||
return str(uuid.uuid4()).replace("-", "")[:12]
|
return str(uuid.uuid4()).replace("-", "")[:12]
|
||||||
|
@ -0,0 +1,74 @@
|
|||||||
|
"""Add project table
|
||||||
|
|
||||||
|
Revision ID: 6a39f3d8e55c
|
||||||
|
Revises: c0fbf31ca0db
|
||||||
|
Create Date: 2024-10-01 14:02:35.241684
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
from sqlalchemy.sql import table, column, select
|
||||||
|
|
||||||
|
revision = "6a39f3d8e55c"
|
||||||
|
down_revision = "c0fbf31ca0db"
|
||||||
|
branch_labels = None
|
||||||
|
depends_on = None
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
# Creating the 'project' table
|
||||||
|
print("Creating project table")
|
||||||
|
project_table = op.create_table(
|
||||||
|
"project",
|
||||||
|
sa.Column("id", sa.Text(), primary_key=True),
|
||||||
|
sa.Column("user_id", sa.Text(), nullable=False),
|
||||||
|
sa.Column("name", sa.Text(), nullable=False),
|
||||||
|
sa.Column("description", sa.Text(), nullable=True),
|
||||||
|
sa.Column("data", sa.JSON(), nullable=True),
|
||||||
|
sa.Column("meta", sa.JSON(), nullable=True),
|
||||||
|
sa.Column("created_at", sa.BigInteger(), nullable=False),
|
||||||
|
sa.Column("updated_at", sa.BigInteger(), nullable=True),
|
||||||
|
)
|
||||||
|
|
||||||
|
print("Migrating data from document table to project table")
|
||||||
|
# Representation of the existing 'document' table
|
||||||
|
document_table = table(
|
||||||
|
"document",
|
||||||
|
column("collection_name", sa.String()),
|
||||||
|
column("user_id", sa.String()),
|
||||||
|
column("name", sa.String()),
|
||||||
|
column("title", sa.Text()),
|
||||||
|
column("timestamp", sa.BigInteger()),
|
||||||
|
)
|
||||||
|
|
||||||
|
# Select all from existing document table
|
||||||
|
documents = op.get_bind().execute(
|
||||||
|
select(
|
||||||
|
document_table.c.collection_name,
|
||||||
|
document_table.c.user_id,
|
||||||
|
document_table.c.name,
|
||||||
|
document_table.c.title,
|
||||||
|
document_table.c.timestamp,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
# Insert data into project table from document table
|
||||||
|
for doc in documents:
|
||||||
|
op.get_bind().execute(
|
||||||
|
project_table.insert().values(
|
||||||
|
id=doc.collection_name,
|
||||||
|
user_id=doc.user_id,
|
||||||
|
description=doc.name,
|
||||||
|
meta={
|
||||||
|
"legacy": True,
|
||||||
|
},
|
||||||
|
name=doc.title,
|
||||||
|
created_at=doc.timestamp,
|
||||||
|
updated_at=doc.timestamp, # using created_at for both created_at and updated_at in project
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
op.drop_table("project")
|
Loading…
Reference in New Issue
Block a user