I've previously written (here, for example)
about deleting objects during a migration. When you do a Compare
and Report, and an object is listed as "Absent" in the source database
and anything other than absent in the target, it will be marked
for deletion during the next Copy.
Recently I needed to rename a
number of custom Field objects. (Keeping the original names would
have worked but would have been very misleading for maintenance
purposes.) An object can be attached to a project and then deleted
from the database. But in the case of a rename, the object's entry
in a project is renamed as well. That means that the object under the
original name would remain in the target database. I wanted to delete
these old objects. To do this, I logged in to a different environment
that included the objects and added them to a new project, then
migrated only the project definition—not the objects within
the project back to the development environment. Then I merged
this project into my main project. Now the main project contains
entries for the old field names. These will compare as "Absent" during
the next Compare and Report. Since App Designer is afraid to delete
an object, I'll then check the Upgrade box next to each field so that
the action of Delete will be performed.
A project contains various pieces of information but its main purpose
is to act as a list of objects. In unusual situations such as the one
described above, Tools allows us to migrate the project itself without
carrying along the objects to which it refers. This is done by leaving
"Copy Project Definition" checked on the Copy panel, but deselecting
all of the object types. To merge projects together, open your main
project and then select File | Merge Projects from the menu. Specify
the project you want to copy and the objects listed in that project
will be added to your project. No objects are actually copied during
this operation; their names are just added to the list.