【问题标题】:Getting error when trying to generate a migration file尝试生成迁移文件时出错
【发布时间】:2015-07-11 21:33:49
【问题描述】:

我目前正在处理一个 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 缓存(开发和生产环境,以防万一),更新作曲家文件(因为第一个配置是由我需要使用的组件添加的,所以在我的第二个分支中它被删除了) ,检查其他配置文件,如config-dev.yml 等等,只是为了仔细检查我没有遗漏任何东西。我什至硬删除了我的缓存目录。

我对可能发生的事情一无所知,就像它以某种方式缓存了我的配置文件一样,但这应该是不可能的!

我找到了this 的帖子,但这不是发生在我身上的事情。

【问题讨论】:

    标签: php git symfony doctrine-orm doctrine-migrations


    【解决方案1】:

    在从一个分支移动到另一个分支之前,您是否运行过doctrine:migrations:execute —down yourmigrationnumber

    您的数据库处于不同的状态(来自另一个分支),因此如果您在未执行 down() 方法之前运行新迁移,它将尝试创建一个迁移文件,删除之前使用该类型的旧状态不知道怎么处理。

    如果有帮助,请告诉我!

    【讨论】:

    • 我知道我错过了一些愚蠢的东西,并不是 GIT 的错误。有效。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2019-01-12
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多