Php 在原则2中指定表类型/存储引擎

Php 在原则2中指定表类型/存储引擎,php,mysql,full-text-search,doctrine-orm,myisam,Php,Mysql,Full Text Search,Doctrine Orm,Myisam,那么,如何在条令2中指定用于给定实体的存储引擎呢 我正在创建一个需要全文索引的表,并且只有MyISAM存储引擎支持MySQL中的全文索引 另一方面:看起来条令2不支持开箱即用的全文索引?也不是全文搜索?是否正确?更新: 请参阅关于添加“@Table(name=“Table_name”,options={“engine”=“MyISAM”}”的注释,这是更好的答案 =========原文如下=========== 这是一段未经测试的代码,旨在帮助您获得答案,但您需要阅读大量Doctrine2代码才

那么,如何在条令2中指定用于给定实体的存储引擎呢

我正在创建一个需要全文索引的表,并且只有MyISAM存储引擎支持MySQL中的全文索引

另一方面:看起来条令2不支持开箱即用的全文索引?也不是全文搜索?是否正确?

更新: 请参阅关于添加“@Table(name=“Table_name”,options={“engine”=“MyISAM”}”的注释,这是更好的答案

=========原文如下===========

这是一段未经测试的代码,旨在帮助您获得答案,但您需要阅读大量Doctrine2代码才能了解您想要什么。我花了大约30分钟阅读代码,却找不到将$options数组通过ORM层推送到这个DBAL层函数的方法

请查看/DBAL/Platforms/MySQLPlatform.php

427         // get the type of the table
428         if (isset($options['engine'])) {
429             $optionStrings[] = 'ENGINE = ' . $options['engine'];
430         } else {
431             // default to innodb
432             $optionStrings[] = 'ENGINE = InnoDB';
433         }

试着在那里努力。如果您使用doctrine2迁移,它几乎肯定会破坏东西(例如外键)

$table = $schema->createTable('user');
$table->addColumn('id', 'integer');
$table->addOption('engine' , 'MyISAM');
$table->setPrimaryKey(array('id'));

我已经晚了两年,但知道这一点很重要,因为出于某种原因没有记录在案, 我们一直在努力实现这一目标,但这是解决办法

/**
 * ReportData
 *
 * @ORM\Table(name="reports_report_data",options={"engine":"MyISAM"})
 * @ORM\Entity(repositoryClass="Jac\ReportGeneratorBundle\Entity\ReportDataRepository")
 */
class ReportData
{

如果不编辑来源(1.1):@Jared我也这么认为。。。感谢您的票证链接。本杰明·埃伯莱的一个解决方案-您可以使用
@table(name=“table_name”,options={“engine”=“MyISAM”})
@PaulJacobse将此作为答案发布。请注意选项={“engine”:“MyISAM”}谢谢!,不知道为什么这不是答案,奇怪。