The dbdiff takes to DataEase application and a list of tables that not are owned by the deployed version and makes a list of differences that can later be applied to the deployed version of the application by running a dbinstall command with the change list. The tables not owned by the deployed version can be found in the exclude list.  The tables on the exclude list are handled by the dbfilediff that will patch the deployed app direct with the datafiles.

        self.dbdodatalist = [
            ['Relationships','Development','Replace'],
            ['Users','Independent','Nothing'],
            ['Configuration','Independent','Nothing'],
            ['Custom Functions','Independent','Nothing'],
            ['Application Objects','Development','Replace'],
            ['$DeARDL_Registry$','Development','Replace'],
            ['$$DQLStore$$','Development','Replace'],
            ['WebServer','Development','Replace'],
        ]

The default exclude list

Array of jobs where first element is of type 'tablechange', 'tablecreate' or 'tabledelete' and second parameter always are the table to do things with and only tablechange takes a third parameter.

Command
Table Todo
'tablechange' table name array of tdf change instructions
'tablecreate table name
'tabledelete' table name

The array of tdf change instructions have the following format, only fieldadd and fieldchange have third parameter that tell what to set in tdf

Name Action To do
field name 'fieldadd' all settings for the tdf
field name 'fieldchange' all changed settings for the tdf
field name 'fielddelete'

The field def change list contain a array of arrays with change commands. The array of commands can have 2 or 3 values depending on what the command is. You generally only need the parameters for change or none if it is remove, but the log will show from to if you have all paramters

Action Change to Change from
'name' Name of field, will be stripped for illegal characters
'prismtype' A numeric value corresponding to list below.
DP_TEXT = 0
DP_NUMERIC_STRING = 1
DP_INTEGER = 2
DP_FIXED = 3
DP_FLOAT = 4
DP_TIME = 5
DP_DATE = 6
DP_MONEY = 7
DP_BOOLEAN = 8
DP_CHOICE = 9
DP_MEMO = 13
DP_LONGTEXT = 14
'isvirtual' bool
'isunique' bool
'isrequired' bool
'hasindex' bool
'doprevent' bool
'addrule' A valid rule as a string
'removerule' sets rule to blank
'changerule' rule to change to as string
'addderivation' derivation to add to field as string
'removederivation' set derivation to blank
'changederivation' the derivation to change to as string
'length' valid length for the field as number
'readaccess' Valid numeric for read access (default is Low3)
High = 1
Medium1 = 2
Medium2 = 3
Medium3 = 4
Low1 = 5
Low2 = 6
Low3 = 7
'writeaccess' Valid numeric for write access (default is Low3) see above for values
'format' A valid format for numeric string as a string
'decimals' number of decimal only relevant to fixed
'isdateextended' bool
'choices' string array of choices

Combined this will create a dbjob that can be sent to server at /dbinstall/dname