Мало кто знает, но что бы работал migration:diff вам не нужно ставить ORM.
Что бы это работало объявим простой сервис:
<?php
use Doctrine\DBAL\Migrations\Provider\SchemaProviderInterface;
use Doctrine\DBAL\Schema\Schema;
class DatabaseSchema implements SchemaProviderInterface
{
public function createSchema(): Schema
{
$schema = new Schema();
$test = $schema->createTable('test');
$test->addColumn('id', 'guid');
$test->addColumn('name', 'string');
$test->setPrimaryKey(['id']);
return $schema;
}
}
Регистрируем этот класс как сервис:
services:
DatabaseSchema: ~
И переопределяем команду для генерации миграций:
services:
Doctrine\Bundle\MigrationsBundle\Command\MigrationsDiffDoctrineCommand:
tags: ['console.command']
arguments:
- '@DatabaseSchema'
вуаля. Теперь вы можете просто вызвать bin/console doctrine:migration:diff
и вуаля.
Вы так же можете задекорировать OrmSchemaProvider и накладывать сверху схему которую не менеджит ORM, или же еще как-нибудь. Да и вообще помимо доктрины есть и другие либы для работы с базой.
Удачи.
пришлось так сделать:
а то не подхватывалось
Хотя у меня не 4 симфа, может в этом дело.