Необходимо создать уникальное значение для не id столбца.
В сущности столбец обозначен так
#[ORM\Column(type: 'integer', nullable: true)]
private int $internalId;
Создаю миграцию
public function up(Schema $schema): void
{
$this->addSql('ALTER TABLE amqp_auth_user ADD internal_id INT NULL');
$this->addSql('CREATE SEQUENCE amqp_auth_user_internal_id_seq INCREMENT BY 1 MINVALUE 1 START 1');
$this->addSql('ALTER TABLE amqp_auth_user ALTER internal_id SET DEFAULT nextval(\'amqp_auth_user_internal_id_seq\')');
$this->addSql('ALTER SEQUENCE amqp_auth_user_internal_id_seq OWNED BY public.amqp_auth_user.internal_id;');
}
Выполняю запрос на вставку в таблицу. Всё работает, "internal_id" заполняется последовательными значениями.
Но валицаю схема не проходит
[ERROR] The database schema is not in sync with the current mapping file.
Команда
orm:schema-tool:update --dump-sql выдаёт запрос на удаление значения по умолчанию для столбца "internal_id"
ALTER TABLE amqp_auth_user ALTER internal_id DROP DEFAULT;
После выполнения данного запроса естественно ничего работать не будет, "interanal_id" будет заполняться "null".
Что не так я делаю? Как сделать так, чтобы проходила валидация схемы и не требовало DROP DEFAULT для internal_id?
p.s.
Пробовал и такой вариант
#[ORM\Column(insertable: false, updatable: false, columnDefinition: 'serial')]
private int $internalId;
Результат тот же. Валидация не проходит, требует удаление значения по умолчанию.