Как мигрировать модели Django с MySQL в SQLite (или между любыми двумя системами базы данных)?
-
13-10-2019 - |
Вопрос
У меня есть развертывание Django в производстве, которое использует MySQL.
Я хотел бы сделать дальнейшую разработку с SQLite, поэтому я хотел бы импортировать свои существующие данные в базу данных SQLite. я
Есть сценарий оболочки здесь Чтобы преобразовать общий свалку MySQL в SQLite, но это не сработало для меня (очевидно, общая проблема нелегко).
Я подумал, что делать это с помощью моделей Django должно быть намного проще. Как бы вы это сделали? У кого -нибудь есть сценарий, чтобы сделать это?
Решение
использовать
manage.py dumpdata > your_file.json
для экспорта ваших данных из производственной системы (док).
Затем переместите файл в систему разработки и запустите
manage.py loaddata your_file.json
Вы также можете поместить файл в папку your_app/finctures с именем "initial_data.json", и он будет автоматически загружен при запуске "Manage.py Syncdb" (док).
Другие советы
Вы пробовали использовать 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())
Смотрите полное руководство здесь
Может попробовать Юг: