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 cap-collectif/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="guid">
+++ <generator strategy="UUID" />
</id>
#...
</entity>
Alternatively you can use uuid-dotrine to add uuid
type support.
- 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');
}
}