Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

plugins: db schema handling #252

Closed
stefanorosanelli opened this issue Sep 5, 2012 · 4 comments
Closed

plugins: db schema handling #252

stefanorosanelli opened this issue Sep 5, 2012 · 4 comments

Comments

@stefanorosanelli
Copy link
Member

  • indicazione di tabelle specifiche
$moduleSetup = array(
....
 "tables" => array("books"); // may be missing or empty
)
  • dentro al plugin in config/sql: schema.php, e _schema.sql (per ora mysql_schema.sql)
  • schema.php sara', per books per esempio:
class BooksSchema extends CakeSchema {
    var $name = 'Books';
.....
.....
    var $books = array(
        'id' => array(....)
                ........
    );
}
  • tramite script shell (dbadmin, da fare) posso generare scheletro di schema per un certo driver sql

Setup automatico:

  • al momento del setup sara' usato direttamente il file di schema per il driver, se il modulo ha sue tabelle; se non si trova il setup si blocca (messaggio di errore)
  • se le tabelle sono gia' presenti si verifica se sono uguali (altrimenti plug fallisce con messaggio)
  • se non ci sono sono create automaticamente dallo script _schema.sql
@stefanorosanelli
Copy link
Member Author

3bc757e e384bb1
implementato praticamente tutto, da finire/verificare:

  • non funziona il controllo sulla differenza delle tabelle (esempio, esiste gia' tabella books ma ha dei campi differenti)
  • c'e' qualche problema transazionale, in caso di errori non viene fatto rollbkack e ci s puo' trovare con situazioni sporche (brutto!)

@stefanorosanelli
Copy link
Member Author

  • aggiunto cleanup della cache dopo setup nuovo modulo
  • gestione "automatica" object_type BEdita - evitare di scrivere eplicitamente $moduleSetup["BEditaObjects"], leggere dai model del plugin che estendono BEAppObjectModel

Ancora da risolvere i problemi del commento precedente, ma il meccanismo funziona.
Passo a milestone successiva.

@stefanorosanelli
Copy link
Member Author

bisogna rendere compatibili i plugins con BE 3.2 populus - ci sono vari errori

@stefanorosanelli
Copy link
Member Author

b6852b3 fixed tables compare

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant