Doctrine DBAL Repository Data Fixes Round 2

Date: 2013-07-10

We did some more changes to Jackalope Doctrine DBAL which require some updated:

First we fixed some issues related to date sorting and filtering. This basically requires going through all nodes with a date property and forcing a change so that the date will now be stored in UTC format. With this change all nodes will always be returned in the timezone configured in the php.ini. For Jackalope Jackrabbit it will continue to return the timezone as it was provided originally however.

The other change is a small change in the data structure for references and requires the following steps

    Run ``app/console doctrine:phpcr:init:dbal --dump-sql``
    Copy and execute all tables, indexes etc related to ``phpcr_nodes_references`` and ``phpcr_nodes_weakreferences``.

    Run the following SQL statements:
    INSERT INTO phpcr_nodes_references ( source_id, source_property_name, target_id )
    SELECT source_id, source_property_name, target_id
    FROM phpcr_nodes_foreignkeys WHERE type = 9;
    INSERT INTO phpcr_nodes_weakreferences ( source_id, source_property_name, target_id )
    SELECT source_id, source_property_name, target_id
    FROM phpcr_nodes_foreignkeys WHERE type = 10;

    Finally clean up the old table:
    DROP TABLE phpcr_nodes_foreignkeys;

If you don't like to execute this directly on your database I recommend you create a Doctrine migration using the fix SQL in the up() method, and the revert SQL in down().

prev next