paramah / id-to-uuid
轻松从自增id迁移到uuid
v2.0
2018-11-16 14:45 UTC
Requires
- doctrine/dbal: ^2.5
- doctrine/doctrine-migrations-bundle: ~1.1
- doctrine/orm: ^2.5
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-27 06:21:52 UTC
README
在项目中使用 DoctrineMigrationsBundle 轻松将自动增长的整数id迁移到uuid。自动检测外键并更新它们。支持的数据库:MySQL, Postgres。
安装
composer require cap-collectif/id-to-uuid
# install for postgres support
composer require ramsey/uuid
使用方法
- 将
id
列从integer
更改为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>
或者,您可以使用 uuid-doctrine 来添加 uuid
类型支持。
<id name="id" type="uuid" />
- 添加新的迁移
// app/DoctrineMigrations/VersionXYZ.php <?php namespace Application\Migrations; use Doctrine\DBAL\Schema\Schema; use CapCollectif\IdToUuid\IdToUuidMigration; class VersionXYZ extends IdToUuidMigration //or PostgresIdToUuidMigration { public function postUp(Schema $schema): void { $this->migrate('user'); } }
或者,您可以为 migrate
方法指定第二个参数 - 自定义临时uuid字段名称
- 迁移后
检查您的数据库结构是否与Doctrine模式不同。如果是这样,则创建另一个迁移或与之前的迁移合并。
bin/console doctrine:schema:update --dump-sql
bin/console doctrine:migration:diff