Вопрос

У меня есть проект Django1.1, который работает с устаревшим MySQL DB. Я пытаюсь перенести этот проект в Oracle (XE и 11G). У нас есть два варианта миграции: - используйте разработчик SQL для создания миграционного скрипта SQL. - Используйте приспособления Django.

Схема, создаваемая с помощью SQL Script от SQL Developer, не соответствует схеме, созданной из SyncDB. Например, Django ожидает столбцов Timestamp, в то время как разработчик SQL создает столбцы даты.

Использование SyncDB с помощью приспособлений Django может быть отличным, но при попытке загрузить приспособления MySQL в Oracle, после использования SyncDB, я получаю: IntegrityError: ORA-00001: Уникальное ограничение (user.sys_c004253)

Как я могу найти, какую часть создать ошибку целостности?

Обновление: После совета в списке рассылки Django я пробовал:

  1. Сбрось все во время подключения к MySQL: Python Manage.py Dumpdata> Fixture.json

  2. Создан новый пользователь Oracle с пустой схемой и переключите соединение БД в Oracle (не делал SyncDB)

  3. Loaddata в Oracle с: Python Manage.py Loaddata Fixture.json

Я не получаю ошибку при использовании loaddata, но при запуске сервера и навигации по localhost: 8000 Я получаю: ORA-00942: Таблица или представление не существует

Спасибо

Это было полезно?

Решение

Вы можете запросить информацию о Oracle информацию о Oracle (называемый DataDictionary Oracle), чтобы запросить список ограничений на все таблицы для определения имени таблицы и столбца для указанного ограничения.

select TABLE_NAME, COLUMN_NAME from user_cons_columns where CONSTRAINT_NAME = 'SYS_C004253'

Обновлять

Из-за требований безопасности словарь данных разделен на отдельные части. Пользователь A не может видеть таблицы и ограничения от пользователя B.

Если вы не можете найти информацию, которую вы можете использовать пользователь DBA, у которого есть глобальный доступ и запрашивает часть DBA PORTARY DATARY DATARY.

connect system/<the_secret_password>
select TABLE_NAME, COLUMN_NAME from dba_cons_columns 
where CONSTRAINT_NAME = 'SYS_C004253' and OWNER = 'USER'
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top