我在PHP项目中使用Doctrine2(在Symfony之外)。
如何从代码创建数据库?
类似于Symfony项目中的php app/console doctrine:database:create
命令。
我拥有与pdo_mysql
驱动程序上的简单symfony项目相同的数据库。
我在文档中找到了有关数据库连接,模式创建,映射,实体管理器等的所有内容,但没有真正创建数据库。
我非常确定知道如何使用硬编码的MySQL查询(即CREATE DATABASE ...
),
我正在寻找使用学说工具(如果存在的话)。
答案 0 :(得分:1)
你似乎是对的,我找不到关于此的文件。
doctrine:database:create
命令所做的简短变体:
<?php
public function createDatabase($name, array $config)
{
/** @var \Doctrine\DBAL\Connection */
$tmpConnection = \Doctrine\DBAL\DriverManager::getConnection($config);
// Check if the database already exists
if (in_array($name, $tmpConnection->getSchemaManager()->listDatabases())) {
return;
}
// Create the database
$tmpConnection->getSchemaManager()->createDatabase($name);
$tmpConnection->close();
}
使用示例:
$this->createDatabase('symfony', array(
'driver' => 'pdo_mysql',
'host' => '127.0.0.1',
'user' => 'db_user',
'password' => 'db_password',
));
doctrine SchemaManager documentation(没有谈到预期的方法)。