kingmo888 / rustdesk-api-server

基于Django的RustDesk Api&Web Server,除了支持api所有功能,还支持web注册、管理、展示等。已支持到最新1.2.3版本。
489 stars 114 forks source link

decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>] #88

Closed sgpublic closed 1 month ago

sgpublic commented 1 month ago

感谢大佬的开源项目弥补了 RustDesk 的遗憾,我正在使用 docker-compose 部署 rustdesk,数据库使用的是 mariadb:11.2.3,但启动时报错日志如下,是否代表必须使用 mysql 8.0 呢

Exception in thread django-main-thread:
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/threading.py", line 1009, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.10/threading.py", line 946, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/local/lib/python3.10/site-packages/django/utils/autoreload.py", line 64, in wrapper
    fn(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/django/core/management/commands/runserver.py", line 136, in inner_run
    self.check_migrations()
  File "/usr/local/lib/python3.10/site-packages/django/core/management/base.py", line 581, in check_migrations
    executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
  File "/usr/local/lib/python3.10/site-packages/django/db/migrations/executor.py", line 18, in __init__
    self.loader = MigrationLoader(self.connection)
  File "/usr/local/lib/python3.10/site-packages/django/db/migrations/loader.py", line 58, in __init__
    self.build_graph()
  File "/usr/local/lib/python3.10/site-packages/django/db/migrations/loader.py", line 235, in build_graph
    self.applied_migrations = recorder.applied_migrations()
  File "/usr/local/lib/python3.10/site-packages/django/db/migrations/recorder.py", line 89, in applied_migrations
    if self.has_table():
  File "/usr/local/lib/python3.10/site-packages/django/db/migrations/recorder.py", line 63, in has_table
    with self.connection.cursor() as cursor:
  File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 316, in cursor
    return self._cursor()
  File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 292, in _cursor
    self.ensure_connection()
  File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 275, in ensure_connection
    self.connect()
  File "/usr/local/lib/python3.10/site-packages/django/utils/asyncio.py", line 26, in inner
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 258, in connect
    self.init_connection_state()
  File "/usr/local/lib/python3.10/site-packages/django/db/backends/mysql/base.py", line 266, in init_connection_state
    super().init_connection_state()
  File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 225, in init_connection_state
    self.check_database_version_supported()
  File "/usr/local/lib/python3.10/site-packages/django/db/backends/base/base.py", line 195, in check_database_version_supported
    self.features.minimum_database_version is not None
  File "/usr/local/lib/python3.10/site-packages/django/utils/functional.py", line 47, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lib/python3.10/site-packages/django/db/backends/mysql/features.py", line 67, in minimum_database_version
    if self.connection.mysql_is_mariadb:
  File "/usr/local/lib/python3.10/site-packages/django/utils/functional.py", line 47, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lib/python3.10/site-packages/django/db/backends/mysql/base.py", line 448, in mysql_is_mariadb
    return "mariadb" in self.mysql_server_info.lower()
  File "/usr/local/lib/python3.10/site-packages/django/utils/functional.py", line 47, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lib/python3.10/site-packages/django/db/backends/mysql/base.py", line 434, in mysql_server_info
    return self.mysql_server_data["version"]
  File "/usr/local/lib/python3.10/site-packages/django/utils/functional.py", line 47, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/usr/local/lib/python3.10/site-packages/django/db/backends/mysql/base.py", line 412, in mysql_server_data
    cursor.execute(
  File "/usr/local/lib/python3.10/site-packages/django/db/backends/utils.py", line 79, in execute
    return self._execute_with_wrappers(
  File "/usr/local/lib/python3.10/site-packages/django/db/backends/utils.py", line 92, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/usr/local/lib/python3.10/site-packages/django/db/backends/utils.py", line 103, in _execute
    return self.cursor.execute(sql)
  File "/usr/local/lib/python3.10/site-packages/django/db/backends/mysql/base.py", line 76, in execute
    return self.cursor.execute(query, args)
  File "/usr/local/lib/python3.10/site-packages/MySQLdb/cursors.py", line 179, in execute
    res = self._query(mogrified_query)
  File "/usr/local/lib/python3.10/site-packages/MySQLdb/cursors.py", line 332, in _query
    self._post_get_result()
  File "/usr/local/lib/python3.10/site-packages/MySQLdb/cursors.py", line 366, in _post_get_result
    self._rows = self._fetch_row(0)
  File "/usr/local/lib/python3.10/site-packages/MySQLdb/cursors.py", line 339, in _fetch_row
    return self._result.fetch_row(size, self._fetch_type)
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]
kingmo888 commented 1 month ago

试试原版Mysql呢? 如果不行,就先用sqlite3吧。

sgpublic commented 1 month ago

确实需要 MySQL 才行,不兼容 MariaDB,没事又搭了一个 MySQL,请问后面有计划支持 MariaDB 吗(doge

kingmo888 commented 1 month ago

确实需要 MySQL 才行,不兼容 MariaDB,没事又搭了一个 MySQL,请问后面有计划支持 MariaDB 吗(doge

问题不大。在django中都支持的。你看看自己的版本。 https://docs.djangoproject.com/zh-hans/4.2/ref/databases/#mariadb-notes