symfony-4.3 - 连接到 symfony 4.3 项目中的 oracle 11g 数据库
问题描述
我开始了一个 Symfony 4.3 项目,我必须为这个项目使用 Oracle 11g 数据库。但是,Symfony 的文档并没有提供足够清晰的主题,尤其是连接到 oracle 数据库的配置。我试图解决这个问题已经快 3 天了,但我什么也没找到。
//.env
DATABASE_URL=mysql://user:pass@127.0.0.1:3306/the_spacebar
DATABASE_CUSTOMER_URL=pdo_oci://user:pass@localhost:1521/XE
//doctrine.yaml
doctrine:
dbal:
default_connection: default
connections:
default:
# configure these for your database server
driver: 'pdo_mysql'
server_version: '5.7'
charset: utf8mb4
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
url: '%env(resolve:DATABASE_URL)%'
customer:
# configure these for your database server
driver: 'pdo_oci'
server_version: ~
charset: AL32UTF8
default_table_options:
charset: AL32UTF8
collate: ~
url: '%env(resolve:DATABASE_CUSTOMER_URL)%'
orm:
default_entity_manager: default
entity_managers:
default:
connection: default
mappings:
Main:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity/Main'
prefix: 'App\Entity\Main'
alias: Main
customer:
connection: customer
mappings:
Customer:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity/Customer'
prefix: 'App\Entity\Customer'
alias: Customer
错误是:
驱动程序中发生异常:SQLSTATE[HY000]: pdo_oci_handle_factory: ORA-12505: TNS:listener 目前不知道连接描述符中给出的 SID
(ext\pdo_oci\oci_driver.c:634)
解决方案
我解决了我的问题如下:
// .env
DATABASE_URL=mysql://user:pass@127.0.0.1:3306/dbname
DATABASE_CUSTOMER_URL=//user:pass@localhost:1521/XE
// doctrine.yaml
doctrine:
dbal:
default_connection: default
connections:
default:
# configure these for your database server
url: '%env(DATABASE_URL)%'
driver: 'pdo_mysql'
server_version: '5.7'
charset: utf8mb4
customer:
# configure these for your database server
url: '%env(DATABASE_CUSTOMER_URL)%'
driver: 'pdo_oci'
server_version: ~
charset: AL32UTF8
orm:
default_entity_manager: default
entity_managers:
default:
connection: default
mappings:
Hand:
is_bundle: false
type: annotation
dir: '% kernel.project_dir%/src/Entity/Main'
prefix: 'App\Entity\Main'
Alias: Main
customer:
connection: customer
mappings:
Customer:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/Entity/Customer'
prefix: 'App\Entity\Customer'
alias: Customer
推荐阅读
- azure-pipelines - 是否可以在单个 Azure 管道中同时提取 SVN 和 Git?
- sql - SQL 查询时间
- bash - 使用 bash 生成人员/字符串的排列
- javascript - Mocha 测试超时,尽管 post 客户端运行良好
- node.js - 使用 Nodejs-Restify-Passport 每个用户一个会话
- email - Apps 脚本不会发送包含指向给定 G Suite 域上的 Google Drive 文件链接的电子邮件,没有错误消息
- dataweave - Dataweave 从 XML Mulesoft 中选择准确的标签
- mysql - hbm2ddl 不适用于旧声称的工作源代码中的某些实体类
- templates - 循环问题的烧瓶模板
- python - 如何在 CreateView 中动态设置 ForeignKey 的初始值?