Zend 3 + Doctrine 2创建表格?

时间:2017-07-11 10:29:39

标签: php mysql symfony doctrine-orm doctrine

我一直想知道google上的文章试图“找到一种方法”来使用doctrine创建表格。我需要创建“临时表”,因为我正在处理的项目将有很多“临时统计数据”,我不需要掌握所有信息,只需要一些“总计”。无论如何,MYSQL“临时”表只是“解决方案”。

但是,我找不到一条信息,它告诉你如何使用Doctrine创建表格。

我理解Doctrine需要创建表和实体,但必须有一种“动态”创建表的方法,或者运行原始查询的方法。

这是我尝试过的一段代码,当然它失败了:

$schema= new \Doctrine\DBAL\Schema\Schema();

        //if (!$schema->tablesExist('post'))
        //{
            $table= new \Doctrine\DBAL\Schema\Table('post');
            $table->addColumn('id', 'integer', ['autoincrement'=>true]);
            $table->addColumn('title', 'text', ['notnull'=>true]);
            $table->addColumn('content', 'text', ['notnull'=>true]);
            $table->addColumn('status', 'integer', ['notnull'=>true]);
            $table->addColumn('date_created', 'datetime', ['notnull'=>true]);
            $table->setPrimaryKey(['id']);
            $table->addOption('engine' , 'InnoDB');

            $schema->createTable($table); // save to DB
        //}

有人可以向我澄清是否可以使用Doctrine创建表格?

非常感谢。

1 个答案:

答案 0 :(得分:0)

您编写的代码称为迁移,如果正确安装和配置了迁移,则可以使用以下命令执行:

php public/index.php migrations:migrate

如果您希望创建没有迁移的表,只需先创建一个实体,配置映射(使用注释或您选择的任何其他类型)并使用以下方法强制创建模式:

php public/index.php doctrine:schema:update --force

如果您希望运行原始查询,可以:

$this->entityManager->getConnection()->executeQuery('SQL Query', $optionalParams);