Projects › Lopes
Lopes
Write down what every column should be. Lopes tells you where the database disagrees.
The problem it solves
A data dictionary is a promise: this table has these columns, each one means this, and each one is this type and this size. The promise is usually kept in a spreadsheet, and the spreadsheet is usually a little bit wrong, because nobody checks it against the real database after the day it was written.
In the middle of a database migration that gap becomes the whole job. Three environments, DEV, UAT and PROD, each slightly different from the others and from the document that is supposed to describe them all. Finding the differences by hand is slow, and finding them twice is soul-destroying.
What it does
Lopes scans each environment down to the column level and compares every column with the dictionary, not with another environment. Each one lands in one of four states: match, drift, missing or undocumented. Fix the dictionary or fix the database, rescan, and watch the list shrink.
Writing the dictionary is made cheap. A description written once for a column name is inherited by every table that has it, and views inherit descriptions from the tables behind them. Old dictionary spreadsheets import straight in, and the finished dictionary and a drift report export back out as spreadsheets for the people who want them that way.
When a table is ready to move up, Lopes writes the SQL to create or refresh it in the next environment. It writes the SQL. It never runs it. That line stays where it is.