Difference between revisions of "Upgrade Mechanism"
From OpenEMR Project Wiki
Bradymiller (talk | contribs) |
Bradymiller (talk | contribs) |
||
Line 69: | Line 69: | ||
===Upgrade the ACL controls=== | ===Upgrade the ACL controls=== | ||
:*This is the acl_upgrade.php script | :*This is the acl_upgrade.php script | ||
::* | ::*As of version 4.1.2, this is now completed in the above sql_upgrade.php script. | ||
[[Category:Upgrade]][[Category:Release]][[Category:Developer Guide]] | [[Category:Upgrade]][[Category:Release]][[Category:Developer Guide]] |
Latest revision as of 20:47, 28 September 2012
Note this page is for developers to describe the upgrade process. For upgrade instructions go to the Upgrade OpenEMR wiki page.
Upgrade Steps
Replace the codebase
- Simply replace the codebase
- Migrate over the setting in sites/default(or other name)/sqlconf.php and change $config to 1
- Keeping several of the folders that store documents.
- sites/default(or other name)/documents
- sites/default(or other name)/edi
- sites/default(or other name)/era
- sites/default(or other name)/letter_templates
Upgrade the database
- This is done via the sql_upgrade.php script
- This file runs through the database upgrade files (ie. sql/4_1_0-to-4_1_1_upgrade.sql), which contain sql code. Note the sql code is embedded in a meta-language to ensure robust database upgrade. The meta-language is posted below (for examples on use, look through the upgrade sql files):
-- -- Comment Meta Language Constructs: -- -- #IfNotTable -- argument: table_name -- behavior: if the table_name does not exist, the block will be executed -- #IfTable -- argument: table_name -- behavior: if the table_name does exist, the block will be executed -- #IfMissingColumn -- arguments: table_name colname -- behavior: if the colname in the table_name table does not exist, the block will be executed -- #IfNotColumnType -- arguments: table_name colname value -- behavior: If the table table_name does not have a column colname with a data type equal to value, then the block will be executed -- #IfNotRow -- arguments: table_name colname value -- behavior: If the table table_name does not have a row where colname = value, the block will be executed. -- #IfNotRow2D -- arguments: table_name colname value colname2 value2 -- behavior: If the table table_name does not have a row where colname = value AND colname2 = value2, the block will be executed. -- #IfNotRow3D -- arguments: table_name colname value colname2 value2 colname3 value3 -- behavior: If the table table_name does not have a row where colname = value AND colname2 = value2 AND colname3 = value3, the block will be executed. -- #IfNotRow4D -- arguments: table_name colname value colname2 value2 colname3 value3 colname4 value4 -- behavior: If the table table_name does not have a row where colname = value AND colname2 = value2 AND colname3 = value3 AND colname4 = value4, the block will be executed. -- #IfNotRow2Dx2 -- desc: This is a very specialized function to allow adding items to the list_options table to avoid both redundant option_id and title in each element. -- arguments: table_name colname value colname2 value2 colname3 value3 -- behavior: The block will be executed if both statements below are true: -- 1) The table table_name does not have a row where colname = value AND colname2 = value2. -- 2) The table table_name does not have a row where colname = value AND colname3 = value3. -- #IfNotIndex -- desc: This function will allow adding of indexes/keys. -- arguments: table_name colname -- behavior: If the index does not exist, it will be created -- #EndIf -- all blocks are terminated with and #EndIf statement.
- This script also imports new globals in library/globals.inc.php and the version mysql table settings from version.php file.
Upgrade the ACL controls
- This is the acl_upgrade.php script
- As of version 4.1.2, this is now completed in the above sql_upgrade.php script.