|
@@ -12,6 +12,7 @@ from constants.languages import languages
|
|
|
from core.rag.datasource.vdb.vector_factory import Vector
|
|
|
from core.rag.datasource.vdb.vector_type import VectorType
|
|
|
from core.rag.models.document import Document
|
|
|
+from events.app_event import app_was_created
|
|
|
from extensions.ext_database import db
|
|
|
from extensions.ext_redis import redis_client
|
|
|
from libs.helper import email as email_validate
|
|
@@ -585,6 +586,46 @@ def upgrade_db():
|
|
|
click.echo('Database migration skipped')
|
|
|
|
|
|
|
|
|
+@click.command('fix-app-site-missing', help='Fix app related site missing issue.')
|
|
|
+def fix_app_site_missing():
|
|
|
+ """
|
|
|
+ Fix app related site missing issue.
|
|
|
+ """
|
|
|
+ click.echo(click.style('Start fix app related site missing issue.', fg='green'))
|
|
|
+
|
|
|
+ while True:
|
|
|
+ try:
|
|
|
+ sql = """select apps.id as id from apps left join sites on sites.app_id=apps.id
|
|
|
+where sites.id is null limit 1000"""
|
|
|
+ with db.engine.begin() as conn:
|
|
|
+ rs = conn.execute(db.text(sql))
|
|
|
+
|
|
|
+ processed_count = 0
|
|
|
+ for i in rs:
|
|
|
+ processed_count += 1
|
|
|
+ app_id = str(i.id)
|
|
|
+ app = db.session.query(App).filter(App.id == app_id).first()
|
|
|
+ tenant = app.tenant
|
|
|
+ if tenant:
|
|
|
+ accounts = tenant.get_accounts()
|
|
|
+ if not accounts:
|
|
|
+ print("Fix app {} failed.".format(app.id))
|
|
|
+ continue
|
|
|
+
|
|
|
+ account = accounts[0]
|
|
|
+ print("Fix app {} related site missing issue.".format(app.id))
|
|
|
+ app_was_created.send(app, account=account)
|
|
|
+
|
|
|
+ if not processed_count:
|
|
|
+ break
|
|
|
+ except Exception as e:
|
|
|
+ click.echo(click.style('Fix app related site missing issue failed!', fg='red'))
|
|
|
+ logging.exception(f'Fix app related site missing issue failed, error: {e}')
|
|
|
+ continue
|
|
|
+
|
|
|
+ click.echo(click.style('Congratulations! Fix app related site missing issue successful!', fg='green'))
|
|
|
+
|
|
|
+
|
|
|
def register_commands(app):
|
|
|
app.cli.add_command(reset_password)
|
|
|
app.cli.add_command(reset_email)
|
|
@@ -594,3 +635,4 @@ def register_commands(app):
|
|
|
app.cli.add_command(add_qdrant_doc_id_index)
|
|
|
app.cli.add_command(create_tenant)
|
|
|
app.cli.add_command(upgrade_db)
|
|
|
+ app.cli.add_command(fix_app_site_missing)
|