Migrations ...

Qualcuno che ha familiarità con le migrations in yii mi sa dire come posso risolvere questo problema?




abdemo@demo-laptop:/var/www/yiisample$ ./yii/framework/yiic migrate new

Error: The migration directory does not exist: application.migrations



La directory esiste.

Sto sviluppando software su diverse macchine usando github ed yii. Però non saprei come gestire le migrations. Senza questo strumento mi sento un po’ impacciato perché vedo come unica soluzione mysqldump. Vorrei anche capire se yii è in grado di generare migrations quando modifico un model o se devo fare tutto a mano.

Prova a vedere i permission

Tutto a 777. Ti faccio una domanda. Come fa yii a vedere il mio file di configurazione? Normalmente la console di yii si lancia con il file di configurazione. Con le migration no?

E questo il problema, ogni progetto ha il suo yiic ed e quello che devi esseguire non quello generale del framework.

Quindi un’applicazione yii che vuole usare le migrations deve essere creata dentro la cartella del framework?

No…

Ti do un esempio. io ho il yii framework nel www/htdocs/yii

per creare una nuova applicatione yii vado nella cartela www/htdocs e do il commando


yii/framework/yiic webapp nuovoapp

addesso, doppo aver settato i parametri per la connesione al database (config/main.php), per fare la migrazione devi andare nella cartela www/htdocs/nuovoapp e dare il commando


protected/yiic migrate create

E’ la prima volta che vedo


protected/yiic

. Non ho mai visto indicare anche la cartella protected. Si potrebbe aggiornare qualche guida, secondo me.

Le migrations vanno scritte tutte a mano?

Si vano scritte a mano :)

Ce li nella guida - http://www.yiiframework.com/doc/guide/1.1/en/database.migration

E’ un po’ scomodo come strumento, se non fa nulla in automatico …


$ ./yiic migrate

mi ha restituito questo:




Yii Migration Tool v1.0 (based on Yii v1.1.11-dev)


Total 1 new migration to be applied:

    m120630_142850_seconda


Apply the above migration? (yes|no) [no]:yes

*** applying m120630_142850_seconda

    > execute SQL: create table picchio (id int(11) not null); ... done (time: 0.243s)

*** applied m120630_142850_seconda (time: 0.435s)




Migrated up successfully.



ma il database è intatto. Ti faccio notare che sono nella versione 1.1.11-dev

Con intatto vuoi dire che la tablea picchio non e stata creata ?

Hai settato il connectionString nel "config/console.php" ?

Ora funziona. Questa feature di Yii può essere migliorata notevolmente.