I keep our data dictionary as DBML in source control - one file per release - which is not an uncommon practice. The most frequent question I've come up against is: what actually changed between v1 and v2?
There's no native way of diffing two DBML files. Git diff is line-based, so reordered columns and whitespace drown out the real changes, and a retyped column is easy to miss entirely, dbdiagram's version history lets you view and restore old versions, but not compare them, the usual schema diff tools (Redgate, migra, atlas) all compare live databases or SQL DDL, not DBML files...etc.
So I built an npm package that does it. And just thought I'd throw it out here if anyone is interested in giving it a go I'd love some other real world use cases/testers. I don't know if its the done thing to advertise a repo on here so if you do use DBML and think a diff tool might be useful to you (latest feature is outputting a database migration script) - let me know or DM me and I'll send you a link to the repo.
There's no native way of diffing two DBML files. Git diff is line-based, so reordered columns and whitespace drown out the real changes, and a retyped column is easy to miss entirely, dbdiagram's version history lets you view and restore old versions, but not compare them, the usual schema diff tools (Redgate, migra, atlas) all compare live databases or SQL DDL, not DBML files...etc.
So I built an npm package that does it. And just thought I'd throw it out here if anyone is interested in giving it a go I'd love some other real world use cases/testers. I don't know if its the done thing to advertise a repo on here so if you do use DBML and think a diff tool might be useful to you (latest feature is outputting a database migration script) - let me know or DM me and I'll send you a link to the repo.