Installazione
La versione Express di Oracle è liberamente scaricabile da
http://www.oracle.com/technology/products/database/xe/index.html
Le limitazioni principali sono 4GB di area dati, 1GB di memoria utilizzata, una sola CPU utilizzata, e un unico database. E' presente un comodo pacchetto Debian.
# apt-get install libaio1 # dpkg -i /home/tiziano/oracle-xe_10.2.0.1-1.0_i386.deb # /etc/init.d/oracle-xe configure
Per installare (e far funzionare) il wrapper Python verso Oracle è necessario settare qualche variabile d'ambiente
# export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/ # export LD_LIBRARY_PATH=$ORACLE_HOME/lib # export PATH=$ORACLE_HOME/bin:$PATH # easy_install cx_Oracle
Generazione del database
Come primo passo impostiamo per l'utente system la password 'oracle' (altrimenti sarà necessario modificare il Makefile), e lanciamo la generazione del db.
$ cd docs/oracle $ make scratch
Avvio applicazione
Per ora sono state convertite (e parzialmente) solo le form dell'amministrazione, a titolo di esempio. Possiamo avviarle in questo modo:
$ cd ../../apps $ python pypapi-suite.py -c ../lib/pypapisuite/app/conf/amministrazione.conf -d "oracle://%(username)s:%(password)s@127.0.0.1:1521/xe"
Lo switch '-d' ha la precedenza rispetto al database definito in amministrazione.conf.
Possiamo quindi autenticarci come admin/pypapi (l'unico utente presente), creare un paio di uffici e di utenti.
Note di sviluppo
Poiché in Oracle il concetto di schema si discosta parecchio da Postgres, tutte le tabelle sono definite nello schema PyPaPi, e collegate come sinonimi agli schemi anagrafiche, protocollo, etc, che l'ORM si aspetta.
I tipi di dato definiti dall'utente (type ... as object) in Oracle non possono essere utilizzati come chiavi (ARGH!), quindi per ora i vari campi sono definiti utilizzando i tipi primitivi.
Oracle non supporta l'ereditarietà nelle tabelle (doppio ARGH!): i campi timestamped sono stati riportati a manina in ogni tabella, e per ora la loro gestino non è implementata.
Attachments
- pypapi_oracle.png (235.8 kB) - added by tiziano 19 months ago.

