尝试生成迁移文件时出错
Getting error when trying to generate a migration file
我目前正在开发一个 Symfony 项目,代码在 git
存储库中。
我们在一个 story/one 分支基础上工作,在我们进行代码审查之前不会推送代码。
在提问之前,我想说一个可行的解决方案(已经在本地尝试过)是将其中一个分支合并到我目前正在工作的分支中,但由于流程原因我不能这样做。
话虽这么说,但这是我的问题:
在一个分支中,我以这种方式配置了我的学说数据库:
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 post,但这不是发生在我身上的事情。
你 运行 doctrine:migrations:execute —down yourmigrationnumber
在从一个分支移动到另一个之前吗?
你的数据库处于不同的状态(与另一个分支)所以如果你 运行 一个新的迁移而不执行 down()
方法之前它会尝试创建一个迁移文件删除旧的用不知道如何处理的类型之前声明。
如果有帮助请告诉我!
我目前正在开发一个 Symfony 项目,代码在 git
存储库中。
我们在一个 story/one 分支基础上工作,在我们进行代码审查之前不会推送代码。
在提问之前,我想说一个可行的解决方案(已经在本地尝试过)是将其中一个分支合并到我目前正在工作的分支中,但由于流程原因我不能这样做。
话虽这么说,但这是我的问题:
在一个分支中,我以这种方式配置了我的学说数据库:
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 post,但这不是发生在我身上的事情。
你 运行 doctrine:migrations:execute —down yourmigrationnumber
在从一个分支移动到另一个之前吗?
你的数据库处于不同的状态(与另一个分支)所以如果你 运行 一个新的迁移而不执行 down()
方法之前它会尝试创建一个迁移文件删除旧的用不知道如何处理的类型之前声明。
如果有帮助请告诉我!