Doctrine认为它创造了一张桌子,但它没有

时间:2016-02-11 09:13:25

标签: php symfony doctrine-orm doctrine

我正在关注" Doctrine"简单,简短的教程 (here

在某些时候,之间会有以下对话 学说和我:

ewandelanoy$ vendor/bin/doctrine orm:schema-tool:create --dump-sql
CREATE TABLE products (id INT AUTO_INCREMENT NOT NULL, name VARCHAR(255) NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
ewandelanoy$

所以看起来事情正常;当我去看看 我的数据库用phpAdmin然而,我找到了表 尚未创建。 事实上,当我尝试继续时,我会收到错误消息 教程并使用该表。

我如何"调试Doctrine"在这种情况下 ? 似乎Doctrine无法连接到数据库?

以下是我的配置详情:

<?php
// bootstrap.php
use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;

require_once "vendor/autoload.php";

$paths = array("src/");
$isDevMode = false;

// the connection configuration
$dbParams = array(
    'driver'   => 'pdo_mysql',
    'user'     => 'root',
    'password' => 'root',
    'dbname'   => 'flea_database',
);

$config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);
$entityManager = EntityManager::create($dbParams, $config);

1 个答案:

答案 0 :(得分:3)

要使转储真正创建架构,您必须使用:

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

--dump-sql向您显示查询,--force执行它。

运行不带选项的命令以获取更多信息。

请参阅Tools part of doctrine documentation