Runningphp app/console doctrine:migrations:diff
根据需要生成一个新的迁移类,以将当前数据库模式转换为实体更改指定的模式。
此示例显示了用于创建表的此类生成的类fos_user
:
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(); $table->addColumn();
等价物,但是这样做既费时又会由于人工将 SQL 转换为代码的能力差而引入错误。
教义:迁移:差异命令是否可以创建与平台无关的迁移代码,而不是上述特定于平台的 SQL?