Table thumbnail_kvstore doesn't exist

2019-03-17 14:48发布

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 %}
    

4条回答
够拽才男人
2楼-- · 2019-03-17 14:58

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.

查看更多
Deceive 欺骗
3楼-- · 2019-03-17 15:02

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
查看更多
看我几分像从前
4楼-- · 2019-03-17 15:14

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
查看更多
Summer. ? 凉城
5楼-- · 2019-03-17 15:18

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.

查看更多
登录 后发表回答