Icon View Incident Report

Serious Serious
Reported By: Adam Brett [Tropical Wholefoods]
Reported On: 11/24/2017
For: Version 2.26 Build 4
# 4594 Restoring a Database and Creating/Publishing a Table with Files Already on Disk Can Cause Error

Restoring a database and then creating/publishing a table can cause the following error:

ElevateDB Error #100 There is an error in the metadata for the table Manufacture (The internal structure does not match the structure in the catalog)


Comments Comments and Workarounds
The steps for recreating the error are:

1) Make sure that there are table files on disk for tables that currently exist in the database catalog.

2) Make sure that the database being restored *does not* contain these tables, and then restore the database (including catalog).

3) Create the missing tables, thus overwriting any table, index, and/or BLOB files, but not the published files because the tables are being created and aren't published yet.

4) Then try to publish those tables, and you will encounter the error when EDB tries to open/use the *old* published updates file, which doesn't match the current table that was just created.

The workaround is to simply delete all files from the database directory before executing a restore that will effectively "drop" some of the tables.

EDB has been modified to automatically *force* a drop of all existing table files during table creation, and this fixes this issue (backups are made of the original files). This (deletion of existing table files during table creation) was actually already in there, but the new table not having an "IsPublished" flag in the table metadata messed up the logic and prevented the drop code from trying to delete the published updates file from disk.


Resolution Resolution
Fixed Problem on 12/28/2017 in version 2.27 build 1


Products Affected Products Affected
ElevateDB Additional Software and Utilities
ElevateDB DAC Client-Server
ElevateDB DAC Client-Server with Source
ElevateDB DAC Standard
ElevateDB DAC Standard with Source
ElevateDB DAC Trial
ElevateDB LCL Standard with Source
ElevateDB PHP Standard
ElevateDB PHP Standard with Source
ElevateDB PHP Trial
ElevateDB VCL Client-Server
ElevateDB VCL Client-Server with Source
ElevateDB VCL Standard
ElevateDB VCL Standard with Source
ElevateDB VCL Trial

Image