cap-collectif / id-to-uuid
轻松地将自增id迁移到uuid
v2.1.0
2020-06-12 14:32 UTC
Requires
- doctrine/dbal: ^2.5
- doctrine/doctrine-migrations-bundle: ~1.1 | ~2
- doctrine/orm: ^2.5
Requires (Dev)
Suggests
- ramsey/uuid: *
This package is not auto-updated.
Last update: 2024-09-18 17:02:13 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