blog entries created by Nicolas Chauvat
show 32 results
  • Migration in Python Web Frameworks ORMs

    2009/03/13 by Nicolas Chauvat

    Today, I felt like doing a quick tour of the migration features provided by the ORMs used by the Python web frameworks. I started with Django. South looks better than Django-evolution which looks much better than dmigrations which is very low level. I also had a look at SQLAlchemy.migrate, but again, that's too low level for me since I am looking to define migrations with the same vocabulary that is used for the data model, independently of the underlying database schema.

    http://south.aeracode.org/raw-attachment/wiki/Logo/logo-trac.png

    The features listed in the South documentation have all been in CubicWeb for some time, except dependencies and autodetection. In my opinion, the dependency feature is not needed when you already have a list of scripts ordered by number, which is the case in South and in CubicWeb. The autodetection feature is more interesting, but it is tricky to get right. CubicWeb migration mechanism has had some kind of autodetection for a long time, but it is limited to the part that is easy to get right, yet quite common and useful:

    • synchronizing properties of attributes and relationships (i.e. a Person.name becomes fulltextindexed or a has_portfolio relationship changes from 1-1 to 1-n)
    • synchronizing permissions
    http://farm2.static.flickr.com/1007/666142945_1d675bc2a7_m.jpg

    For other common tasks like adding or removing entities and attributes, high-level directives are provided like add_entity_type or remove_attribute.

    Up to now, not pushing autodetection of changes in the data model has been a deliberate choice, for diff'ing two models is complex and creating a migration path is even more difficult. Moreover, letting the ORM automatically overwrite local changes in the database schema can be harmful in some cases.

    In CubicWeb, the idea is that the developer knows better than the framework, so let him decide what's best and provide him with a concise vocabulary to write the migration scripts.

    photo by Tim in Sydney under creative commons.


  • Collections des musées de Haute-Normandie

    2008/12/22 by Nicolas Chauvat

    Logilab announced that its most recent application went on-line on December 19th, 2008. It publishes the artwork collections of 41 museums of the Normandy region. It features a very simple user interface with facets for selecting items and tabs for choosing how to display the selected items. It uses the timeline widget from the Simile project as well as Google Maps to place the selected items in time and space.

    Visit Collections des Musées de Haute-Normandie.

    http://www.cubicweb.org/file/1241?vid=download

show 32 results