Lure Synchronization Mechanism
During either Import, Export, Deploy or Extract, Lure extracts DDL or PL/SQL source from the database, compares it character by character with the source within the files on the file system:
For Export (and Extract), if any difference is detected between the generated source for the a file and the actual source in the file, then the file is overwritten with the new content. If no difference is detected then the file is not altered.
For Export (and Extract), if an object does not exist in the database (presumably because it has been deleted) then the corresponding definition of the object is removed from the file. The file itself is never deleted even though it could potentially have no object definitions (an empty file).
For Import (and Deploy), if any difference is detected between the source for an object as extracted from the database and the corresponding source for this object in the source file then this object is updated in the database such that it matches the file source.
For Import (and Deploy), if for an existing object in the database the corresponding file does not contain the definition of this object, then Lure drops this object from the database. Lure will not drop objects without corresponding source files.
Note 1: For Import (and Deploy) to correctly drop objects that have previously been installed in target environments, do not delete the corresponding files even if they are empty. Keep the empty file in the version control system until the corresponding objects have been removed from all database environments.
Note 2: For Import (and Deploy) Lure normalizes (for some object types) the source code from both the database and the source file before doing the comparison. This prevents unnecessary updates of objects in the database. (See Source Code Normalization)
lure_synchronization_mechanism.txt · Last modified: 2013/07/25 21:00 (external edit)