A PostgreSQL database schema linter that identifies schema problems like missing primary keys and unindexed foreign keys.
dbcritic is a PostgreSQL database schema linter that automatically identifies schema problems and configuration issues. It connects to a PostgreSQL database and runs a series of checks to detect missing primary keys, unindexed foreign keys, improper timestamp types, and other common anti-patterns that can compromise data integrity and performance.
Database administrators, backend developers, and DevOps engineers working with PostgreSQL databases who need to maintain schema quality and prevent performance issues.
Developers choose dbcritic for its focused, rule-based approach to schema validation, providing automated checks for specific PostgreSQL best practices without requiring manual inspection of complex database schemas.
dbcritic is a command-line tool that analyzes PostgreSQL database schemas to detect potential problems and anti-patterns. It helps database administrators and developers maintain schema quality by automatically checking for common issues that can impact performance, data integrity, and maintainability.
timestamptz (timezone-aware) rather than plain timestamp to avoid timezone-related bugs.bigint type to prevent overflow issues as data grows.TimeZone parameter is set to a sensible value for consistent time handling.dbcritic takes a pragmatic, rule-based approach to database schema analysis, focusing on actionable issues that directly affect database reliability and performance.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Performs predefined checks for critical issues like missing primary keys and unindexed foreign keys, as detailed in the README's check list.
Validates PostgreSQL-specific settings such as timestamptz usage and TimeZone configuration, directly addressing common performance and integrity problems.
Allows silencing specific issues via a .dbcriticrc file, enabling teams to ignore known or acceptable problems without modifying the schema.
Uses standard libpq environment variables and a minimal command-line interface, making it easy to incorporate into existing workflows or scripts.
The README acknowledges that the output is quite verbose and repetitive, which can be inefficient for users preferring compact reports.
The repository has been archived, meaning no further development, bug fixes, or feature additions will occur, limiting its long-term viability.
Only implements five checks, with the README stating that many more opportunities for checks exist, making it less comprehensive than other tools.