Logo
NeoArc Studio

Database Profiles

Database profiles map 12 abstract model types to vendor-specific concrete types with parameterised templates, naming conventions, and fidelity loss detection. Design your model once and generate correct DDL for any database vendor, with 13 built-in vendor templates covering SQL Server, PostgreSQL, MySQL, Oracle, MongoDB, SQLite, Snowflake, MariaDB, CockroachDB, Azure Table Storage, Azure Cosmos DB, Amazon DynamoDB, and Apache Cassandra.

A model property with abstract type string means different things to different databases. In SQL Server, it is NVARCHAR(255). In PostgreSQL, it is VARCHAR(255) or TEXT. In MongoDB, it is simply String. Without a translation layer, architects must either pick a vendor upfront and lose portability, or maintain separate schema definitions for each target database.

Database profiles provide that translation layer. Each profile defines a mapping from abstract types to concrete database types, a naming convention for tables and columns, and parameterised templates that use property constraints to generate precise DDL types. The model stays vendor-agnostic. The profile handles the vendor-specific details.

Abstract Type Mappings

Each profile maps the 12 abstract types to concrete types for a specific database vendor.

Parameterised Templates

Type mappings use parameterised templates that substitute values from property constraints. This allows the concrete type to adapt to each property's specific requirements.

Naming Conventions

Each profile defines a naming convention that controls how entity and property names from the model are transformed when displayed in Data Views or exported as DDL.

Fidelity Loss Detection

Not all databases support all features equally. When switching from one database profile to another, the system checks for fidelity loss and warns about potential issues.

Profile File Format

Database profiles are stored as .neoarc-db-profile.json files in the project. Each profile is self-contained with all type mappings and conventions.

Resolution Flow

When a persistence mode Data View renders an entity, the following resolution chain applies: