2015-07-11 118 views
1

我目前正在進行Symfony項目,代碼位於git回購庫內。 我們工作在一個故事/一個分支的基礎上,不要推動代碼,直到我們得到代碼審查。嘗試生成遷移文件時出現錯誤

在問我之前,我想說一個工作解決方案(已經在本地嘗試過)是將其中一個分支合併到我當前正在工作的分支中,但由於進程而無法完成這項工作。

所以,他這樣說,這裏是我的問題:

在一個分支我這樣配置我的教訓數據庫:

doctrine: 
    dbal: 
     default_connection: default 
     types: 
      point: Phil\GeolocationBundle\ORM\PointType 
     connections: 
      default: 
       driver: "%database_driver%" 
       host:  "%database_host%" 
       port:  "%database_port%" 
       dbname: "%database_name%" 
       user:  "%database_user%" 
       password: "%database_password%" 
       charset: UTF8 
       mapping_types: { point: point } 
    orm: 
     auto_generate_proxy_classes: "%kernel.debug%" 
     auto_mapping: true 
     dql: 
      numeric_functions: 
       POINTSTR: Phil\GeolocationBundle\ORM\PointStr 
       DISTANCE: Phil\GeolocationBundle\ORM\Distance 

phil_geolocation: 
    default: 
     latitude: 40.7388655 
     longitude: -73.9830327 
     city: New York 

這是工作的罰款,如果我嘗試生成一個遷移文件,它生成沒有任何問題。

doctrine: 
    dbal: 
     driver: "%database_driver%" 
     host:  "%database_host%" 
     port:  "%database_port%" 
     dbname: "%database_name%" 
     user:  "%database_user%" 
     password: "%database_password%" 
     charset: UTF8 
     # if using pdo_sqlite as your database driver: 
     # 1. add the path in parameters.yml 
     #  e.g. database_path: "%kernel.root_dir%/data/data.db3" 
     # 2. Uncomment database_path in parameters.yml.dist 
     # 3. Uncomment next line: 
     #  path:  "%database_path%" 

    orm: 
     auto_generate_proxy_classes: "%kernel.debug%" 
     auto_mapping: true 

當我嘗試生成此分支遷移時,我得到以下錯誤:

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

怪異的事實是,這開始發生後,我在另一個分支的工作,並且爲我在開始時說過,如果我將工作分支合併到非工作分支中,則會生成遷移文件。

我試過清理symfony緩存(包括dev和prod環境,以防萬一),更新作曲文件(因爲第一個配置是由我需要使用的組件添加的,所以在第二個分支中它被刪除了),檢查其他配置文件,如config-dev.yml等,只是爲了仔細檢查我沒有失去一些東西。我甚至硬刪除了我的緩存目錄。

我對可能發生的事情不知所措,就好像它正在緩存我的配置文件,但它應該是不可能的!

我發現this後,但它不是發生在我身上。

回答

2

在從一個分支移動到另一個分支之前,您是否運行doctrine:migrations:execute —down yourmigrationnumber

您的數據庫處於不同狀態(來自其他分支),因此如果您在不執行down()方法的情況下運行新遷移,它將嘗試創建遷移文件,然後刪除舊狀態知道如何處理它。

讓我知道這是否有幫助!

+0

我知道我錯過了一些愚蠢的東西,並不是來自GIT的錯誤。有效。謝謝! – Mindastic

+0

很高興幫助,歡呼! – fedev

相關問題