Стол thumbnail_kvstore не существует
Я не могу получить эскиз, отображаемый в моем шаблоне. Я получаю эту ошибку:
django.db.utils.ProgrammingError: (1146, "Таблица" ia_website.thumbnail_kvstore "не существует" )
- Установленный sorl_thumbnail-12.3
- Я использую MariaDB 10.1.11
- У меня нет миграции, которые не выполняются
- Я могу увидеть изображение, если я не использую тег 'thumbnail'
Вот что я сделал
-
В settings.py:
INSTALLED_APPS = [
...
'sorl.thumbnail',
]
THUMBNAIL_DEBUG = TRUE
-
В models.py
import sorl
...
image = sorl.thumbnail.ImageField(upload_to='thumbnails', null=True)
-
В моем шаблоне
{% thumbnail content.image "237x110" as im %}
<img src="{{ im.url }}">
{% endthumbnail %}
Ответы
Ответ 1
Итак, после некоторых исследований, похоже, что версия 12.3
sorl-thumbnail на PyPI и Github разные!
Если вы загружаете источник непосредственно из PyPI, вы обнаружите, что пакет не содержит никаких миграций. Вот почему таблица не существует, хотя вы выполнили все миграции.
В Github существует файл миграции для версии 12.3
.
У вас есть три варианта:
- Создайте таблицу с помощью
./manage.py syncdb
(только если вы используете Django 1.8 или ниже)
- Установить непосредственно из Github для версии
12.3
- Используйте версию
12.4a1
для Sorl-thumbnail, которая включает в себя миграции
Вы можете установить из Github прямо следующим образом:
pip install git+git://github.com/mariocesar/[email protected]
версия сорт-thumbnail 12.3 поддерживает до версии 1.8 Django, где команда syncdb все еще существует. Если вы используете Django 1.8 или ниже, вы можете создать отсутствующую таблицу, запустив
python manage.py syncdb
Ответ 2
Если просто
manage.py makemigrations
не создает никаких миграций, попробуйте
manage.py makemigrations thumbnail
manage.py migrate
Это создаст миграции для эскизов, а затем перенесет их.
Меня устраивает.
Я использую Django 1.9 и sorl.thumbnail 12.3.
Ответ 3
Используйте версию 12.3 для эскиза sorl. Выполните следующие шаги.
Удалить актуальную версию
pip uninstall sorl-thumbnail
Установить версию 12.3
pip install git+git://github.com/mariocesar/[email protected]
Миграция
python manage.py migrate
Ответ 4
Для меня ошибка произошла только при выполнении dumpdata
.
Итак, если вы нашли этот поток здесь, потому что вы пытались использовать dumpdata
, то исключение миниатюрного приложения, вероятно, будет легким обходным путем для вас:
python manage.py dumpdata --exclude thumbnail
Конечно, вы должны следовать другим ответам, если хотите, чтобы ваш Django был чистым.