exportar DB a migrations?

Buenas!

A ver si alguien sabe si se podría hacer, lo que quiero es exportar mi actual base de datos al sistema de migraciones de Yii.

que antes no estaba y ahora se hace un poco complejo mantenerlas mas ahora que se añade gente al proyecto.

saben si Yii incorpora una instruccion para hacerlo?? o alguna herramienta??

Saludos

Actualmente Yii no dispone de ningún método para hacer ingeniería inversa (bueno CDbCommand algo hace :P ), pero sería interesante desarrollar un componente con ese propósito, no es mala idea :)

Saludos y éxitos,

Ricardo

Si es lo que me pensaba :confused: es algo bastante complejo para hacer automatizado.

a ver, intentaré hacer una función casera para intentar exportar

gracias! un saludo

Tengo entendido que Doctrine tiene algo para hacerlo, no estoy seguro, pero sería buena idea echarle un vistazo…

Por otro lado también está entre los posibles planes para Yii 2.0, así que probablemente estaremos disfrutando de esa opción en una próxima versión… pero todavía nada confirmado :)

Saludos.

Buenas!

estaba poniendome a hacer esto, y he encontrado algo en la docu, un comentario de un compañero de Yii.

aqui está: http://www.yiiframework.com/doc/guide/1.1/en/database.migration#c2550

lo he modificado un poco:

(tiene <br> por que lo printo por pantalla y luego lo copio a una migración que hice a mano y organizo un poco mejor el codigo)




class DumpSchemaCommand extends CConsoleCommand

{

 

    public function run() {

        $schema = $args[0];

        $tables = Yii::app()->db->schema->getTables();

        $result = '';

        foreach ($tables as $def) {

        	$result	.= '$table_info = Yii::app()->db->schema->getTable("'.$def->name.'");<br />';

			$result .= 'if(!table_info){ <br>';

            $result .= '	$this->createTable("' . $def->name . '", array(' . "\n";

            foreach ($def->columns as $col) {

                $result .= '    "' . $col->name . '"=>"' . self::getColType($col) . '",' . "\n";

            }

            $result .= '), "");' . "<br>}<br><br>\n\n";

			

        }

        echo $result;

    }

 

    public function getColType($col) {

        if ($col->isPrimaryKey) {

            return "pk";

        }

        $result = $col->dbType;

        if (!$col->allowNull) {

            $result .= ' NOT NULL';

        }

        if ($col->defaultValue != null) {

            $result .= " DEFAULT '{$col->defaultValue}'";

        }

        return $result;

    }

}



Saludos!

No se podría lograr con Mysql Workbench?

Slds.

JP