sqlany-django
仅支持 Django 1.8.5(inspectdb
命令 Django 1.7.0)。
它不再维护;最后一次更新是在 2016 年 5 月。
您可以在 manage.py 或AppConfig
.
# Django >= 2.0, for sqlany_django/base.py
import decimal
from django.db.backends import utils
utils.typecast_decimal = decimal.Decimal
# Django >= 1.11, for BaseDatabaseWrapper
from sqlany_django.base import DatabaseWrapper
DatabaseWrapper.client_class = lambda self, connection: None
DatabaseWrapper.creation_class = lambda self, connection: None
DatabaseWrapper.features_class = lambda self, connection: None
DatabaseWrapper.introspection_class = lambda self, connection: None
DatabaseWrapper.ops_class = lambda self, connection: None
# Django >= 1.7.1, for inspectdb
from django.db.backends import utils
from sqlany_django import base
class CursorWrapper(base.CursorWrapper, utils.CursorWrapper):
pass
base.CursorWrapper = CursorWrapper
参考:
堆栈跟踪:
- 关于
DatabaseWrapper
Traceback (most recent call last):
...
File "/path/to/site-packages/django/core/management/commands/inspectdb.py", line 40, in handle_inspection
connection = connections[options['database']]
File "/path/to/site-packages/django/db/utils.py", line 207, in __getitem__
conn = backend.DatabaseWrapper(db, alias)
File "/path/to/site-packages/sqlany_django/base.py", line 447, in __init__
super(DatabaseWrapper, self).__init__(*args, **kwargs)
File "/path/to/site-packages/django/db/backends/base/base.py", line 102, in __init__
self.client = self.client_class(self)
TypeError: 'NoneType' object is not callable
- 关于
CursorWrapper
Traceback (most recent call last):
...
File "/path/to/site-packages/django/core/management/commands/inspectdb.py", line 47, in handle_inspection
with connection.cursor() as cursor:
AttributeError: __enter__