数据库结构错误 #4819

Closed
opened 2026-02-21 18:08:09 -05:00 by yindo · 4 comments
Owner

Originally created by @turkeymz on GitHub (Jul 30, 2024).

Self Checks

  • This is only for bug report, if you would like to ask a question, please head to Discussions.
  • I have searched for existing issues search for existing issues, including closed ones.
  • I confirm that I am using English to submit this report (我已阅读并同意 Language Policy).
  • 请务必使用英文提交 Issue,否则会被关闭。谢谢!:)
  • Please do not modify this template :) and fill in all the required fields.

Dify version

0.6.15

Cloud or Self Hosted

Self Hosted (Source)

Steps to reproduce

  1. 使用main分支初始化数据库(源码部署)
  2. 切换到0.6.15版本直接启动(源码部署)

✔️ Expected Behavior

整个应用系统无缝切换启动

Actual Behavior

事实上,在知识库列表中出现数据库结构的错误。麻烦提供一下新的ddl升级脚本。同时希望每次新版本升级的时候,若出现数据库结构修改,能够提供sql实现无缝升级。
日志如下
`
2024-07-30 05:43:57,888.888 ERROR [Thread-2474 (process_request_thread)] [app.py:838] - Exception on /console/api/datasets [GET]
Traceback (most recent call last):
File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
self.dialect.do_execute(
File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 924, in do_execute
cursor.execute(statement, parameters)
psycopg2.errors.UndefinedTable: relation "dataset_permissions" does not exist
LINE 2: FROM dataset_permissions
^

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/jxbd/python3/lib/python3.10/site-packages/flask/app.py", line 880, in full_dispatch_request
rv = self.dispatch_request()
File "/home/jxbd/python3/lib/python3.10/site-packages/flask/app.py", line 865, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
File "/home/jxbd/python3/lib/python3.10/site-packages/flask_restful/__init__.py", line 489, in wrapper
resp = resource(*args, **kwargs)
File "/home/jxbd/python3/lib/python3.10/site-packages/flask/views.py", line 110, in view
return current_app.ensure_sync(self.dispatch_request)(**kwargs) # type: ignore[no-any-return]
File "/home/jxbd/python3/lib/python3.10/site-packages/flask_restful/__init__.py", line 604, in dispatch_request
resp = meth(*args, **kwargs)
File "/home/jxbd/python/dify/api/controllers/console/setup.py", line 75, in decorated
return view(*args, **kwargs)
File "/home/jxbd/python/dify/api/libs/login.py", line 91, in decorated_view
return current_app.ensure_sync(func)(*args, **kwargs)
File "/home/jxbd/python/dify/api/controllers/console/wraps.py", line 22, in decorated
return view(*args, **kwargs)
File "/home/jxbd/python/dify/api/controllers/console/datasets/datasets.py", line 60, in get
datasets, total = DatasetService.get_datasets(page, limit, provider,
File "/home/jxbd/python/dify/api/services/dataset_service.py", line 69, in get_datasets
).all()
File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 2673, in all
return self._iter().all() # type: ignore
File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 2827, in _iter
result: Union[ScalarResult[_T], Result[_T]] = self.session.execute(
File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 2351, in execute
return self._execute_internal(
File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 2236, in _execute_internal
result: Result[Any] = compile_state_cls.orm_execute_statement(
File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 293, in orm_execute_statement
result = conn.execute(
File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1418, in execute
return meth(
File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection
return connection._execute_clauseelement(
File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1640, in _execute_clauseelement
ret = self._execute_context(
File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
return self._exec_single_context(
File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
self._handle_dbapi_exception(
File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2353, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
self.dialect.do_execute(
File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 924, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) relation "dataset_permissions" does not exist
LINE 2: FROM dataset_permissions
^

[SQL: SELECT dataset_permissions.id AS dataset_permissions_id, dataset_permissions.dataset_id AS dataset_permissions_dataset_id, dataset_permissions.account_id AS dataset_permissions_account_id, dataset_permissions.tenant_id AS dataset_permissions_tenant_id, dataset_permissions.has_permission AS dataset_permissions_has_permission, dataset_permissions.created_at AS dataset_permissions_created_at
FROM dataset_permissions
WHERE dataset_permissions.account_id = %(account_id_1)s::UUID AND dataset_permissions.tenant_id = %(tenant_id_1)s::UUID]
[parameters: {'account_id_1': '1e2cd3bf-85d6-48ca-9258-35d8960aedf7', 'tenant_id_1': 'de7f1b11-55dd-4ec5-864d-3178548aad1c'}]
(Background on this error at: https://sqlalche.me/e/20/f405)
`

Originally created by @turkeymz on GitHub (Jul 30, 2024). ### Self Checks - [X] This is only for bug report, if you would like to ask a question, please head to [Discussions](https://github.com/langgenius/dify/discussions/categories/general). - [X] I have searched for existing issues [search for existing issues](https://github.com/langgenius/dify/issues), including closed ones. - [X] I confirm that I am using English to submit this report (我已阅读并同意 [Language Policy](https://github.com/langgenius/dify/issues/1542)). - [X] 请务必使用英文提交 Issue,否则会被关闭。谢谢!:) - [X] Please do not modify this template :) and fill in all the required fields. ### Dify version 0.6.15 ### Cloud or Self Hosted Self Hosted (Source) ### Steps to reproduce 1. 使用main分支初始化数据库(源码部署) 2. 切换到0.6.15版本直接启动(源码部署) ### ✔️ Expected Behavior 整个应用系统无缝切换启动 ### ❌ Actual Behavior 事实上,在知识库列表中出现数据库结构的错误。麻烦提供一下新的ddl升级脚本。同时希望每次新版本升级的时候,若出现数据库结构修改,能够提供sql实现无缝升级。 日志如下 ` 2024-07-30 05:43:57,888.888 ERROR [Thread-2474 (process_request_thread)] [app.py:838] - Exception on /console/api/datasets [GET] Traceback (most recent call last): File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context self.dialect.do_execute( File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 924, in do_execute cursor.execute(statement, parameters) psycopg2.errors.UndefinedTable: relation "dataset_permissions" does not exist LINE 2: FROM dataset_permissions ^ The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/jxbd/python3/lib/python3.10/site-packages/flask/app.py", line 880, in full_dispatch_request rv = self.dispatch_request() File "/home/jxbd/python3/lib/python3.10/site-packages/flask/app.py", line 865, in dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return] File "/home/jxbd/python3/lib/python3.10/site-packages/flask_restful/__init__.py", line 489, in wrapper resp = resource(*args, **kwargs) File "/home/jxbd/python3/lib/python3.10/site-packages/flask/views.py", line 110, in view return current_app.ensure_sync(self.dispatch_request)(**kwargs) # type: ignore[no-any-return] File "/home/jxbd/python3/lib/python3.10/site-packages/flask_restful/__init__.py", line 604, in dispatch_request resp = meth(*args, **kwargs) File "/home/jxbd/python/dify/api/controllers/console/setup.py", line 75, in decorated return view(*args, **kwargs) File "/home/jxbd/python/dify/api/libs/login.py", line 91, in decorated_view return current_app.ensure_sync(func)(*args, **kwargs) File "/home/jxbd/python/dify/api/controllers/console/wraps.py", line 22, in decorated return view(*args, **kwargs) File "/home/jxbd/python/dify/api/controllers/console/datasets/datasets.py", line 60, in get datasets, total = DatasetService.get_datasets(page, limit, provider, File "/home/jxbd/python/dify/api/services/dataset_service.py", line 69, in get_datasets ).all() File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 2673, in all return self._iter().all() # type: ignore File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 2827, in _iter result: Union[ScalarResult[_T], Result[_T]] = self.session.execute( File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 2351, in execute return self._execute_internal( File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 2236, in _execute_internal result: Result[Any] = compile_state_cls.orm_execute_statement( File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/orm/context.py", line 293, in orm_execute_statement result = conn.execute( File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1418, in execute return meth( File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection return connection._execute_clauseelement( File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1640, in _execute_clauseelement ret = self._execute_context( File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context return self._exec_single_context( File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context self._handle_dbapi_exception( File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2353, in _handle_dbapi_exception raise sqlalchemy_exception.with_traceback(exc_info[2]) from e File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context self.dialect.do_execute( File "/home/jxbd/python3/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 924, in do_execute cursor.execute(statement, parameters) sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedTable) relation "dataset_permissions" does not exist LINE 2: FROM dataset_permissions ^ [SQL: SELECT dataset_permissions.id AS dataset_permissions_id, dataset_permissions.dataset_id AS dataset_permissions_dataset_id, dataset_permissions.account_id AS dataset_permissions_account_id, dataset_permissions.tenant_id AS dataset_permissions_tenant_id, dataset_permissions.has_permission AS dataset_permissions_has_permission, dataset_permissions.created_at AS dataset_permissions_created_at FROM dataset_permissions WHERE dataset_permissions.account_id = %(account_id_1)s::UUID AND dataset_permissions.tenant_id = %(tenant_id_1)s::UUID] [parameters: {'account_id_1': '1e2cd3bf-85d6-48ca-9258-35d8960aedf7', 'tenant_id_1': 'de7f1b11-55dd-4ec5-864d-3178548aad1c'}] (Background on this error at: https://sqlalche.me/e/20/f405) `
yindo added the 🐞 bug label 2026-02-21 18:08:09 -05:00
yindo closed this issue 2026-02-21 18:08:09 -05:00
Author
Owner

@dosubot[bot] commented on GitHub (Jul 30, 2024):

@turkeymz Hello! I'm here to help you with any issues, answer questions, and assist you in becoming a contributor.

要解决升级到 Dify 0.6.15 版本后出现的数据库结构错误,您需要创建缺失的 dataset_permissions 表。以下是创建该表的 DDL 升级脚本:

CREATE TABLE dataset_permissions (
    id UUID PRIMARY KEY,
    dataset_id UUID NOT NULL,
    account_id UUID NOT NULL,
    tenant_id UUID NOT NULL,
    has_permission BOOLEAN NOT NULL,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

在您的数据库中运行此脚本以创建 dataset_permissions 表并解决错误[1].

此外,建议在未来的版本升级中包含 SQL 脚本,以确保数据库结构的无缝升级。

To continue talking to Dosu, mention @dosu.

@dosubot[bot] commented on GitHub (Jul 30, 2024): <!-- Greeting --> @turkeymz Hello! I'm here to help you with any issues, answer questions, and assist you in becoming a contributor. <!-- Answer --> 要解决升级到 Dify 0.6.15 版本后出现的数据库结构错误,您需要创建缺失的 `dataset_permissions` 表。以下是创建该表的 DDL 升级脚本: ```sql CREATE TABLE dataset_permissions ( id UUID PRIMARY KEY, dataset_id UUID NOT NULL, account_id UUID NOT NULL, tenant_id UUID NOT NULL, has_permission BOOLEAN NOT NULL, created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP ); ``` 在您的数据库中运行此脚本以创建 `dataset_permissions` 表并解决错误<sup>[[1]](https://github.com/langgenius/dify-docs/blob/main/en/getting-started/install-self-hosted/docker-compose.md)</sup>. 此外,建议在未来的版本升级中包含 SQL 脚本,以确保数据库结构的无缝升级。 <!-- Dosu Comment Footer --> *To continue talking to [Dosu](https://dosu.dev), mention @dosu.*
Author
Owner

@turkeymz commented on GitHub (Jul 30, 2024):

CREATE TABLE dataset_permissions (
    id UUID PRIMARY KEY,
    dataset_id UUID NOT NULL,
    account_id UUID NOT NULL,
    tenant_id UUID NOT NULL,
    has_permission BOOLEAN NOT NULL,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

收到,感谢

@turkeymz commented on GitHub (Jul 30, 2024): > ```sql > CREATE TABLE dataset_permissions ( > id UUID PRIMARY KEY, > dataset_id UUID NOT NULL, > account_id UUID NOT NULL, > tenant_id UUID NOT NULL, > has_permission BOOLEAN NOT NULL, > created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP > ); > ``` 收到,感谢
Author
Owner

@crazywoola commented on GitHub (Jul 30, 2024):

image.
We do not provide these DDL as you said. Please strictly follow the release guides to upgrade to latest version. If you need technical support, please reach out to business@dify.ai

@crazywoola commented on GitHub (Jul 30, 2024): <img width="627" alt="image" src="https://github.com/user-attachments/assets/cbfc5b27-770c-4546-afa6-88c858f19bf7">. We do not provide these DDL as you said. Please strictly follow the release guides to upgrade to latest version. If you need technical support, please reach out to business@dify.ai
Author
Owner

@turkeymz commented on GitHub (Aug 2, 2024):

release guides to upgrade

Thanks so much. But where is the release guides to upgrade?I will follow it in the next version.

@turkeymz commented on GitHub (Aug 2, 2024): > release guides to upgrade Thanks so much. But where is the release guides to upgrade?I will follow it in the next version.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#4819