【发布时间】:2017-07-12 09:56:31
【问题描述】:
我在 MySQL 数据库中使用 NDBCLUSTER 引擎。我添加了一个用于包装 Connection 并添加引擎选项的类:
namespace AppBundle\DBAL;
use Doctrine\DBAL\Connection as BaseConnection;
use Doctrine\DBAL\Driver;
use Doctrine\DBAL\Configuration;
use Doctrine\Common\EventManager;
class Connection extends BaseConnection
{
public function __construct(array $params, Driver $driver, Configuration $config = null, EventManager $eventManager = null)
{
if (isset($params['driverOptions']['engine'])) {
$params['defaultTableOptions']['engine'] = $params['driverOptions']['engine'];
}
return parent::__construct($params, $driver, $config, $eventManager);
}
}
我在config.yml 文件中定义了engine 选项:
doctrine:
dbal:
default_connection: default
connections:
default:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
wrapper_class: AppBundle\DBAL\Connection
options:
engine: NDBCLUSTER
orm:
auto_generate_proxy_classes: "%kernel.debug%"
default_entity_manager: default
entity_managers:
default:
connection: default
mappings:
AppBundle: ~
然后,如果我执行 php app/console doctrine:migrations:diff,则 NDBCLUSTER 引擎将添加到 CREATE 语句中。但是,也添加了外键,并且 NDBCLUSTER 不接受外键。有什么方法可以禁用外键(我的意思是,不要将它们写入迁移文件中)?
【问题讨论】:
标签: symfony doctrine-orm foreign-keys doctrine-migrations