| 2 | == Comparison Script == |
| 3 | Before using the comparison script , the user of the script should have 2 eden apps , one the containing the old database schema from which the data is to migrated and one with the new database schema |
| 4 | |
| 5 | The apps_db_comparison script compares the db schema of 2 eden apps to tell the differences |
| 6 | Just run the script with 3 necessary arguments in this order |
| 7 | 1.WEB2PY_PATH |
| 8 | 2.OLD_APP |
| 9 | 3.NEW_APP |
| 10 | i.e python applications/eden/static/scripts/Database_migration/apps_db_comparison.py /home/web2py eden_old eden_new |
| 11 | |
| 12 | This script also has an test script that makes 2 new web2py with apps to compare |
| 13 | Just run the test script to compare |
| 14 | i.e python applications/eden/tests/dbmigration TestScript.py |
| 15 | |
| 16 | The detected changes are displayed , then using the changes displayed user could figure out the what kind of migration is needed , like if there is a field appeared in the new schema which has the same properties as the one disappeared from the old schema then the migration function for the renaming a field can be called . |
| 17 | |
| 18 | Also the change in the properties of the fields are detected , the migration function for those can be called too . |
| 19 | |
| 71 | }}} |
| 72 | |
| 73 | ==== Description of arguments ==== |
| 74 | ||= Argument =||= Description =|| |
| 75 | ||web2py_path ||The path to the web2py congaing the Eden app (i.e "/home/web2py")|| |
| 76 | ||app ||The name of the eden application of whose database needs to be migrated (i.e "eden")|| |
| 77 | ||field_to_update ||The name of the field to be updated according to the mapping|| |
| 78 | ||changed_table ||The name of the original table in which the new unique field id added|| |
| 79 | ||list_of_tables ||These contains the list of tables which the changed_tables references|| |
| 80 | |
| 81 | |
| 82 | === update_field_by_mapping === |
| 83 | ==== Purpose of the migration==== |
| 84 | Update the the values of an existing field according to the mappings given through the mapping_function |
| 85 | |
| 86 | ==== Method of Calling ==== |
| 87 | {{{#!python |
| 88 | import migration_scripts |
| 89 | import mapping_function |
| 90 | migration_scripts.update_field_by_mapping( web2py_path, app ,field_to_update , changed_table ,mapping_function, list_of_tables) |