# HG changeset patch # User Damien Correia # Date 1528734121 -7200 # Node ID d018bfffa7cae8831a652e28361ce9c1fd79cf0e # Parent 4b0edce1d63ca5e0c6aae41136916efdeaff9a94 Add zodbupdate doc diff -r 4b0edce1d63c -r d018bfffa7ca requirements.txt --- a/requirements.txt Mon Jun 11 14:50:38 2018 +0200 +++ b/requirements.txt Mon Jun 11 18:22:01 2018 +0200 @@ -12,7 +12,7 @@ pyams-default-theme==0.1.5 pyams-file==0.1.15 pyams-form==0.1.13 -pyams-gis==0.1.8 +#pyams-gis==0.1.8 pyams-i18n==0.1.13 pyams-ldap==0.1.6 pyams-mail==0.1.1 diff -r 4b0edce1d63c -r d018bfffa7ca src/source/appextend.rst --- a/src/source/appextend.rst Mon Jun 11 14:50:38 2018 +0200 +++ b/src/source/appextend.rst Mon Jun 11 18:22:01 2018 +0200 @@ -13,4 +13,5 @@ howto-paragraph howto-portlet howto-renderer + howto-rename howto-skin diff -r 4b0edce1d63c -r d018bfffa7ca src/source/howto-rename.rst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/source/howto-rename.rst Mon Jun 11 18:22:01 2018 +0200 @@ -0,0 +1,66 @@ +.. _renamehowto: + + +How to rename classes of existing objects +========================================= + + +When you develop new features to PyAMS we sometimes have to rename or modify classes of already stored objects if you do +that you will never access yours objects. But PyAMS provides `zodbupdate` script to update easily update the change in ZODB. + + +**1) Include you package in the require resource for you webapp** + + +.. code-block:: python + + requires = [ + 'mypackage', + ... + ] + +**2) Add the Entry points** + + +In the `setup.py` file add 'zodbupdate' params into entry_points where is store zodbupdate directives + +.. code-block:: python + + entry_points={ + 'zodbupdate': [ + 'renames = mypackage.generations:RENAMED_CLASSES' + ] + } + + + +**3) Create a module named** ``generation`` **with the migration directives** + + +.. code-block:: python + + RENAMED_CLASSES = { + 'mypackage.mymodule MyOldClass': 'mypackage.mymodule MyNewClass' + } + + +**4) Run the commands** ``buildout`` . + +.. code-block:: console + + $ mypackage/bin/buildout + $ webapp/bin/buildout + + +The ``buildout`` command going to install correctly the package and add the new entry_points references in entry_points.txt + +**5) Run the commands** ``zodbupdate`` + +To finish run `zodbupdate` to apply the changes describe in `RENAMED_CLASSES` + +.. code-block:: console + + $ bin/zodbupdate --config etc/zodbupdate-zeo.conf + + +Where `zodbupdate-zeo.conf` is the configuration file to access to the ZODB. diff -r 4b0edce1d63c -r d018bfffa7ca src/source/package_layout.rst --- a/src/source/package_layout.rst Mon Jun 11 14:50:38 2018 +0200 +++ b/src/source/package_layout.rst Mon Jun 11 18:22:01 2018 +0200 @@ -6,6 +6,7 @@ ├── pyams_/ │   ├── doctests/ <- Documentation for the package + | ├── generation/ <- ZODB Migration directives │   ├── interfaces/ <- Interfaces definition │   ├── locales/ <- Store source code translation files (.mo .pot) │   ├── tests/ <- Contains python scripts for running tests including test runners, unit test diff -r 4b0edce1d63c -r d018bfffa7ca src/source/scripts.rst --- a/src/source/scripts.rst Mon Jun 11 14:50:38 2018 +0200 +++ b/src/source/scripts.rst Mon Jun 11 18:22:01 2018 +0200 @@ -42,3 +42,8 @@ :py:func:`check_required_utilities ` is a PyAMS_utils utility function which can to used to verify that a set of local utilities are correctly registered with the given names and interfaces. + +zodbupdate +---------- + +:ref:`renamehowto`