Doctrine 1
  1. Doctrine 1
  2. DC-880

Versionable + I18n creates additional migration with irrelevant data

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None
    • Environment:
      PHP 5.2, Symfony 1.4, Diem 5.1, Doctrine 1.2.2

      Description

      First run of generate-migrations-diff and migrate creates 2 migration diff files. First one for new tables, second one for new indexes and foreign keys. Than if I run generate-migrations-diff again another version is created although nothing was changed and following is inside:

      • 1st entry tries to drop a foreign key never been created and not existing in file
      • next entry tries to create a foreign key already existing
      • 3rd entry tries to create an existing index

      After a long try and errorI found out that it's only happening with I18n plus Versionable behavior.

      As I already have spent much time for a report please have also a look at: http://forum.diem-project.org/viewtopic.php?f=2&t=173&sid=5e0e3349c0e15a169bc9990a3104b3f6#p465

      As I'm quite new to Doctrine and Symfony systems I cannot get further, but willing for more investigation if just one could give me a hint where to start.

        Activity

        Hide
        Andrew Coulton added a comment -

        I think this is because the versionable behaviour doesn't define a table name in the Doctrine_Template_Versionable class. As a result, if using model prefixes, the prefixes are not discarded from the table names when the behaviour model classes are built. This means that the tables have different names to what is expected, so they have different index keys, so the indexes are dropped and recreated as part of the migration.

        I have committed unit tests and patch for this issue (which applies to Searchable also) to http://github.com/acoulton/doctrine1/tree/DC-880

        Show
        Andrew Coulton added a comment - I think this is because the versionable behaviour doesn't define a table name in the Doctrine_Template_Versionable class. As a result, if using model prefixes, the prefixes are not discarded from the table names when the behaviour model classes are built. This means that the tables have different names to what is expected, so they have different index keys, so the indexes are dropped and recreated as part of the migration. I have committed unit tests and patch for this issue (which applies to Searchable also) to http://github.com/acoulton/doctrine1/tree/DC-880
        Hide
        Daniele Dore added a comment -

        I experienced the same problem in the latest version 1.2.4, and the patch proposed by Andrew Coulton solves the problem.
        Why the fix is not included in official release?

        Show
        Daniele Dore added a comment - I experienced the same problem in the latest version 1.2.4, and the patch proposed by Andrew Coulton solves the problem. Why the fix is not included in official release?

          People

          • Assignee:
            Jonathan H. Wage
            Reporter:
            Thomas
          • Votes:
            1 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated: