如何选择到数据库的连接,当我使用控制台Symfony2的
我有两个数据库(MySQL和Oracle),我没有连接betweek SF2和两个数据库,这是我config.yml文件:如何选择到数据库的连接,当我使用控制台Symfony2的
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
# if using pdo_sqlite as your database driver, add the path in parameters.yml
# e.g. database_path: "%kernel.root_dir%/data/data.db3"
# path: "%database_path%"
sysman:
driver: %database_driver2%
host: %database_host2%
port: %database_port2%
dbname: %database_name2%
user: %database_user2%
password: %database_password2%
charset: UTF8
我的问题是,我怎么能在第二数据库(甲骨文)上运行控制台命令,命令,如(学说:数据库:创建...),并感谢
使用--connection
参数:
php app/console doctrine:database:create --connection=default
或
php app/console doctrine:database:create --connection=sysman
您应该先阅读有关命令的教程以及如何将选项和参数传递给命令。以及如何区分选项和参数。
如果你想使自己的命令......
你可能会想使它像这样的 - 如果你没有通过一个选项(你会使用默认的数据库),如果你通过它,您将确保它是一个有效的选项,并使用传递的数据库连接名称。
Doctrine与Mysql不紧密结合,您可以使用几乎所有最常用的可用数据库。
另请注意,命令是容器感知的。这意味着你的命令可以访问容器中,虽然你可以访问你的服务,如学说:
protected function execute(InputInterface $input, OutputInterface $output)
{
$connection $input->getArgument('connection');
# Validate connection argument here and use it below
$container = $this->getContainer();
$em = $container->get('doctrine')->getManager(); // default db
$em = $container->get('doctrine')->getManager('sysman'); // another
return 1;
}
我写的代码未经测试,原谅我的任何错误,我可能会做。
php app/console doctrine:mapping:info --em=default (same without em option)
php app/console doctrine:mapping:info --em=sysman
感谢您的代码,我认为它将逻辑工作,我应该在哪里放置?我认为它在学说中已经完成了,因为当我尝试由@ j0k提出的解决方案时,它会通过并给我另一个错误 – user3303133
仅当使用此代码时,如果编写自己的命令,则不要修改由教义提供的命令。 对于现有的教条命令,使用像我上面更新的东西。 – tomazahlin
是的,我仍然有一个问题,我不能使用doctrine连接到oracle,这个$ this-> get('doctrine') - > getManager('sysman') - > getConnection() - > isConnected()返回假! – user3303133
感谢您的回答,当我使用它的SYSMAN方面,我有这样的错误:PHP的通知:使用未定义的常量OCI_COMMIT_ON_SUCCESS的 - 假设“OCI_COMMIT_ON_SUCCESS”在d:\网站\奇\供应商\原则\ DBAL \ lib \ Doctrine \ DBAL \ Driver \ OCI8 \ Driver.php在第37行 – user3303133
好吧,这是另一个问题,您应该在其他问题中提及,首先在Google上快速搜索,您会发现问题:http://*.com/q/9877592/569101 – j0k
非常感谢,我会看到这一点,最后一点,我没有检查文档如何使用oracle与sf2(CRUD)我没有找到任何东西,它是否与MySQL相同? – user3303133