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.
composer require habbim/id-to-uuid
- Update your
id
column frominteger
toguid
:
# 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="uuid_binary_ordered_time">
+++ <generator strategy="CUSTOM"/>
+++ <custom-id-generator class="Ramsey\Uuid\Doctrine\UuidGenerator"/>
</id>
#...
</entity>
- Config your symfony:
- Add a new migration:
// app/DoctrineMigrations/VersionXYZ.php
<?php
namespace Application\Migrations;
use Doctrine\DBAL\Schema\Schema;
use Habbim\IdToUuid\IdToUuidMigration;
class VersionXYZ extends IdToUuidMigration
{
public function postUp(Schema $schema)
{
$this->migrate('user');
}
}