Table thumbnail_kvstore doesn't exist

情到浓时终转凉″ 提交于 2019-12-20 17:27:05

问题


I can't get the thumbnail displayed in my template. I get this error:

django.db.utils.ProgrammingError: (1146, "Table 'ia_website.thumbnail_kvstore' doesn't exist")

  • Installed sorl_thumbnail-12.3
  • I'm using MariaDB 10.1.11
  • I have no migration that are not executed
  • I can see the image if I don't use the 'thumbnail' tag

Here is what I did

  • In settings.py:

    INSTALLED_APPS = [
        ...
        'sorl.thumbnail',
    ]
    
    THUMBNAIL_DEBUG = TRUE
    
  • In models.py

    import sorl
    ...
        image = sorl.thumbnail.ImageField(upload_to='thumbnails', null=True)
    
  • In my template

    {% thumbnail content.image "237x110" as im %}
        <img src="{{ im.url }}">
    {% endthumbnail %}
    

回答1:


So after some research, it looks like the version 12.3 of sorl-thumbnail on PyPI and Github are different!

If you download the source directly from PyPI - you will find that the package doesn't contain any migrations. This is the reason the table doesn't exist even though you've run all the migrations.

On Github, the migration file for version 12.3 definitely exists.

You have three options:

  1. Create the table using ./manage.py syncdb (only if you're running Django 1.8 or below)
  2. Install directly from Github for version 12.3
  3. Use version 12.4a1 of sorl-thumbnail which includes migrations

You can install from Github directly as follows:

pip install git+git://github.com/mariocesar/sorl-thumbnail@v12.3

sorl-thumbnail version 12.3 supports up to Django version 1.8, where the syncdb command still exists. If you're running Django 1.8 or lower, you can create the missing table by running

python manage.py syncdb



回答2:


If just

manage.py makemigrations 

doesn't create any migrations, try

manage.py makemigrations thumbnail 
manage.py migrate

This will create migrations for thumbnail and then migrate them. It works for me. I am using Django 1.9 and sorl.thumbnail 12.3.




回答3:


Use version 12.3 of sorl-thumbnail. Follow this steps

Remove actual version

pip uninstall sorl-thumbnail

Install version 12.3

pip install git+git://github.com/mariocesar/sorl-thumbnail@v12.3

Migrations

python manage.py migrate



回答4:


For me the error just occurred while executing dumpdata.

So if you find this thread here because you tried to use dumpdata, then excluding the thumbnail app will probably be an easy workaround for you:

python manage.py dumpdata --exclude thumbnail

Of course you should follow the other answers, if you want to have your Django clean.



来源:https://stackoverflow.com/questions/35136411/table-thumbnail-kvstore-doesnt-exist

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!