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

3
我正在跟随这个教程。 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 版本 2.4.1


在执行以下命令后,CLI 中会出现什么错误信息:php vendor/bin/doctrine orm:schema-tool:create? - Gun2sh
你在配置中是否准确填写了MySQL连接所需的数据库、用户和密码信息? - zavalit
2个回答

1

Try this link:

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

请使用doctrine-module代替doctrine。

1
虽然此链接可能回答了问题,但最好在此处包含答案的必要部分,并提供参考链接。仅有链接的答案如果链接页面发生更改,则可能会失效。 - juliocesar
这个救了我的命。 - andre.orvalho

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接