Must treat Static Data like source code
Our application is highly metadata driven thus we must treat our static data like source code. Specifically we need accept deleteions that are made locally, apply insertions made globally, and identify the differences. Currently Sql Source Control does NOT differentiate between rows missing from the local database because either 1) the local developer deleted them or 2) they were added by a global developer to the latest source code controlled version. In case 1, we want to drive that deleteion back into the latest source code controlled version. In case 2, we want to drive that insertion into the local database (as part of get latest/ commit changes).
I believe to do this you will have to either keep a local copy of the Source code controlled files or the version/changeset # so you can see what was originally in the database when the last "Get latest" was done.
Without this capability we cannot deploy the product as we will be destroying each other's work.
-
Jerome Dayton commented
The process should be something like this. Reconstruct database as of last "get latest". Create two set's of diff's. 1) Latest source control version to latest get. 2) Current local database to "get latest". Then identify any resulting conflicts. When conflicts (if any) have been resovled, then apply 1) to local db. Now create diff set three that is the changes between local db and latest source controlled version and check it in.
-
Jerome Dayton commented
And the reverse also applies. When a new insertion is identified, is it because 1) it is truly new or 2) it is has been deleted from the latest source control version. In case 1), we drive the insertion into the latest source control version. In case 2), we identify a conflict and have the developer resolve it.
Case 2 should be identified in the "get latest" phase, in particular if the developer has made changes to a row that is about to be deleted!