AttributeError: 'SqliteDatabase' object has no attribute 'drop_table'
shiningdracon opened this issue · comments
Ubuntu 16.04 LTS
$yd -s /path/to/my/dict
Traceback (most recent call last):
File "/usr/local/bin/yd", line 9, in
load_entry_point('youdao==0.3.2', 'console_scripts', 'yd')()
File "/usr/local/lib/python2.7/dist-packages/youdao-0.3.2-py2.7-linux-x86_64.egg/youdao/main.py", line 165, in main
config.prepare()
File "/usr/local/lib/python2.7/dist-packages/youdao-0.3.2-py2.7-linux-x86_64.egg/youdao/config.py", line 55, in prepare
update()
File "/usr/local/lib/python2.7/dist-packages/youdao-0.3.2-py2.7-linux-x86_64.egg/youdao/config.py", line 40, in update
db.drop_table(Word, fail_silently=True)
AttributeError: 'SqliteDatabase' object has no attribute 'drop_table'
Workaround:
由于是全新安装,没有旧 db,所以:
修改 "/usr/local/lib/python2.7/dist-packages/youdao-0.3.2-py2.7-linux-x86_64.egg/youdao/config.py"
注释掉 db.drop_table(Word, fail_silently=True)
这一行
Same problem
index 727bce2..fb0f431 100644
--- a/youdao/config.py
+++ b/youdao/config.py
@@ -37,7 +37,8 @@ def update():
if config.get('version', '0') < '0.2.0':
# silent_remove(DB_DIR)
from model import db, Word
- db.drop_table(Word, fail_silently=True)
+ if os.path.exists(DB_DIR):
+ db.drop_table(Word, fail_silently=True)
Word.create_table()