Symfony2-是否可以原则:迁移:diff创建与数据库无关的代码而不是SQL?

Symfony2-是否可以原则:迁移:diff创建与数据库无关的代码而不是SQL?,symfony,doctrine-orm,doctrine-migrations,Symfony,Doctrine Orm,Doctrine Migrations,运行php应用程序/控制台原则:migrations:diff将根据需要生成一个新的迁移类,以将当前数据库模式转换为实体更改指定的模式 此示例显示了用于创建fos\u用户表的生成类: class Version20120712145445 extends AbstractMigration { public function up(Schema $schema) { $this->abortIf($this->connection->getDat

运行
php应用程序/控制台原则:migrations:diff
将根据需要生成一个新的迁移类,以将当前数据库模式转换为实体更改指定的模式

此示例显示了用于创建
fos\u用户
表的生成类:

class Version20120712145445 extends AbstractMigration
{
    public function up(Schema $schema)
    {
        $this->abortIf($this->connection->getDatabasePlatform()->getName() != "mysql");        
        $this->addSql("CREATE TABLE fos_user (id INT AUTO_INCREMENT NOT NULL, ...);
    }

    public function down(Schema $schema)
    {
        $this->abortIf($this->connection->getDatabasePlatform()->getName() != "mysql");        
        $this->addSql("DROP TABLE fos_user");
    }
}
如您所见,生成的迁移绑定到一个特定的数据库服务器,在这个实例中是MySQL

我希望在测试环境中使用内存中的sqlite数据库,因为(预期的)性能优势减少了测试执行时间

我可以将上面生成的SQL转换成
$table=$schema->createTable()$表->添加列()等价物,但是这样做既耗时又会引入错误,因为SQL的人工翻译很差


原则:迁移:diff命令是否可以创建平台无关的迁移代码,而不是上述特定于平台的SQL?否,这在当前版本中是不可能的。如果您需要数据库不可知的迁移,那么您应该查看迁移。LiquiBase也有一个Symfony2捆绑包

目前不支持其他数据库迁移工具,但他们计划支持一些数据库管理工具


请看,这张罚单是对LiquiBase、DBDeploy和phinx支持条令迁移的功能请求

我认为答案是否定的,还没有。。。无论如何,diff工具应该只是一个很好的工具,不应该避免开发人员自己编写迁移类。但我还是同意这是一个不错的特性。