<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel>
<title>Schemity Blog</title>
<link>https://schemity.com/blog/</link>
<atom:link href="https://schemity.com/rss.xml" rel="self" type="application/rss+xml"/>
<description>Database design for software engineers: schema behaviour, migrations and impact, from the makers of Schemity.</description>
<language>en</language>
<item><title>Navicat Data Modeler Alternative: Database Design Software Without the Enterprise Edition</title><link>https://schemity.com/blog/navicat-data-modeler-alternative/</link><guid isPermaLink="true">https://schemity.com/blog/navicat-data-modeler-alternative/</guid><pubDate>Thu, 05 Nov 2026 00:00:00 GMT</pubDate><description>Navicat Data Modeler keeps reverse engineering, SQL import and export, and database sync for its Enterprise edition. Schemity reads your database on every license.</description></item>
<item><title>PostgreSQL Deferrable Foreign Keys: When to Use INITIALLY DEFERRED, and How to Switch Without Locking the Parent Table</title><link>https://schemity.com/blog/postgres-deferrable-foreign-keys/</link><guid isPermaLink="true">https://schemity.com/blog/postgres-deferrable-foreign-keys/</guid><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><description>Should a Postgres foreign key be DEFERRABLE? Schemity timed it on 1M rows: what deferring costs at COMMIT, and how to change an existing key without re-checking it.</description></item>
<item><title>Visual Paradigm Alternative: Database Design Software Without the Modeling Suite</title><link>https://schemity.com/blog/visual-paradigm-alternative/</link><guid isPermaLink="true">https://schemity.com/blog/visual-paradigm-alternative/</guid><pubDate>Tue, 03 Nov 2026 00:00:00 GMT</pubDate><description>Visual Paradigm keeps reverse engineering and database patching for its Standard edition and up. Schemity is the alternative that reads your database on every license.</description></item>
<item><title>MySQL ALTER TABLE: Which Changes Lock the Table, and How to Make One Fail Instead of Copying</title><link>https://schemity.com/blog/mysql-alter-table-lock-instant-inplace-copy/</link><guid isPermaLink="true">https://schemity.com/blog/mysql-alter-table-lock-instant-inplace-copy/</guid><pubDate>Sat, 31 Oct 2026 00:00:00 GMT</pubDate><description>Schemity timed MySQL 8.4 ALTER TABLE on 1M rows: which changes copy the table and block writes, why an instant one can still stall reads, and how to force a refusal.</description></item>
<item><title>Laravel ERD: Draw It From the Migration Files or From the Database?</title><link>https://schemity.com/blog/laravel-erd-from-migrations-or-database/</link><guid isPermaLink="true">https://schemity.com/blog/laravel-erd-from-migrations-or-database/</guid><pubDate>Fri, 30 Oct 2026 00:00:00 GMT</pubDate><description>A fresh install of Invoice Ninja runs only 61 of its 317 Laravel migrations. Schemity measured which source a Laravel ERD should be drawn from, and what each one misses.</description></item>
<item><title>MySQL to PostgreSQL Schema Conversion: What Each Column Type Should Become, and What Silently Changes</title><link>https://schemity.com/blog/mysql-to-postgresql-schema-conversion/</link><guid isPermaLink="true">https://schemity.com/blog/mysql-to-postgresql-schema-conversion/</guid><pubDate>Thu, 29 Oct 2026 00:00:00 GMT</pubDate><description>Schemity's guide to converting a MySQL schema to PostgreSQL: eight column decisions, tested on MySQL 8.4 and PostgreSQL 18.3, and how to find the silent ones.</description></item>
<item><title>pgvector: Embedding Column on the Table or a Separate Embeddings Table?</title><link>https://schemity.com/blog/pgvector-embedding-column-vs-separate-table/</link><guid isPermaLink="true">https://schemity.com/blog/pgvector-embedding-column-vs-separate-table/</guid><pubDate>Thu, 29 Oct 2026 00:00:00 GMT</pubDate><description>In Schemity's pgvector test, 5,000 title edits doubled an HNSW index without touching a vector. Where an embedding belongs, by chunking, re-embedding and edit rate.</description></item>
<item><title>PostgreSQL INT to BIGINT Primary Key: In-Place ALTER vs Column Swap, and What Each Locks</title><link>https://schemity.com/blog/postgres-change-int-primary-key-to-bigint/</link><guid isPermaLink="true">https://schemity.com/blog/postgres-change-int-primary-key-to-bigint/</guid><pubDate>Sat, 24 Oct 2026 00:00:00 GMT</pubDate><description>Schemity tested INT to BIGINT on a Postgres key: the in-place ALTER locks the referencing table too, while a column swap held its locks for about 45 ms.</description></item>
<item><title>MySQL Workbench Alternative: ER Diagrams Past 250 Tables</title><link>https://schemity.com/blog/mysql-workbench-alternative/</link><guid isPermaLink="true">https://schemity.com/blog/mysql-workbench-alternative/</guid><pubDate>Thu, 22 Oct 2026 00:00:00 GMT</pubDate><description>MySQL Workbench may refuse to place 250+ objects and draws no line where MySQL stored no key. How Schemity handles both, and what Workbench still does better.</description></item>
<item><title>How to Track Schema Changes in PostgreSQL: DDL Logging, an Event Trigger or a Schema Snapshot</title><link>https://schemity.com/blog/postgres-track-schema-changes/</link><guid isPermaLink="true">https://schemity.com/blog/postgres-track-schema-changes/</guid><pubDate>Thu, 22 Oct 2026 00:00:00 GMT</pubDate><description>Schemity tested three ways to track Postgres schema changes on 18.3: what each one misses, who can switch it off, and the pair to run.</description></item>
<item><title>How to Auto-Update an updated_at Column: MySQL ON UPDATE vs a Database Trigger vs the ORM</title><link>https://schemity.com/blog/auto-update-updated-at-column-mysql-postgres-orm/</link><guid isPermaLink="true">https://schemity.com/blog/auto-update-updated-at-column-mysql-postgres-orm/</guid><pubDate>Wed, 21 Oct 2026 00:00:00 GMT</pubDate><description>MySQL ON UPDATE, a trigger or the ORM for updated_at: Schemity compares them, the migrations that silently break each, and the writes an ORM never sees.</description></item>
<item><title>SQL Server INT to BIGINT Primary Key: Four Ways to Change It and What Each One Costs</title><link>https://schemity.com/blog/sqlserver-change-int-to-bigint-primary-key/</link><guid isPermaLink="true">https://schemity.com/blog/sqlserver-change-int-to-bigint-primary-key/</guid><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><description>Schemity tested INT to BIGINT on a SQL Server key: ALTER COLUMN fails with Msg 5074 until the keys go. Four ways to widen it, and when each one fits.</description></item>
<item><title>Round-Tripping TPC-DS and a Snowflake Feature Schema Through a Database Diagram: What Snowflake Lost and What We Fixed</title><link>https://schemity.com/blog/snowflake-round-trip-tpcds/</link><guid isPermaLink="true">https://schemity.com/blog/snowflake-round-trip-tpcds/</guid><pubDate>Sun, 18 Oct 2026 00:00:00 GMT</pubDate><description>Schemity rebuilt TPC-DS and a hand-written Snowflake schema from its own SQL. Before the fixes a table was lost and surrogate keys got AUTOINCREMENT. Why.</description></item>
<item><title>Round-Tripping Campfire and Jellyfin Through a Database Diagram: What SQLite Lost and What We Fixed</title><link>https://schemity.com/blog/sqlite-round-trip-campfire-jellyfin/</link><guid isPermaLink="true">https://schemity.com/blog/sqlite-round-trip-campfire-jellyfin/</guid><pubDate>Sat, 17 Oct 2026 00:00:00 GMT</pubDate><description>Schemity rebuilt Campfire's and Jellyfin's SQLite schemas from its own SQL. Before the fixes, Campfire's Account model failed on the copy and indexes were lost.</description></item>
<item><title>Round-Tripping Bitwarden and Smartstore Through a Database Diagram: What SQL Server Lost and What We Fixed</title><link>https://schemity.com/blog/sqlserver-round-trip-bitwarden-smartstore/</link><guid isPermaLink="true">https://schemity.com/blog/sqlserver-round-trip-bitwarden-smartstore/</guid><pubDate>Fri, 16 Oct 2026 00:00:00 GMT</pubDate><description>Schemity rebuilt Bitwarden's and Smartstore's SQL Server schemas from its own SQL. Before the fixes the scripts failed and types changed. What broke, and why.</description></item>
<item><title>Round-Tripping Invoice Ninja and Sylius Through a Database Diagram: What MySQL Lost and What We Fixed</title><link>https://schemity.com/blog/mysql-round-trip-invoice-ninja-sylius/</link><guid isPermaLink="true">https://schemity.com/blog/mysql-round-trip-invoice-ninja-sylius/</guid><pubDate>Thu, 15 Oct 2026 00:00:00 GMT</pubDate><description>Schemity rebuilt Invoice Ninja's and Sylius's MySQL schemas from its own SQL. Before the fixes MySQL refused one and imports lost collations. What broke, and why.</description></item>
<item><title>Round-Tripping Mastodon and Saleor Through a Database Diagram: What Broke and What We Fixed</title><link>https://schemity.com/blog/postgres-round-trip-mastodon-saleor/</link><guid isPermaLink="true">https://schemity.com/blog/postgres-round-trip-mastodon-saleor/</guid><pubDate>Wed, 14 Oct 2026 00:00:00 GMT</pubDate><description>Schemity imported Mastodon's and Saleor's PostgreSQL schemas and wrote them back. Before the fixes PostgreSQL refused the SQL it wrote; after, every key, index and probe matches.</description></item>
<item><title>MySQL UNSIGNED Primary Keys: Signed or Unsigned, and How to Fix Error 3780 When They Mix</title><link>https://schemity.com/blog/mysql-unsigned-vs-signed-primary-key/</link><guid isPermaLink="true">https://schemity.com/blog/mysql-unsigned-vs-signed-primary-key/</guid><pubDate>Tue, 13 Oct 2026 00:00:00 GMT</pubDate><description>Schemity tested signed vs UNSIGNED keys on MySQL 8.4: same storage, but a mismatched foreign key fails with error 3780. Which to pick, and what a switch costs.</description></item>
<item><title>Foreign Keys Between Modules in a Modular Monolith: Keep, Restrict, or Drop?</title><link>https://schemity.com/blog/foreign-keys-between-modules-modular-monolith/</link><guid isPermaLink="true">https://schemity.com/blog/foreign-keys-between-modules-modular-monolith/</guid><pubDate>Fri, 09 Oct 2026 00:00:00 GMT</pubDate><description>Schemity's guide to cross-module foreign keys: keep them while modules share a database, never cascade across one, and the query that finds them all.</description></item>
<item><title>PostgreSQL: Changing an Integer Column to Boolean - In Place or a New Column, and the Four Errors on the Way</title><link>https://schemity.com/blog/postgres-change-integer-column-to-boolean/</link><guid isPermaLink="true">https://schemity.com/blog/postgres-change-integer-column-to-boolean/</guid><pubDate>Tue, 06 Oct 2026 00:00:00 GMT</pubDate><description>Schemity's guide to turning a Postgres 0/1 integer flag into boolean: the USING clause that works on every width, the errors the cast hits, and which migration to pick.</description></item>
<item><title>What Breaks When a Database Diagram Reaches 1,000 Tables, and What We Redesigned</title><link>https://schemity.com/blog/database-diagram-1000-tables-memory-cpu/</link><guid isPermaLink="true">https://schemity.com/blog/database-diagram-1000-tables-memory-cpu/</guid><pubDate>Mon, 05 Oct 2026 00:00:00 GMT</pubDate><description>Schemity at 1,035 tables and 1,822 relations: what broke, how drawing, line jumps, dragging and export were redesigned, the measured cost, and where it breaks next.</description></item>
<item><title>PostgreSQL Constraint Naming Convention: Which Pattern to Use, and How to Find the Names That Drifted</title><link>https://schemity.com/blog/postgres-constraint-naming-convention/</link><guid isPermaLink="true">https://schemity.com/blog/postgres-constraint-naming-convention/</guid><pubDate>Mon, 05 Oct 2026 00:00:00 GMT</pubDate><description>Schemity's guide to naming Postgres constraints and indexes: the pattern to pick, the 63-byte cut that makes two names collide, and a query for stale names.</description></item>
<item><title>PostgreSQL: Cannot Alter Type of a Column Used by a View - How to Change It, and How to Find Every View in the Way</title><link>https://schemity.com/blog/postgres-alter-column-type-used-by-view/</link><guid isPermaLink="true">https://schemity.com/blog/postgres-alter-column-type-used-by-view/</guid><pubDate>Sat, 03 Oct 2026 00:00:00 GMT</pubDate><description>Schemity's guide to the Postgres view error on a column type change: find every view in the chain, what dropping one loses, and how long readers wait.</description></item>
<item><title>PostgreSQL serial vs identity: Which to Use, and How to Convert Old serial Columns</title><link>https://schemity.com/blog/postgres-serial-vs-identity/</link><guid isPermaLink="true">https://schemity.com/blog/postgres-serial-vs-identity/</guid><pubDate>Sat, 03 Oct 2026 00:00:00 GMT</pubDate><description>Schemity's guide to serial vs identity keys in Postgres: five ways serial misbehaves, tested on 18.3, and the 3 ms conversion that needs no table rewrite.</description></item>
<item><title>Database MCP Server: Should an AI Agent Run SQL or Only Read the Schema?</title><link>https://schemity.com/blog/database-mcp-server-sql-access-or-schema-only/</link><guid isPermaLink="true">https://schemity.com/blog/database-mcp-server-sql-access-or-schema-only/</guid><pubDate>Fri, 02 Oct 2026 00:00:00 GMT</pubDate><description>Schemity's guide to what a database MCP server should let an AI agent do: why a read-only transaction is not a guard, and what to use when the agent needs rows.</description></item>
<item><title>Changing a Column Type in SQLite: The Table Rebuild and What It Deletes</title><link>https://schemity.com/blog/sqlite-change-column-type-table-rebuild/</link><guid isPermaLink="true">https://schemity.com/blog/sqlite-change-column-type-table-rebuild/</guid><pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate><description>SQLite has no ALTER COLUMN TYPE, so the fix is a table rebuild. Schemity's guide to the three things a rebuild quietly deletes, and the script that keeps them.</description></item>
<item><title>ON DELETE SET NULL vs CASCADE vs RESTRICT in PostgreSQL: Which to Use</title><link>https://schemity.com/blog/postgres-on-delete-set-null-vs-cascade/</link><guid isPermaLink="true">https://schemity.com/blog/postgres-on-delete-set-null-vs-cascade/</guid><pubDate>Wed, 30 Sep 2026 00:00:00 GMT</pubDate><description>Schemity's guide to picking a Postgres foreign key's ON DELETE action: what each does to the child row, and the three ways SET NULL is accepted and then fails a delete.</description></item>
<item><title>A PostgreSQL Role That Reads the Schema but Not the Data: What to Grant</title><link>https://schemity.com/blog/postgres-role-read-schema-not-data/</link><guid isPermaLink="true">https://schemity.com/blog/postgres-role-read-schema-not-data/</guid><pubDate>Tue, 29 Sep 2026 00:00:00 GMT</pubDate><description>A Postgres role with only USAGE on a schema sees every table, key and view definition but no rows. What to grant, what it still learns, and how Schemity uses it.</description></item>
<item><title>Adding a NOT NULL Column to a Large PostgreSQL Table: Constant Default, Backfill or NOT VALID</title><link>https://schemity.com/blog/postgres-add-not-null-column-large-table/</link><guid isPermaLink="true">https://schemity.com/blog/postgres-add-not-null-column-large-table/</guid><pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate><description>A NOT NULL column on a 5M-row Postgres table took 10 ms with a constant default and 10.4 s with a volatile one. The safe steps, and how Schemity flags the lock first.</description></item>
<item><title>PostgreSQL numeric vs double precision vs money: Which Type to Use for Prices</title><link>https://schemity.com/blog/postgres-numeric-vs-double-precision-vs-money/</link><guid isPermaLink="true">https://schemity.com/blog/postgres-numeric-vs-double-precision-vs-money/</guid><pubDate>Sun, 27 Sep 2026 00:00:00 GMT</pubDate><description>Use numeric for prices in PostgreSQL. Why a float sum changed on every run over 1M rows, what money gets wrong, and how Schemity shows what the migration costs.</description></item>
<item><title>PostgreSQL Generated Column vs Trigger: Which to Use for a Derived Column</title><link>https://schemity.com/blog/postgres-generated-column-vs-trigger/</link><guid isPermaLink="true">https://schemity.com/blog/postgres-generated-column-vs-trigger/</guid><pubDate>Sat, 26 Sep 2026 00:00:00 GMT</pubDate><description>Generated column or trigger for a derived value in Postgres? What each costs on 1M rows, when only a trigger works, and how Schemity shows which columns are computed.</description></item>
<item><title>PostgreSQL Unique Constraint vs Unique Index: Which to Use, and How to Add One Without Locking the Table</title><link>https://schemity.com/blog/postgres-unique-constraint-vs-unique-index/</link><guid isPermaLink="true">https://schemity.com/blog/postgres-unique-constraint-vs-unique-index/</guid><pubDate>Fri, 25 Sep 2026 00:00:00 GMT</pubDate><description>In Postgres, adding a unique constraint blocks reads and writes; a unique index blocks writes. Which to use, and how Schemity flags the lock before it runs.</description></item>
<item><title>Polymorphic Associations in PostgreSQL: One commentable_id Column or a Foreign Key per Table?</title><link>https://schemity.com/blog/postgres-polymorphic-associations/</link><guid isPermaLink="true">https://schemity.com/blog/postgres-polymorphic-associations/</guid><pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate><description>PostgreSQL cannot enforce a polymorphic commentable_id. Prefer a foreign key per parent or a supertype table; Schemity draws the polymorphic column as virtual relations.</description></item>
<item><title>Should an AI Agent Write Your Database Migrations? Review the Schema Change, Not the SQL</title><link>https://schemity.com/blog/should-ai-agents-write-database-migrations/</link><guid isPermaLink="true">https://schemity.com/blog/should-ai-agents-write-database-migrations/</guid><pubDate>Tue, 22 Sep 2026 00:00:00 GMT</pubDate><description>Let an AI agent write the migration, but review what it does to the schema rather than its SQL. Schemity draws an agent's migration file as a read-only change preview, so a rename shipped as DROP and ADD shows up as a dropped column.</description></item>
<item><title>Reverse Engineering a Legacy Database: Let an AI Agent Group the ERD by Domain</title><link>https://schemity.com/blog/reverse-engineer-legacy-database-group-by-domain/</link><guid isPermaLink="true">https://schemity.com/blog/reverse-engineer-legacy-database-group-by-domain/</guid><pubDate>Sun, 20 Sep 2026 00:00:00 GMT</pubDate><description>A reverse engineered ERD shows every table and no domains, because the domains live in the code. Schemity lets an AI agent read that code, group the diagram into legends over MCP, and hand you each step to review.</description></item>
<item><title>PostgreSQL varchar vs text: When a Length Limit Is Worth Declaring</title><link>https://schemity.com/blog/postgres-varchar-vs-text/</link><guid isPermaLink="true">https://schemity.com/blog/postgres-varchar-vs-text/</guid><pubDate>Fri, 18 Sep 2026 00:00:00 GMT</pubDate><description>On PostgreSQL, text and varchar(n) store strings identically, so a length limit is a rule, not an optimization. Schemity's impact analysis shows which later limit changes lose data or rewrite the table.</description></item>
<item><title>Foreign Key Constraints: When Skipping Them Is Right, and What It Costs Your Schema</title><link>https://schemity.com/blog/should-you-use-foreign-key-constraints/</link><guid isPermaLink="true">https://schemity.com/blog/should-you-use-foreign-key-constraints/</guid><pubDate>Wed, 16 Sep 2026 00:00:00 GMT</pubDate><description>Declare foreign keys wherever your database and migration tooling allow them; where they cannot, skip the enforcement but not the documentation. Schemity draws undeclared relations as virtual ones and counts orphans before you add the keys.</description></item>
<item><title>PostgreSQL UUID vs Bigint Primary Keys: How to Choose, and What uuidv7 Changed</title><link>https://schemity.com/blog/postgres-uuid-vs-bigint-primary-key/</link><guid isPermaLink="true">https://schemity.com/blog/postgres-uuid-vs-bigint-primary-key/</guid><pubDate>Sat, 29 Aug 2026 00:00:00 GMT</pubDate><description>Bigint when one database issues every id, UUIDv7 when something else does, and UUIDv4 as a primary key in neither case. Schemity's fk-type-mismatch lint rule finds the key types that already disagree across your schema.</description></item>
<item><title>Column Comments in PostgreSQL and MySQL: How to Document Columns Without a Migration</title><link>https://schemity.com/blog/column-comments-without-a-migration/</link><guid isPermaLink="true">https://schemity.com/blog/column-comments-without-a-migration/</guid><pubDate>Thu, 20 Aug 2026 00:00:00 GMT</pubDate><description>A column comment costs a full migration cycle, and on MySQL it means restating the entire column definition. Schemity keeps field descriptions in the diagram, so documenting a column produces no SQL to review.</description></item>
<item><title>Circular Foreign Keys: How to Insert the First Row, and How to Find the Cycles You Cannot See</title><link>https://schemity.com/blog/circular-foreign-keys-first-row-cannot-be-inserted/</link><guid isPermaLink="true">https://schemity.com/blog/circular-foreign-keys-first-row-cannot-be-inserted/</guid><pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate><description>NOT NULL foreign keys that point at each other accept no rows. Three ways to insert the first one, and how Schemity's lint finds every cycle before a fresh seed does.</description></item>
<item><title>PostgreSQL timestamp vs timestamptz: Which to Use and How to Find the Wrong Ones</title><link>https://schemity.com/blog/postgres-timestamp-vs-timestamptz/</link><guid isPermaLink="true">https://schemity.com/blog/postgres-timestamp-vs-timestamptz/</guid><pubDate>Mon, 17 Aug 2026 00:00:00 GMT</pubDate><description>timestamptz records an instant, timestamp records a reading on a clock, and your ORM probably chose the second one. Schemity's timestamp-not-timestamptz lint rule finds every column that already has the wrong type, offline, in the ERD.</description></item>
<item><title>Export a Database Data Dictionary: HTML, Markdown and Excel from Your ERD</title><link>https://schemity.com/blog/export-database-data-dictionary/</link><guid isPermaLink="true">https://schemity.com/blog/export-database-data-dictionary/</guid><pubDate>Sat, 15 Aug 2026 00:00:00 GMT</pubDate><description>Schemity exports the diagram as a data dictionary in HTML, Markdown and Excel, covering every column, constraint and relationship, and closes by naming what has no description yet.</description></item>
<item><title>Schema Linting vs Migration Linting: Which Database Problems Each One Can See</title><link>https://schemity.com/blog/schema-linting-vs-migration-linting/</link><guid isPermaLink="true">https://schemity.com/blog/schema-linting-vs-migration-linting/</guid><pubDate>Thu, 13 Aug 2026 00:00:00 GMT</pubDate><description>Migration linters read the statement you are about to run. Schemity's schema lint reads the model you already have - twenty-seven rules checked against the ERD and marked on the diagram itself, offline.</description></item>
<item><title>Unique Constraints on Nullable Columns: What They Enforce and What They Exempt</title><link>https://schemity.com/blog/unique-constraints-and-nullable-columns/</link><guid isPermaLink="true">https://schemity.com/blog/unique-constraints-and-nullable-columns/</guid><pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate><description>A unique constraint covers only the rows where every column in the key has a value. Sometimes that exemption is the design and sometimes it is a hole. Schemity's schema lint reports which rows are exempt as a fact, not a verdict.</description></item>
<item><title>Postgres Array Column vs Junction Table: What Each One Does to Your ERD</title><link>https://schemity.com/blog/postgres-array-column-vs-junction-table/</link><guid isPermaLink="true">https://schemity.com/blog/postgres-array-column-vs-junction-table/</guid><pubDate>Thu, 06 Aug 2026 00:00:00 GMT</pubDate><description>An array of IDs is a many-to-many relationship with no foreign key and no line on the diagram. Schemity renders PostgreSQL array types as real types and generates the junction table from one N:N gesture when the list is a relationship.</description></item>
<item><title>DrawSQL Alternative: Database Design Software With No Table Limits</title><link>https://schemity.com/blog/drawsql-alternative/</link><guid isPermaLink="true">https://schemity.com/blog/drawsql-alternative/</guid><pubDate>Tue, 04 Aug 2026 00:00:00 GMT</pubDate><description>DrawSQL has no live database connection and caps tables on every plan. Schemity is the offline DrawSQL alternative that reverse engineers your database, a one-time purchase.</description></item>
<item><title>You Cannot Tell Which of Your ERD Files Are Under Version Control</title><link>https://schemity.com/blog/which-erd-files-are-under-version-control/</link><guid isPermaLink="true">https://schemity.com/blog/which-erd-files-are-under-version-control/</guid><pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate><description>Schemity marks every workspace whose folder sits inside a Git repository with a branch icon, so which database diagrams are version controlled is visible in the workspace list instead of assumed.</description></item>
<item><title>Why Schemity Has No Zoom: Fuzzy Search and a Minimap Instead</title><link>https://schemity.com/blog/why-schemity-has-no-zoom/</link><guid isPermaLink="true">https://schemity.com/blog/why-schemity-has-no-zoom/</guid><pubDate>Mon, 03 Aug 2026 00:00:00 GMT</pubDate><description>Schemity deliberately has no zoom control. Every zoom changes the geography of the diagram and costs you the mental work of re-finding where you were, so a minimap and fuzzy search do the job instead.</description></item>
<item><title>Database Views in Your ERD: Read-Only Entities, Not Fake Tables</title><link>https://schemity.com/blog/database-views-in-your-erd/</link><guid isPermaLink="true">https://schemity.com/blog/database-views-in-your-erd/</guid><pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate><description>Most database design software ignores database views or draw them as editable tables. Schemity renders views and materialized views as read-only entities with italic names, importable into context views.</description></item>
<item><title>SSMS Database Diagrams: Your ERD Is Trapped Inside the Database It Documents</title><link>https://schemity.com/blog/ssms-database-diagrams-trapped-inside-the-database/</link><guid isPermaLink="true">https://schemity.com/blog/ssms-database-diagrams-trapped-inside-the-database/</guid><pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate><description>SSMS stores database diagrams as binary rows in sysdiagrams - no file, no Git, no export. Schemity reverse engineers SQL Server into a local JSON diagram you own, version, and share.</description></item>
<item><title>Supabase Schema Diagram: Get an ERD You Can Keep, Not a Dashboard View</title><link>https://schemity.com/blog/supabase-schema-diagram/</link><guid isPermaLink="true">https://schemity.com/blog/supabase-schema-diagram/</guid><pubDate>Thu, 30 Jul 2026 00:00:00 GMT</pubDate><description>Supabase Studio's Schema Visualizer shows one schema at a time and keeps your layout in one browser's localStorage. Schemity connects to the underlying Postgres, reverse engineers a complete ERD, and stores it as JSON you own.</description></item>
<item><title>ON DELETE CASCADE Is Invisible in Your ERD and in Your Database Logs</title><link>https://schemity.com/blog/on-delete-cascade-is-invisible-in-your-erd/</link><guid isPermaLink="true">https://schemity.com/blog/on-delete-cascade-is-invisible-in-your-erd/</guid><pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate><description>Referential actions decide which rows a single DELETE destroys, yet most database design software never store them and MySQL never logs them. Schemity draws every ON DELETE CASCADE relationship with a bold crow's foot, so the cascade is visible on the canvas.</description></item>
<item><title>Postgres Enum vs Check Constraint vs Lookup Table for a Status Column</title><link>https://schemity.com/blog/postgres-enum-vs-check-constraint-vs-lookup-table/</link><guid isPermaLink="true">https://schemity.com/blog/postgres-enum-vs-check-constraint-vs-lookup-table/</guid><pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate><description>Native Postgres enums make every value-set change a locking migration, and no diagram tool shows what the allowed values are. Schemity renders IN check constraints on the canvas and puts value-set changes in a reviewable migration SQL diff.</description></item>
<item><title>Lucidchart ERD Alternative: Database Design Software That Connects to Your Database</title><link>https://schemity.com/blog/lucidchart-erd-alternative/</link><guid isPermaLink="true">https://schemity.com/blog/lucidchart-erd-alternative/</guid><pubDate>Fri, 24 Jul 2026 00:00:00 GMT</pubDate><description>Lucidchart has no live database connection - schema arrives as a hand-exported CSV. Schemity is the Lucidchart ERD alternative that reverse engineers your database directly.</description></item>
<item><title>Comparing Staging and Production Database Schemas Side by Side</title><link>https://schemity.com/blog/comparing-staging-and-production-database-schemas/</link><guid isPermaLink="true">https://schemity.com/blog/comparing-staging-and-production-database-schemas/</guid><pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate><description>Staging and production schemas drift apart, and a text diff of two SQL dumps won't show you where. Schemity opens both environments as diagrams in one workspace and makes the gap visible on the canvas.</description></item>
<item><title>Roles and Permissions Table Design: Why Permissions Are Not Tenant-Scoped</title><link>https://schemity.com/blog/design-roles-and-permissions-for-multi-tenant-rbac/</link><guid isPermaLink="true">https://schemity.com/blog/design-roles-and-permissions-for-multi-tenant-rbac/</guid><pubDate>Tue, 21 Jul 2026 00:00:00 GMT</pubDate><description>Roles carry a tenant_id and permissions do not, and that one asymmetry decides the whole design. How the roles, permissions, and junction tables are derived, why your routing table is the source of truth for what permissions exist, and how middleware turns a route into an authorization check.</description></item>
<item><title>Many-to-Many Relationships and Junction Tables: How to Model N:N in an ERD</title><link>https://schemity.com/blog/many-to-many-shouldnt-mean-hand-building-the-junction-table/</link><guid isPermaLink="true">https://schemity.com/blog/many-to-many-shouldnt-mean-hand-building-the-junction-table/</guid><pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate><description>A relational database cannot store a many-to-many relationship directly - it needs a junction table holding one foreign key per parent, which turns one N:N into two 1:N relationships. How to model it, and when the junction takes a composite primary key versus its own id.</description></item>
<item><title>Why Database Design Software Draws Your 1:1 Relationship as 1:N</title><link>https://schemity.com/blog/why-erd-tools-draw-1-1-relationships-as-1-n/</link><guid isPermaLink="true">https://schemity.com/blog/why-erd-tools-draw-1-1-relationships-as-1-n/</guid><pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate><description>database design software misdraws 1:1 relationships as 1:N because they ignore unique constraints. Schemity derives crow's foot cardinality from the foreign key's uniqueness, so the diagram cannot disagree with the schema.</description></item>
<item><title>Your DDD Context Map Is Already in Your Foreign Keys</title><link>https://schemity.com/blog/your-ddd-context-map-is-already-in-your-foreign-keys/</link><guid isPermaLink="true">https://schemity.com/blog/your-ddd-context-map-is-already-in-your-foreign-keys/</guid><pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate><description>Schemity's Context Map derives a DDD context map from the schema itself: each context view becomes a node, and every dependency arrow is backed by the exact foreign keys that create it.</description></item>
<item><title>Why Your ERD Export Turns Blurry - and How SVG Export Fixes It</title><link>https://schemity.com/blog/why-your-erd-export-turns-blurry/</link><guid isPermaLink="true">https://schemity.com/blog/why-your-erd-export-turns-blurry/</guid><pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate><description>Raster ERD exports blur, crop, or balloon in size. Schemity, database design software, exports crisp SVG or Mermaid text of the whole diagram or a focused context view - readable at any zoom.</description></item>
<item><title>The Data Dictionary Should Live in the ERD, Not in a Spreadsheet</title><link>https://schemity.com/blog/the-data-dictionary-should-live-in-the-erd/</link><guid isPermaLink="true">https://schemity.com/blog/the-data-dictionary-should-live-in-the-erd/</guid><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate><description>Schemity attaches markdown descriptions to entities, legends, and context views, so what your tables mean lives inside the diagram - not in a spreadsheet or wiki that goes stale.</description></item>
<item><title>DbSchema Alternative: Database Design Software That Starts in Seconds</title><link>https://schemity.com/blog/schemity-vs-dbschema/</link><guid isPermaLink="true">https://schemity.com/blog/schemity-vs-dbschema/</guid><pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate><description>A DbSchema alternative at less than half the price: Schemity is database design software with JSON-in-Git storage and an MCP server for AI agents, not a full database IDE.</description></item>
<item><title>You Don't Need a Diagram of All 800 Tables</title><link>https://schemity.com/blog/you-dont-need-a-diagram-of-all-800-tables/</link><guid isPermaLink="true">https://schemity.com/blog/you-dont-need-a-diagram-of-all-800-tables/</guid><pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate><description>Inherited a huge undocumented database? A full-schema poster is unreadable by design. Reverse engineer it into database design software, then carve it into context views - small sub-diagrams people actually use, offline and on your own machine.</description></item>
<item><title>ERD-First Database Design: One 60-Entity Schema, Sketch to Production</title><link>https://schemity.com/blog/design-first-ship-by-context/</link><guid isPermaLink="true">https://schemity.com/blog/design-first-ship-by-context/</guid><pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate><description>A real workflow for a 60-entity schema: design the whole model up front, implement it context by context with AI-generated code, then let re-sync keep the diagram honest - in database design software that never writes to your database.</description></item>
<item><title>Keeping Your ERD Updated Shouldn't Be a Second Job</title><link>https://schemity.com/blog/keeping-your-erd-updated-shouldnt-be-a-second-job/</link><guid isPermaLink="true">https://schemity.com/blog/keeping-your-erd-updated-shouldnt-be-a-second-job/</guid><pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate><description>ERDs go stale the moment the schema moves on, and re-importing destroys your layout. Schemity re-syncs the diagram from the live database every time you open it - database design software where the documentation maintains itself.</description></item>
<item><title>Switching Database Design Software Shouldn't Mean Starting Over</title><link>https://schemity.com/blog/switching-erd-tools-shouldnt-mean-starting-over/</link><guid isPermaLink="true">https://schemity.com/blog/switching-erd-tools-shouldnt-mean-starting-over/</guid><pubDate>Tue, 14 Jul 2026 00:00:00 GMT</pubDate><description>Most diagram tools let your schema out only as a picture or bare DDL. Schemity opens DBML and four modelers' files, exports SQL and DBML, and stores plain JSON.</description></item>
<item><title>Database Design Software Free-Tier Limits: 15-Table and 60-Object Caps Distort Models</title><link>https://schemity.com/blog/your-erd-tool-shouldnt-count-your-tables/</link><guid isPermaLink="true">https://schemity.com/blog/your-erd-tool-shouldnt-count-your-tables/</guid><pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate><description>Free-tier database design software caps you at 15 tables or 60 objects and paywall private diagrams, so the pricing page ends up shaping your data model. Database design software with local files has no meter to hit.</description></item>
<item><title>How to Keep ERD Relationship Lines Readable: Hops, Waypoints, Colors</title><link>https://schemity.com/blog/you-shouldnt-have-to-guess-which-line-goes-where/</link><guid isPermaLink="true">https://schemity.com/blog/you-shouldnt-have-to-guess-which-line-goes-where/</guid><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate><description>When relationship lines cross, most schema visualizers make you guess which one you were following. Schemity - database design software with line hops at crossings, click-to-highlight relationships, ERD custom waypoints, and color-coded relationships - keeps every line traceable in a crowded diagram.</description></item>
<item><title>AI Database Design With a Local Model: Schema Help That Never Leaves Your Machine</title><link>https://schemity.com/blog/ai-schema-help-that-never-leaves-your-machine/</link><guid isPermaLink="true">https://schemity.com/blog/ai-schema-help-that-never-leaves-your-machine/</guid><pubDate>Sat, 11 Jul 2026 00:00:00 GMT</pubDate><description>Connect a local-model MCP host to Schemity's MCP server for private AI database design with zero cloud calls - for teams where cloud AI is banned outright.</description></item>
<item><title>Supabase Studio and pgAdmin Won't Give You a Schema Diagram You Own</title><link>https://schemity.com/blog/the-schema-diagram-your-dashboard-wont-let-you-keep/</link><guid isPermaLink="true">https://schemity.com/blog/the-schema-diagram-your-dashboard-wont-let-you-keep/</guid><pubDate>Fri, 10 Jul 2026 00:00:00 GMT</pubDate><description>Supabase Studio draws your schema but keeps the layout in one browser's localStorage; pgAdmin's exports follow the UI theme. Database design software that stores the diagram as local JSON turns a disposable rendering into a Supabase schema diagram you actually own - offline, versioned in Git, arranged once.</description></item>
<item><title>Finding a Column Shouldn't Take a SQL Query</title><link>https://schemity.com/blog/finding-a-column-shouldnt-take-a-sql-query/</link><guid isPermaLink="true">https://schemity.com/blog/finding-a-column-shouldnt-take-a-sql-query/</guid><pubDate>Thu, 09 Jul 2026 00:00:00 GMT</pubDate><description>Millions of developers query information_schema just to find which table holds a column. Database design software with fuzzy search across entity and field names answers 'where is it, and what are its rules' from whatever fragment of the name you remember - offline, on your own machine.</description></item>
<item><title>Your ERD Shouldn't Be Able to Just Disappear</title><link>https://schemity.com/blog/your-erd-shouldnt-be-able-to-just-disappear/</link><guid isPermaLink="true">https://schemity.com/blog/your-erd-shouldnt-be-able-to-just-disappear/</guid><pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate><description>Cloud diagram tools can lose your ERD - one day it is just gone from the list, and recovery means a support ticket or a paid tier. Database design software keeps diagrams as plain JSON files on your machine, so your history is a git log away.</description></item>
<item><title>ChartDB Alternative: Database Design Software That Runs on Your Machine</title><link>https://schemity.com/blog/schemity-vs-chartdb/</link><guid isPermaLink="true">https://schemity.com/blog/schemity-vs-chartdb/</guid><pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate><description>A ChartDB alternative that runs offline: Schemity is database design software with an MCP server for AI agents, diagrams stored as JSON in Git, and a one-time purchase.</description></item>
<item><title>Entity Templates: How to Stop Schema Naming and Field-Order Drift</title><link>https://schemity.com/blog/why-no-two-tables-in-your-schema-look-alike/</link><guid isPermaLink="true">https://schemity.com/blog/why-no-two-tables-in-your-schema-look-alike/</guid><pubDate>Mon, 06 Jul 2026 00:00:00 GMT</pubDate><description>Schema drift starts at the blank entity. How entity templates and convention-aware field placement in database design software keeps every table consistent - ERD best practices for software engineers.</description></item>
<item><title>Documenting Your Production Database Shouldn't Feel Dangerous</title><link>https://schemity.com/blog/documenting-production-shouldnt-feel-dangerous/</link><guid isPermaLink="true">https://schemity.com/blog/documenting-production-shouldnt-feel-dangerous/</guid><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate><description>How to document a production database schema without fear: database design software that connects through SSH tunnels, keeps passwords in your OS keychain, and never writes a single statement without your review.</description></item>
<item><title>Your Client's Schema Doesn't Belong in Your Cloud Account</title><link>https://schemity.com/blog/your-clients-schema-doesnt-belong-in-your-cloud-account/</link><guid isPermaLink="true">https://schemity.com/blog/your-clients-schema-doesnt-belong-in-your-cloud-account/</guid><pubDate>Sat, 04 Jul 2026 00:00:00 GMT</pubDate><description>database design software for consultants and client work: one workspace per client, stored as local folders you can hand over or delete when the engagement ends. Offline, one-time purchase, no subscription.</description></item>
<item><title>Stop Hand-Translating Between SQL and Your ERD</title><link>https://schemity.com/blog/stop-hand-translating-between-sql-and-your-erd/</link><guid isPermaLink="true">https://schemity.com/blog/stop-hand-translating-between-sql-and-your-erd/</guid><pubDate>Fri, 03 Jul 2026 00:00:00 GMT</pubDate><description>Generate an ERD from a SQL dump, import CREATE TABLE statements in one paste, and turn diagram edits into a reviewed migration SQL diff - all inside database design software.</description></item>
<item><title>AI Help With Your Database Design, Without a Vendor Cloud in the Middle</title><link>https://schemity.com/blog/ai-database-design-without-the-cloud/</link><guid isPermaLink="true">https://schemity.com/blog/ai-database-design-without-the-cloud/</guid><pubDate>Thu, 02 Jul 2026 00:00:00 GMT</pubDate><description>Private AI database design over MCP: Claude Code or Cursor reads your schema through Schemity on your machine and stages edits you review. No new AI vendor to approve.</description></item>
<item><title>You Cannot Judge Coupling and Cohesion From the Same View</title><link>https://schemity.com/blog/you-cannot-judge-coupling-and-cohesion-from-the-same-view/</link><guid isPermaLink="true">https://schemity.com/blog/you-cannot-judge-coupling-and-cohesion-from-the-same-view/</guid><pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate><description>Low coupling and high cohesion are two questions at two scales. See why the main ERD perspective and a database context view answer different questions about bounded contexts, and how sub-diagrams in your ERD become the tool for judging schema health.</description></item>
<item><title>Database Context Views Should Show the Relationships They Hide</title><link>https://schemity.com/blog/a-view-owes-you-back-the-context-it-removes/</link><guid isPermaLink="true">https://schemity.com/blog/a-view-owes-you-back-the-context-it-removes/</guid><pubDate>Fri, 05 Jun 2026 00:00:00 GMT</pubDate><description>Database context views and ERD perspectives give focus by removing noise - but they also take. Here is what a sub-diagram in your database design software owes back when it hides the wider picture.</description></item>
<item><title>Crow's Foot Notation in ER Diagrams: Every Symbol Mapped to SQL</title><link>https://schemity.com/blog/you-have-been-reading-erd-notation-wrong/</link><guid isPermaLink="true">https://schemity.com/blog/you-have-been-reading-erd-notation-wrong/</guid><pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate><description>A bar means one, a crow's foot means many, a circle means zero is allowed. This guide maps every crow's foot symbol in an ER diagram to the SQL constraint it implies.</description></item>
<item><title>Multi-Tenant RBAC Schema Design: 7 Tables, Step by Step (With ERD)</title><link>https://schemity.com/blog/design-data-model-for-multi-tenant-rbac/</link><guid isPermaLink="true">https://schemity.com/blog/design-data-model-for-multi-tenant-rbac/</guid><pubDate>Fri, 10 Apr 2026 00:00:00 GMT</pubDate><description>The complete multi-tenant RBAC schema is seven tables: tenants, users, members, roles, permissions, and two junction tables. Here is the full ERD, and the step-by-step derivation of the identity half - why a member is not a user, and why it needs its own id.</description></item>
<item><title>dbdiagram.io Alternative: Database Design Software, One-Time Purchase</title><link>https://schemity.com/blog/schemity-vs-dbdiagram-io/</link><guid isPermaLink="true">https://schemity.com/blog/schemity-vs-dbdiagram-io/</guid><pubDate>Wed, 01 Apr 2026 00:00:00 GMT</pubDate><description>dbdiagram.io limits its free tier to 10 diagrams. Schemity is the offline dbdiagram.io alternative: private by default, diagrams as JSON in your own Git repo, a one-time purchase.</description></item>
<item><title>Database Design Software With Custom Waypoints and Color-Coded Relationships</title><link>https://schemity.com/blog/erd-design-with-joy/</link><guid isPermaLink="true">https://schemity.com/blog/erd-design-with-joy/</guid><pubDate>Tue, 31 Mar 2026 00:00:00 GMT</pubDate><description>Most database design software treats schema work as a chore. What if database design software got out of the way - with ERD custom waypoints, color-coded relationships, and opinionated defaults that let the thinking take center stage?</description></item>
<item><title>Database Design Software Built for Software Engineers Who Touch a Database</title><link>https://schemity.com/blog/erd-tool-built-for-software-engineers/</link><guid isPermaLink="true">https://schemity.com/blog/erd-tool-built-for-software-engineers/</guid><pubDate>Mon, 30 Mar 2026 00:00:00 GMT</pubDate><description>Import a workspace from anywhere on your machine and treat your ERD like infrastructure - version-controlled in Git next to the code and kept as the single source of truth.</description></item>
<item><title>ERD Check Constraints: Show Business Rules in Your Diagram</title><link>https://schemity.com/blog/your-erd-is-hiding-your-domain-model/</link><guid isPermaLink="true">https://schemity.com/blog/your-erd-is-hiding-your-domain-model/</guid><pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate><description>ERD check constraints support turns your schema into living documentation. See how domain-driven design database schema patterns surface value objects, bounded contexts, and business rules directly in your ERD.</description></item>
<item><title>Keyboard-First ERD Design: Build a Schema Without Touching the Mouse</title><link>https://schemity.com/blog/your-erd-tool-cant-keep-up-with-your-thinking/</link><guid isPermaLink="true">https://schemity.com/blog/your-erd-tool-cant-keep-up-with-your-thinking/</guid><pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate><description>The best ideas happen fast. Most database design software makes you slow down. Database design software built for the speed of thought - keyboard-first, drag-to-relate, auto junction tables, zero friction.</description></item>
<item><title>The ERD that lives in your Git repo</title><link>https://schemity.com/blog/erd-lives-in-your-git-repo/</link><guid isPermaLink="true">https://schemity.com/blog/erd-lives-in-your-git-repo/</guid><pubDate>Sat, 14 Mar 2026 00:00:00 GMT</pubDate><description>Stop exporting PNGs to Confluence. Database design software stores your database diagrams as JSON files you version control with the code and keep as the single source of truth.</description></item>
</channel></rss>