youdao icon indicating copy to clipboard operation
youdao copied to clipboard

AttributeError: 'SqliteDatabase' object has no attribute 'drop_table'

Open shiningdracon opened this issue 6 years ago • 2 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) 这一行

shiningdracon avatar Feb 26 '18 05:02 shiningdracon

Same problem

yangkghjh avatar May 31 '18 10:05 yangkghjh

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()

F35X70 avatar Aug 23 '18 02:08 F35X70