Domanda

Ho un progetto Django1.1 che funziona con un db MySQL legacy. Sto cercando di migrare questo progetto per Oracle (xe e 11g). Abbiamo due opzioni per la migrazione: - sviluppatore Utilizzare SQL per creare uno script di migrazione sql. -. Utilizzare apparecchi Django

Lo schema creato con lo script SQL da sviluppatore sql non corrisponde allo schema creato da syncdb. Ad esempio, Django si aspetta che le colonne TIMESTAMP mentre sviluppatore sql crea colonne di data.

Uso syncdb con infissi Django potrebbe essere ottimo, ma quando si cerca di caricare i dispositivi di MySQL in Oracle, dopo aver usato syncdb, sto ottenendo: IntegrityError: ORA-00001: vincolo univoco (USER.SYS_C004253) violato

Come faccio a trovare quello che parte a creare l'errore di integrità?

Aggiornamento: A seguito di un consiglio in Django mailing list ho provato:

  1. discarica tutto, mentre collegata a MySQL: python manage.py DumpData> fixture.json

  2. Creato un nuovo utente Oracle con uno schema vuoto e passare la connessione db ad Oracle (non ha fatto syncdb)

  3. loaddata a Oracle con: python manage.py loaddata fixture.json

Non ottengo un errore quando si utilizza loaddata ma quando esegue il server e la navigazione a localhost: 8000 sto ottenendo: ORA-00942: tabella o vista non esiste

Grazie

È stato utile?

Soluzione

È possibile eseguire una query lo schema di informazioni di Oracle (Oracle chiamato Datadictionary) per interrogare l'elenco dei vincoli su tutti i tavoli per identificare il nome della tabella e di colonna per il suddetto vincolo.

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

Aggiorna

A causa dei requisiti di sicurezza del dizionario di dati è divisa in parti distinte. Un utente non può vedere le tabelle e dei vincoli da utente B.

Se non riuscite a trovare le informazioni è possibile utilizzare il dba user-acount, che ha accesso globale e interrogare la parte dba del dizionario dei dati.

connect system/<the_secret_password>
select TABLE_NAME, COLUMN_NAME from dba_cons_columns 
where CONSTRAINT_NAME = 'SYS_C004253' and OWNER = 'USER'
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top