Doctrine PHPCR-ODM抛出“Transport不支持版本控制”异常

时间:2015-02-12 01:42:15

标签: symfony doctrine-phpcr

过去几天,我对PHPCR非常感兴趣,以及如何使用它来跟踪Documents的版本。不幸的是,由于某种原因,似乎无法让版本控制与Doctrine中的PostgreSQL一起使用。

根据phpcrdoctrine的文档,simpleVersioning应该正常工作,但当我尝试创建checkpoint时,我收到以下异常:< / p>

Transport does not support versioning
in vendor/jackalope/jackalope/src/Jackalope/Workspace.php at line 294 

我有点困惑这里似乎是什么问题以及为什么会失败?这是我的文件:

use Doctrine\ODM\PHPCR\Mapping\Annotations as PHPCR;

/**
 * @PHPCR\Document(versionable="simple")
 */
class Task {

    /**
     * @PHPCR\Id()
     */
    protected $id;

    /**
     * @PHPCR\String()
     */
    protected $description;

    /**
     * @PHPCR\Boolean()
     */
    protected $done = false;

    /**
     * @PHPCR\ParentDocument()
     */
    protected $parentDocument;

    /**
     * @PHPCR\VersionName()
     */
    private $versionName;

    /**
     * @PHPCR\VersionCreated()
     */
    private $versionCreated;

    /* Getters and setters for all fields... */
}

以下是我在控制器中使用的代码:

/**
 * @var DocumentManager $dm
 */
$dm = $this->get('doctrine_phpcr')->getManager();

$rootTask = $dm->find(null, '/tasks');
$task = new Task();
$task->setDescription('Finish CMF project');
$task->setParentDocument($rootTask);
$dm->persist($task);
$dm->flush();

$dm->checkpoint($task);

$task->setDescription("Some new description");
$dm->persist($task);
$dm->flush();

1 个答案:

答案 0 :(得分:0)

看来我误导自己相信数据库支持这一点。此时版本支持仅在您使用长耳兔时才可用。功能支持列表可用here