/doctrine-id-to-uuid-migration

🏆 Id to Uuid migration classes for Doctrine

Primary LanguagePHPMIT LicenseMIT

id-to-uuid

Easily migrate from an auto incremented integer id to a uuid in a project using DoctrineMigrationsBundle. Autodetect your foreign keys and update them. Works only on MySQL.

Installation

composer require cap-collectif/id-to-uuid

Usage

  1. Update your id column from integer to guid:
# User.orm.xml
<entity name="AppBundle\Entity\User" table="user">
---    <id name="id" column="id" type="integer">
---        <generator strategy="AUTO" />
+++    <id name="id" column="id" type="guid">
+++        <generator strategy="UUID" />
    </id>
 #...
</entity>

Alternatively you can use uuid-dotrine to add uuid type support.

  1. Add a new migration:
// app/DoctrineMigrations/VersionXYZ.php
<?php

namespace Application\Migrations;

use Doctrine\DBAL\Schema\Schema;
use CapCollectif\IdToUuid\IdToUuidMigration;

class VersionXYZ extends IdToUuidMigration
{
    public function postUp(Schema $schema)
    {
        $this->migrate('user');
    }
}