无法从Doctrine命令“orm:schema-tool:create”创建数据库

时间:2014-01-01 06:39:26

标签: php mysql doctrine-orm

我正在学习本教程。 http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/getting-started.html

我使用mysql代替sqlite

以下命令应该创建数据库。

php vendor/bin/doctrine orm:schema-tool:create

但它没有创造任何。如果我手动创建数据库,以下命令可以正常工作

php vendor/bin/doctrine orm:schema-tool:update --force

知道为什么这个命令不起作用?

Doctrine version 2.4.1

2 个答案:

答案 0 :(得分:1)

试试这个链接:

vendor/bin/doctrine-module orm:schema-tool:create

用户学说模块而不是学说。

答案 1 :(得分:0)

我遇到了类似的问题,发现下面的命令

php vendor/bin/doctrine orm:schema-tool:create

不创建数据库本身,它只创建模式/表。

我通过以下方式解决了这个问题:

<?php
include 'bootstrap.php';
use Doctrine\ORM\Tools\Console\ConsoleRunner,
    Doctrine\ORM\EntityManager;

try {
    $entityManager->getConnection()->connect();
}
catch(Exception $ex) {
    $connection = EntityManager::create([
        'driver'   => 'pdo_mysql',
        'host'     => MYSQL_HOST,
        'user'     => MYSQL_USERNAME,
        'password' => MYSQL_PASSWORD,
        'charset' => 'UTF8'
    ], $config)->getConnection();
    $connection->executeUpdate('CREATE DATABASE '.MYSQL_DATABASE.' CHARACTER SET utf8 COLLATE utf8_general_ci');
}
return ConsoleRunner::createHelperSet($entityManager);
?>

基本上脚本尝试连接到指定的数据库,如果失败,它会尝试创建数据库(假设允许用户执行数据库创建 - 可能是谨慎删除此文件 部署后。)

来源:http://www.cstruter.com/blog/395