Я пытаюсь синхронизировать данные между двумя установками django (производство и тестирование).Я делаю это, используя ./manage.py dumpdata --natural
на производстве, затем ./manage.py loaddata
в свежую syncdb
'базу данных при тестировании.
Все работало нормально, пока я не добавил новое специальное разрешение.Производство syncdb
загрузило это новое разрешение в другом порядке (с другим первичным ключом), чем новое syncdb
в пустой базе данных.Следовательно, он получает другой идентификатор.Поэтому, несмотря на использование естественных ключей, когда я пытаюсь загрузить данные, я получаю эту ошибку, когда загружается первый объект разрешения не по порядку:
IntegrityError: duplicate key value violates unique constraint "auth_permission_content_type_id_codename_key"
Самый простой способ, которым я могу придумать, чтобыисправить это, чтобы удалить все данные из каждой таблицы в тестовой установке, то есть использовать syncdb
просто для создания таблиц, а не для загрузки исходных данных.Но syncdb
не позволяет пропустить начальный шаг данных / сигналов.Если не считать явного перечисления каждой модели или имени таблицы, как я могу удалить все исходные данные после вызова syncdb
?Или есть способ создать только пустые таблицы без использования syncdb
?
./manage.py flush
- это не то, что мне нужно - он перезагружает исходные данные и запускает сигналы syncdb.