2015-07-11 100 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