2013-02-26 30 views
3

我想在我的非symfony項目中使用doctrine migrations,所以我從https://github.com/doctrine/migrations得到phar獨立。我在做的時候配置好了一切正常(DB-配置和配置),然後在「遷移:狀態:」我得到的錯誤:doctrine migrations phar,如何設置類型映射?

[Doctrine\DBAL\DBALException]
Unknown database type enum requested, Doctrine\DBAL\Platforms\MySqlPlatform may not support it.

現在有關於如何在symfony的應用程序的情況下解決這個問題很多資源(例如http://wildlyinaccurate.com/doctrine-2-resolving-unknown-database-type-enum-requested),但在這種情況下,我可以在哪裏放置這種類型映射?我應該提取.phar,將代碼放入其中(在哪裏?),然後重新打包它? (怎麼了?)

+1

您需要使用遷移和設置的CLI你自己。從克隆https://github.com/doctrine/migrations開始並通過作曲者安裝。之後,根據自己的需要自定義CLI運行器以設置連接。 – Ocramius 2013-02-26 11:14:47

+0

Ocramius建議額外選項無效的方式(--db-config,--configuration)。這是衆所周知的錯誤。 – 2014-07-23 06:20:47

回答

-1

什麼Ocramius說:

您需要使用遷移和設置的CLI你自己。從克隆github.com/doctrine/migrations開始並通過作曲者安裝。之後,根據自己的需要自定義CLI運行器以設置連接。

+2

那麼該怎麼辦呢? – 2014-05-25 19:15:37

+0

請提供方式 – zeliboba 2015-03-19 06:27:08

5

我已經試過的東西Zend框架和它的工作:

打開./vendor/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MySqlPlatform.php 搜索功能initializeDoctrineTypeMappings() 創建枚舉的項as,

'enum' => 'string' 

工作就像魅力!

0

在這個叉
https://github.com/dyadyavasya/migrations

解決默認學說認爲問題不映射MySQL的枚舉類型的學說類型。這是因爲枚舉包含狀態(它們的允許值)和主體類型不包含。

在鏈接處使用fork,您可以註冊MySQL ENUM以映射到Doctrine字符串。 這種方式主義總是將ENUM解析爲原則字符串。

migrations.yml

 
name: Doctrine Sandbox Migrations 
migrations_namespace: DoctrineMigrations 
table_name: doctrine_migration_versions 
migrations_directory: /path/to/migrations/classes/DoctrineMigrations 
mapping_types: 
    enum: string 

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

+2

這個答案因爲它需要一些工作。你說在你提供的鏈接上,op指出的問題是「已解決」的,但你需要指定解決方法。如果你編輯你的答案,在這裏提供更多關於你給予的鏈接以及與問題相關的信息,你可能會收到來自其他讀者的+1。至少, – 2013-09-24 21:34:29

+0

不能與phar一起使用 – 2014-07-23 09:03:31