Lets say you have a Database
, and a Data Access Layer
(DAL
)
The DAL
will be consumed by a various number of products which access the Database
.
As time goes on, you add new fields and tables to the Database
, and therefore update the DAL
from version 1.0.0
to version 1.0.1
. Everything is fine and nice :)
Your team decide that later down the line in version 1.0.13
that the field is no longer required, so you delete the field from the database, and increment the DAL
to 1.0.14
.
This will break versions 1.0.1
, 1.0.2
, 1.0.3
... and so on.
Another example:
Say you have a field called streetName
in the Database
, and the DAL
is at 1.0.0
, but later, you change the street name field to addressLine1
, and increment the version of the DAL
to 2.0.0
. What would happen to 1.0.0
? It clearly isn't going to work anymore because it cannot find the streetName
field in the Database
How does one solve this problem? Multiple Databases
per DAL
version? Is this even the correct direction of approach?