migration from propel to doctrine

doctrine

  • easier and more flexible joins
  • inheritance

clarify:

  • symfony plugins with separate schemata -> can they reference each other (this is not possible in propel)
    • works!
  • addAsTaggable plugin/behaviour?
  • check parallel installation of propel and doctrine
    • no known way to do this
  • extendable schemata? e.g. MyCompany can extened their "users" table with some custom columns.
    • 2 possible ways:
    1. overriding the plugins schema by putting a schema in config/doctrine/ and using the same class name
    2. using inheritance. example: the plugin prepares a "ParentMyTable" class with common columns. A "MyTable" class extends "ParentMyTable". a schema in config/doctrine/ can now define additional columns.
  •  

 

ideas:

  • use "entities" instead of users and group
  • inherit clases from a base class providing
    • creator_user_id, created_at, updator_user_id, updated_at
    • possibly a flag/namespace to differenciate between "system" rows and "custom" rows:
      e.g. groups: there may be some system groups (like "admin") and later on custom groups like "Trouble Ticket Dispatcher"
      or to package ullFlow Apps as Plugins
    • use users, groups and permissions (like in sfGuardPlugin) ? (ok, this is not doctrine related ;-)

questions:

  • somehow added columns to a table didn't show up in the database when doing 'doctrine:build-all'. had to manually delete the model files: (try only deleting generated model files)
    php symfony cc;php symfony doctrine:drop-db --force frontend;rm -rf plugins/ullCorePlugin/lib/model/doctrine/;rm -rf lib/model/doctrine/;php symfony doctrine:build-all frontend

 

migration:

todo:

  • rename all columns containing "ull_user_id" to "user_id"
  • rename all columns containing "ull_group_id" to "group_id"
  • remove 'id' from ull_user_group
  • fixtures.yml: add namespace "ullCore" to rows in EntityGroup

 

workpackages for migration

  • ullCore, everything except tableTool
  • ullCore Tabletool
  • ullWiki
  • ullFlow
  • sfTaggable Plugin?

log:

  • ullThemeDefault: update group membership check
  • ullThemeDefault: changed headerLogin into a component