Doctrine 2.5 - 从现有数据库生成模式提供程序类

时间:2017-05-27 15:41:46

标签: mysql database symfony doctrine-orm migration

问题

是否有任何现有工具能够生成反映现有数据库状态的Doctrine\DBAL\Migrations\Provider\SchemaProvider实现?

我用Google搜索了一段时间,并在SO中查看了类似的问题,但我无法找到答案。它们都与Symfony + Doctrine ORM有关。

为什么我需要这个?

我想使用doctrine迁移来管理/跟踪现有数据库的更改。我不能跳入使用doctrine ORM,因为我需要重构数据库,它会破坏依赖它的其他(非php)应用程序。

我知道我可以在没有ORM的情况下使用迁移,但我需要提供Doctrine\DBAL\Migrations\Provider\SchemaProviderdocumentation)的具体实现,在我的情况下,这意味着要重写整个数据库。

如果我第一次生成SchemaProvider以反映数据库的状态。例如

<?php 

use Doctrine\DBAL\Schema\Schema;
use Doctrine\DBAL\Migrations\Provider\StubSchemaProvider;

final class MySchemaProvider implements SchemaProvider {

    public function createSchema()
    {
        $schema = new Schema();

        $table = $schema->createTable('foo');
        $table->addColumn('id', 'integer', array(
            'autoincrement' => true,
        ));
        $table->setPrimaryKey(array('id'));

        //and so on for the rest of the databse... 

        return $schema;
    }  

}

我可以编辑生成的类并使用以下命令创建迁移:

$ ./doctrine migrations:diff

0 个答案:

没有答案