【发布时间】:2021-07-12 21:30:09
【问题描述】:
我在我的 django 数据库中使用 SQLite,我想在我的 Synology NAS 上使用 MariaDb。
我在 Python 3.9.0+ 和 MariaDB 10.3.24 上使用 Django 3.2
我使用 pip 包 mysql-connector-python==8.0.23 作为 mysql 连接器。
DATABASES = {
'default': {
'ENGINE': 'mysql.connector.django',
'NAME': 'energyHomeWeb_django',
'USER': 'energyHomeWeb',
'PASSWORD': 'password',
'HOST': '192.168.1.123',
'PORT': '3307',
'OPTIONS': {
'autocommit': True,
},
}
}
当我想启动或迁移我的服务器时,我遇到了这个错误:
Exception in thread django-main-thread:
Traceback (most recent call last):
File "/usr/lib/python3.9/threading.py", line 950, in _bootstrap_inner
self.run()
File "/usr/lib/python3.9/threading.py", line 888, in run
self._target(*self._args, **self._kwargs)
File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/utils/autoreload.py", line 64, in wrapper
fn(*args, **kwargs)
File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 121, in inner_run
self.check_migrations()
File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/core/management/base.py", line 486, in check_migrations
executor = MigrationExecutor(connections[DEFAULT_DB_ALIAS])
File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/db/migrations/executor.py", line 18, in __init__
self.loader = MigrationLoader(self.connection)
File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/db/migrations/loader.py", line 53, in __init__
self.build_graph()
File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/db/migrations/loader.py", line 220, in build_graph
self.applied_migrations = recorder.applied_migrations()
File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/db/migrations/recorder.py", line 77, in applied_migrations
if self.has_table():
File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/db/migrations/recorder.py", line 55, in has_table
with self.connection.cursor() as cursor:
File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/db/backends/base/base.py", line 259, in cursor
return self._cursor()
File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/db/backends/base/base.py", line 235, in _cursor
self.ensure_connection()
File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/db/backends/base/base.py", line 219, in ensure_connection
self.connect()
File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/utils/asyncio.py", line 26, in inner
return func(*args, **kwargs)
File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/db/backends/base/base.py", line 202, in connect
self.init_connection_state()
File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/mysql/connector/django/base.py", line 341, in init_connection_state
if self.features.is_sql_auto_is_null_enabled:
File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/utils/functional.py", line 48, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/django/db/backends/mysql/features.py", line 150, in is_sql_auto_is_null_enabled
return self.connection.mysql_server_data['sql_auto_is_null']
File "/home/iomys/.virtualenvs/energyHomeWeb/lib/python3.9/site-packages/mysql/connector/django/base.py", line 290, in __getattr__
raise AttributeError
AttributeError
我该如何解决这个问题?
PS:我不使用 mysqlclient,因为它不能在我的 virtualenv 上工作,而且我不知道如何让它工作。
【问题讨论】:
标签: python mysql django mariadb mysql-connector-python