Как скопировать используемую базу данных в другую базу данных в Django? - PullRequest
17 голосов
/ 10 августа 2011

Я разработал простое приложение django с использованием sqlite3. Сначала я хотел упростить использование sqlite3, но все начинает увеличиваться (да, я начал использовать это приложение с sqlite3! Позор мне ...), поэтому я хочу перенести все свои данные в базу данных postgresql.

Предоставляет ли django или другая сторонняя организация такую ​​функцию, или я должен страдать из-за собственной глупости ...

Ответы [ 3 ]

29 голосов
/ 10 августа 2011

Сначала выполните

manage.py dumpdata > out.json

, затем измените конфигурацию БД, перенесите (или syncdb) и, наконец,

echo "delete from auth_permission; delete from django_content_type;" | python manage.py dbshell

(Если у вас Django старше 1.11, вам нужно использовать

echo "delete from django_content_type;" | manage.py dbshell

)

Затем загрузите файл JSON:

manage.py loaddata out.json

(по состоянию на 2013 год django_contenttype заменен на django_content_type)

3 голосов
/ 10 августа 2011

Я пытаюсь сделать то же самое прямо сейчас, но у меня возникла проблема с разрешением зависимостей, в основном такая же, как ticket 16317 .Но хватит обо мне ...

Устранение неполадок привело к тому, что я нашел ссылку для django-smuggler , которая позволяет создавать дампы и загружать данные из интерфейса администратора.

Это выглядит многообещающе для любой передачи данных, необходимых или для использования в качестве утилиты резервного копирования.

0 голосов
/ 15 января 2019

Если вы получаете ошибки при загрузке данных, сначала сбросьте их так:

python manage.py dumpdata --exclude auth.permission --exclude contenttypes > datadump.json

как описано здесь:

http://www.denzow.me/entry/2017/09/06/223517

...