shoofly / doctrine-multi-schema-bundle
为 Doctrine + Symfony 启用多个模式
v0.1.6
2017-12-08 05:06 UTC
Requires
- php: >=5.6.0
- doctrine/common: ~2.5
- doctrine/dbal: ~2.5
- symfony/config: >= 3.2
- symfony/dependency-injection: >= 3.2
- symfony/doctrine-bridge: >= 3.2
- symfony/framework-bundle: >= 3.2
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-24 23:50:20 UTC
README
为 Doctrine 的 MySQL 启用多个模式
我创建此包是为了满足我的一个项目的需求。它并未对所有用例进行彻底测试,并将定期更新。
如果你发现这个包很有用但发现了一个错误,我欢迎你提交 PR。
前提
Doctrine 将 MySQL 数据库与 PostgreSQL 数据库同等对待。实际上,MySQL 数据库在本质上更接近 PostgreSQL 模式,MySQL 中的 DATABASE 可以与 SCHEMA 互换使用,甚至在 语法上 也可以。
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name ...
这使得处理使用多个模式的 MySQL 架构变得非常困难——这在继承的代码中通常是现实情况。
如果你的个人用例是将具有多个模式的项目转移到 Symfony 项目中,并且你想使用 Doctrine,那么这个包试图使这成为可能。
安装
在你的 Symfony 项目中,使用以下命令安装:
composer require shoofly/doctrine-multi-schema-bundle
将以下内容添加到你的 Symfony AppKernel.php 中:
$bundles = [
new Shoofly\DoctrineMultiSchemaBundle\ShooflyDoctrineMultiSchemaBundle(),
];
配置
重要:移除你的驱动和平台,并用这两个参数替换。
doctrine:
dbal:
driver_class: 'Shoofly\DoctrineMultiSchemaBundle\DBAL\MySQL\Driver'
platform_service: "shoofly_doctrine_multi_schema.platform57"
# for MySQL < 5.7, choose this:
# platform_service: "shoofly_doctrine_multi_schema.platform"
接下来,列出你想要包含在 ORM 中的模式
shoofly_doctrine_multi_schema:
schemas:
- foo
- baz
- bar
这应该是你需要的唯一配置。如果你遇到任何问题,请告诉我。
希望这能帮助其他人。如果不,它已经帮到我:)