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

У меня есть развертывание Django в рабочей среде, использующее MySQL.

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

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

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

Ответы [ 4 ]

17 голосов
/ 28 декабря 2010

используйте

manage.py dumpdata > your_file.json

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

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

manage.py loaddata your_file.json

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

2 голосов
/ 28 декабря 2010

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

1 голос
/ 19 октября 2012

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

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())

См. Полное руководство здесь

0 голосов
/ 28 декабря 2010

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

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

...