如何在doctrine2中创建数据库(独立)

时间:2016-03-02 00:42:55

标签: php mysql doctrine-orm

我在PHP项目中使用Doctrine2(在Symfony之外)。

如何从代码创建数据库?

类似于Symfony项目中的php app/console doctrine:database:create命令。

我拥有与pdo_mysql驱动程序上的简单symfony项目相同的数据库。

我在文档中找到了有关数据库连接,模式创建,映射,实体管理器等的所有内容,但没有真正创建数据库。

我非常确定知道如何使用硬编码的MySQL查询(即CREATE DATABASE ...),
我正在寻找使用学说工具(如果存在的话)。

1 个答案:

答案 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(没有谈到预期的方法)。