@Boldy

Как django «переехать» с SQLite на MySQL?

Сейчас проект на SQLite. Задача: переехать на MySQL.
Что я сделал:
1. Установил MySQL sudo apt-get isntall mysql-server
2. Дампнул инфу
python manage.py dumpdata --natural > datadump.json
(без --natural выдавало
django.db.utils.IntegrityError: Problem installing fixture 'datadump.json': Could not load contenttypes.ContentType(pk=20): (1062, "Duplicate entry 'payments-invitebonus' for key 'django_content_type_app_label_45f3b1d93ec8c61c_uniq'")
)
3. Сменил в settings.py настройки на MySQL
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'ppdb',
        'USER': 'dbu',
        'PASSWORD': 'dbp',
        'HOST': 'localhost',   # Or an IP Address that your DB is hosted on
        'PORT': '3306',
    },
}

4. Создал базу: create database ppdb charset utf8;
5. Попробовал загрузить данные в свежую базу: python manage.py loaddata datadump.json;

В итоге я получил
django.db.utils.ProgrammingError: Problem installing fixture 'datadump.json': Could not load auth.User(pk=1): (1146, "Table 'ppdb.auth_user_user_permissions' doesn't exist")


Где я ошибся?
  • Вопрос задан
  • 4854 просмотра
Решения вопроса 1
@Boldy Автор вопроса
Решение:
1. Удалить содержимое datadir (в моём случае /var/lib/mysql), кроме mysql.
2. создать бд заново: create database mydb;
3. python manage.py syncdb

stackoverflow.com/questions/10538908/schr%C3%B6din...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
kivsiak
@kivsiak
software engineer
dumpdata скачивает только данные без структуры.

выполни сначала syncdb
Ответ написан
zelsky
@zelsky
ищи migrate
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы