3

我想在我的非 symfony 项目中使用学说迁移,所以我从https://github.com/doctrine/migrations获得了独立的 phar 。我正确配置了所有内容(数据库配置和配置),然后在执行“迁移:状态”时出现错误:

[Doctrine\DBAL\DBALException]
请求的未知数据库类型枚举,Doctrine\DBAL\Platforms\MySqlPlatform 可能不支持。

现在有很多关于如何在 symfony 应用程序的上下文中解决这个问题的资源(例如http://wildlyinaccurate.com/doctrine-2-resolving-unknown-database-type-enum-requested)但是我可以把它放在哪里在这种情况下类型映射?我应该提取.phar,将代码放入其中(在哪里?)然后重新打包它?(如何?)

4

3 回答 3

7

我已经为 Zend 框架尝试了一些东西并且它有效:

打开 ./vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MySqlPlatform.php 搜索函数initializeDoctrineTypeMappings() 为枚举创建一个条目,

'enum' => 'string'

像魅力一样工作!

于 2013-07-30T19:35:27.120 回答
0

这个问题在这个分支中解决了
https://github.com/dyadyavasya/migrations

默认情况下,Doctrine 不会将 MySQL 枚举类型映射到 Doctrine 类型。这是因为枚举包含状态(它们的允许值)而 Doctrine 类型不包含。

在链接处使用 fork,您可以注册 MySQL ENUM 以映射到 Doctrine 字符串。这样,Doctrine 总是将 ENUM 解析为 Doctrine 字符串。

迁移.yml

名称: Doctrine Sandbox Migrations
迁移命名空间:DoctrineMigrations
表名:学说迁移版本
迁移目录:/path/to/migrations/classes/DoctrineMigrations
映射类型:
    枚举:字符串

更多信息 - https://github.com/dyadyavasya/migrations#migrationsyml

于 2013-09-24T21:11:41.797 回答
-1

奥克拉米乌斯说的:

您需要使用迁移并自行设置 CLI。从克隆 github.com/doctrine/migrations 开始,然后通过 composer 安装。之后,自定义您的 CLI 运行器以根据您自己的需要设置连接。

于 2013-04-24T18:27:25.560 回答