Миграция данных в Postgres из Mysql с помощью Django - как перенести данные общих таблиц, а не модели? - PullRequest
2 голосов
/ 27 сентября 2010
  1. python manage.py dumpdata modelName > file.json.
  2. создал пустую базу данных для пользователя meder на postgres
  3. изменил pga_hb.conf, чтобы meder мог использовать базу данных
  4. изменил настройки в settings.py
  5. python manage.py syncdb (я не создал su)
  6. пытается loaddata file.json, но жалуется, что суперпользователя нет или не совпадает ...

    Traceback (последний вызов был последним): файл "manage.py", строка 11, в файле execute_manager (настройки) "/srv/python-environments/saltycrane/lib/python2.5/site-packages/django/core/management/init.py ", строка 438, в файле execute_manager utility.execute ()" /srv/python-environments/saltycrane/lib/python2.5/site-packages/django/core/management/init.py ", строка 379, в файле execute self.fetch_command (подкоманда) .run_from_argv (self.argv)" /srv/python-environments/saltycrane/lib/python2.5/site-packages/django/core/management/base.py ", строка 191, в файле run_from_argv self.execute (* args, ** options. dict ) Файл" / srv / python-environment / saltycrane / lib / python2.5 / site-packages / django / core / management / base.py ", строка 220, в файле execute output = self.handle (* args, ** options) Файл" / srv /python-environment / saltycrane / lib / python2.5 / site-packages / django / core / management / commands / loaddata.py ", строка 219, в дескрипторе файлaction.commit (используя = использование), используя" / srv / python-environment/saltycrane/lib/python2.5/site-packages/django/db/transaction.py ", строка 199, в файле commit connection._commit () Файл" /srv/python-environments/saltycrane/lib/python2.5/site-packages / django / db / backends / init .py ", строка 32, в _commit return self.connection.commit () psycopg2.IntegrityError: вставка или обновление в таблице" bugs_bug "нарушает ограничение внешнего ключа"poster_id_refs_id_89e0243f "DETAIL: Key (poster_id) = (1) отсутствует в таблице" auth_user ".

Разве я не должен был синхронизировать?Я должен был сбросить данные для общих таблиц?У меня все еще есть база данных в MySQL, но я буду признателен за любое направление.

SIDENOTE : У меня установлено south.Я выполнил команду --initial пару дней назад.Возможно, я мог бы также использовать юг?

Ответы [ 3 ]

5 голосов
/ 28 сентября 2010

Вам нужно выполнить:

python manage.py dumpdata > file.json.

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

Запуск python manage.py dumpdata myapp.modelName > file.json. приведет к сбросу данных только для модели modelName в приложении myapp.

Вы также можете попробовать это, если вы хотите вывести данные только для модели modelName:

python manage.py dumpdata auth myapp.MyModel > file.json

Таким образом, данные с пользователями также будут сбрасываться.

3 голосов
/ 22 марта 2011

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

python manage.py dumpdata --natural > file.json.

Подробнее здесь: http://docs.djangoproject.com/en/dev/ref/django-admin/#django-admin-option---natural

0 голосов
/ 27 февраля 2015

давным-давно после мучительных болей при экспорте / импорте я в конечном итоге использую https://pypi.python.org/pypi/py-mysql2pgsql

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...