我有过
运行在VM 2.8.2
3.1.1F 213
和oracle19c运行
我也有一些我现在想要建立的实体:随教条迁移。但在这一点上,我坚持这个错误:
更多信息:
doctrine.yaml:中的
dbal:
default_connection: oracle
connections:
default:
schema_filter: ~^(?!t_cmdb_|m_cmdb_|migration_versions)~
mapping_types:
enum: string
# configure these for your database server
url: '%env(resolve:DATABASE_URL)%'
driver: 'pdo_mysql'
server_version: '5.7'
charset: utf8mb4
oracle:
schema_filter: ~^(?!t_cmdb_|m_cmdb_|migration_versions)~
mapping_types:
enum: string
# configure these for your database server
url: '%env(resolve:DATABASE_CUSTOMER_URL)%'
servicename: 'pdb'
service: true
driver: 'oci8'
server_version: ~
charset: AL32UTF8我有一个oracle数据库,它是用以下内容创建的:
php bin/console doctrine:database:create --connection oracle没有任何问题
比我叫的还多
php bin/console make:migration -vvv我收到了一条错误消息:
[Doctrine\DBAL\Exception]
Unknown database type interval day(3) to second(2) requested, Doctrine\DBAL\Platforms\OraclePlatform may not support it.我所有的日期列都有日期时间类型,那里没有间隔!
我已经找过这个问题了,但我没办法解决。有人在为教条迁移的时候遇到了这个问题吗?
非常感谢你的暗示。
迈克尔
发布于 2022-05-06 16:26:20
原则命令通常扫描Symfony的.env文件中定义的用户/模式中的所有表(查找DATABASE_USER)。该错误意味着该模式中至少有一个表有一个类型为“INTERVAL.”的列。
如果你确信没有“间隔”的表.类型列,可能是直接使用系统用户/架构(或任何其他Oracle保留的用户/架构)。在这种情况下,您需要为项目创建一个单独的用户/模式,并将项目表移到那里。
无论如何,运行此命令以检查哪些表在哪些用户/模式(所有者)中有类型为“INTERVAL.”的列:
SELECT
OWNER,
TABLE_NAME ,
COLUMN_NAME,
DATA_TYPE,
DATA_LENGTH,
DATA_PRECISION,
DATA_SCALE
FROM ALL_TAB_COLUMNS
where
data_type like 'INTERVAL%'
-- and OWNER = 'YOUR_USER_SCHEMA' -- must be in uppercase
ORDER BY TABLE_NAME如果在项目中确实使用了这样的列类型,则必须在Doctrine的配置:https://www.doctrine-project.org/projects/doctrine-orm/en/latest/cookbook/custom-mapping-types.html中添加该列类型
如果您发现您正在直接使用系统用户/模式(可能在Docker容器中?),那么创建单独的项目用户/模式:
CREATE USER your_separate_user_schema IDENTIFIED BY oracle; -- oracle is the password
Grant create session to your_separate_user_schema ; -- to be able to login with the new user
ALTER USER your_separate_user_schema quota unlimited on USERS; -- give your user schema disk space要只将必要的表从SYSTEM复制到your_separate_user_schema:而在system/sysdba中,对于每个表,请执行以下操作:
create table your_separate_user_schema.table_name as select * from table_name ;https://stackoverflow.com/questions/67318571
复制相似问题