我正在尝试使用django-dbbackup v2.3.3来备份django项目的数据库(django-1.8.4
,python - 3.4.3
)
我正在关注此django-dbbackup文档。
以下是 DATABASES 和 DATABASE_BACKUP
的项目设置INSTALLED_APPS = (
'django.contrib.auth',
'django_admin_bootstrapped',
'django.contrib.admin',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.gis',
'authtools',
'crispy_forms',
'easy_thumbnails',
'rest_framework',
'dbbackup',
'profiles',
'location',
'maps'
)
DATABASES['default']['ENGINE'] = 'django.contrib.gis.db.backends.spatialite'
# DATABASE BACKUP SETTINGS
DBBACKUP_STORAGE = 'dbbackup.storage.filesystem_storage'
DBBACKUP_STORAGE_OPTIONS ={'location':'/home/altius/locateme/src/backup/'}
我收到以下错误 -
Backing Up Database: db.sqlite3
Traceback (most recent call last):
File "manage.py", line 13, in <module>
execute_from_command_line(sys.argv)
File"/usr/local/lib/python3.4/distpackages/django/core/management/__init__.py", line 338, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.4/dist-packages/django/core/management/__init__.py", line 330, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.4/dist-packages/django/core/management/base.py", line 393, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.4/dist-packages/django/core/management/base.py", line 444, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python3.4/dist-packages/dbbackup/utils.py", line 100, in wrapper
func(*args, **kwargs)
File "/usr/local/lib/python3.4/dist-packages/dbbackup/management/commands/dbbackup.py", line 54, in handle
self.save_new_backup(database)
File "/usr/local/lib/python3.4/dist-packages/dbbackup/management/commands/dbbackup.py", line 66, in save_new_backup
filename = self.dbcommands.filename(self.servername)
File "/usr/local/lib/python3.4/dist-packages/dbbackup/dbcommands.py", line 278, in filename
extension = self.settings.extension
AttributeError: 'NoneType' object has no attribute 'extension'
我试图调查其他错误,但却找不到解决办法 AttributeError:&#39; NoneType&#39;对象没有属性&#39;扩展&#39;
有几个 AttributeError ,如append
,strip
,format
等,但无法找到扩展错误。
我错过了更多设置吗?还有什么办法可以摆脱这个错误来为django-project本地备份数据库?
答案 0 :(得分:0)
从源代码来看,我认为select
sum(case when ItemID = 1 then 1 else 0 end) as count_item1,
sum(case when ItemID = 2 then 1 else 0 end) as count_item2,
sum(case when ItemID = 3 then 1 else 0 end) as count_item3
...
并不支持SpatiaLite。
检查方法的来源_get_settings()
(设置django-dbbackup
的值),表明代码只为MySQL,PostGIS,PostGreSQL和SQLite提取数据库设置。
因为,它与列出的所有数据库都不匹配,self.settings
设置为self.settings
,因此当您尝试获取None
时收到错误AttributeError: 'NoneType' object has no attribute 'extension'
。你可以试试Python shell。
self.settings.extension
虽然没有具体提及文档中>>> settings = None
>>> settings.extension
Traceback (most recent call last):
File "<pyshell#34>", line 1, in <module>
settings.extension
AttributeError: 'NoneType' object has no attribute 'extension'
支持的数据库列表。如果你能与作者确认这一次会更好。
编辑: OP已在django-backup的GitHub存储库上创建了issue。请检查链接以检查有关SpatiaLite支持的更新。