Как перенести модели Django из mysql в sqlite (или между любыми двумя системами баз данных)?

У меня есть развертывание Django в производстве, которое использует MySQL.

Я хотел бы продолжить развитие с SQLite, поэтому я хотел бы импортировать мои существующие данные в базу данных SQLite. я

Здесь есть сценарий оболочки для преобразования общего дампа MySQL в SQLite, но он у меня не сработал (очевидно, что общая проблема не из легких).

Я подумал, что делать это с использованием моделей Django должно быть намного проще. Как бы вы это сделали? У кого-нибудь есть какой-нибудь скрипт для этого?

4 ответа

Решение

Использование

manage.py dumpdata > your_file.json

экспортировать ваши данные из производственной системы ( документы).

Затем переместите файл в систему разработки и запустите

manage.py loaddata your_file.json

Вы также можете поместить файл в папку your_app/fixtures с именем "initial_data.json", и он будет автоматически загружен при запуске "manage.py syncdb" ( docs).

Вы пытались использовать manage.py dumpdata > datadump а затем, когда новая база данных настроена правильно, используйте Python manage.py loaddata datadump?

Если у вас есть contenttypes в установленном приложении

INSTALLED_APPS = (
    'django.contrib.contenttypes',
)

Используйте скрипт, например, для копирования вашей записи в новую базу:

from django.contrib.contenttypes.models import ContentType

    def run():

        def do(Table):
            if Table is not None:
                table_objects = Table.objects.all()
                for i in table_objects:
                    i.save(using='slave')

        ContentType.objects.using('slave').all().delete()

        for i in ContentType.objects.all():
            do(i.model_class())

Смотрите полное руководство здесь

Может быть, попробовать на юг:

http://south.aeracode.org/docs/index.html

Другие вопросы по тегам