PostgreSQL database anonymization and synthetic data generation tool
Greenmask Overview
Greenmask is a powerful open-source utility that is designed for logical database backup dumping, anonymization, synthetic data generation and restoration. It is stateless and does not require any changes to your database schema. It is designed to be highly customizable and backward-compatible with existing PostgreSQL utilities, fast and reliable.
Is perfect for:
Backup and Restoration: Streamline daily tasks like logical backups, table restoration after truncation, or replacing pg_dump and pg_restore with ease.
Anonymization and Data Masking: Simplify staging environment setup and analytical tasks by anonymizing and transforming backups, ensuring consistent, secure data for faster
Greenmasks has Database subset feature - One of the most advanced subset systems on the market. It supports virtual references, nullable columns, polymorphic references, and can subset even the most complex schemas with cyclic references.
Implemented --blobs and --no-blobs flags for the greenmask dump command. These flags allow inclusion or exclusion of large objects in the dump file. By default, --blobs is enabled. If --no-blobs is specified, large object data will be skipped, and only large object creation commands and ACLs will be included in the dump. #265
Implemented the --no-blobs flag for greenmask restore. If there are any large objects in your database, this will create an empty placeholder instead. #265
Enabled support for all textual data types in all transformers that have a text type #267. Closes #260
Fixed numerous introspection queries that have out of range errors caused by casting OID types to int4 values #264. Closes #265
Refactored the logic of restorers and added test coverage to improve maintainability and stability #268
Introduces --disable-trigers, --use-session-replication-role-replica and --superuser options for restore command. It allows to disable triggers during data section restore #252. Closes feature request #228
Fix skipping unknown type when silent is true #251