是否有任何现有工具能够生成反映现有数据库状态的Doctrine\DBAL\Migrations\Provider\SchemaProvider
实现?
我用Google搜索了一段时间,并在SO中查看了类似的问题,但我无法找到答案。它们都与Symfony + Doctrine ORM有关。
我想使用doctrine迁移来管理/跟踪现有数据库的更改。我不能跳入使用doctrine ORM,因为我需要重构数据库,它会破坏依赖它的其他(非php)应用程序。
我知道我可以在没有ORM的情况下使用迁移,但我需要提供Doctrine\DBAL\Migrations\Provider\SchemaProvider
(documentation)的具体实现,在我的情况下,这意味着要重写整个数据库。
如果我第一次生成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