我一直想知道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创建表格?
非常感谢。
答案 0 :(得分:0)
您编写的代码称为迁移,如果正确安装和配置了迁移,则可以使用以下命令执行:
php public/index.php migrations:migrate
如果您希望创建没有迁移的表,只需先创建一个实体,配置映射(使用注释或您选择的任何其他类型)并使用以下方法强制创建模式:
php public/index.php doctrine:schema:update --force
如果您希望运行原始查询,可以:
$this->entityManager->getConnection()->executeQuery('SQL Query', $optionalParams);