Pure.RelationalSchema.Storage.PostgreSQL.Creation
0.1.0-preview.0.1.0
dotnet add package Pure.RelationalSchema.Storage.PostgreSQL.Creation --version 0.1.0-preview.0.1.0
NuGet\Install-Package Pure.RelationalSchema.Storage.PostgreSQL.Creation -Version 0.1.0-preview.0.1.0
<PackageReference Include="Pure.RelationalSchema.Storage.PostgreSQL.Creation" Version="0.1.0-preview.0.1.0" />
<PackageVersion Include="Pure.RelationalSchema.Storage.PostgreSQL.Creation" Version="0.1.0-preview.0.1.0" />
<PackageReference Include="Pure.RelationalSchema.Storage.PostgreSQL.Creation" />
paket add Pure.RelationalSchema.Storage.PostgreSQL.Creation --version 0.1.0-preview.0.1.0
#r "nuget: Pure.RelationalSchema.Storage.PostgreSQL.Creation, 0.1.0-preview.0.1.0"
#:package Pure.RelationalSchema.Storage.PostgreSQL.Creation@0.1.0-preview.0.1.0
#addin nuget:?package=Pure.RelationalSchema.Storage.PostgreSQL.Creation&version=0.1.0-preview.0.1.0&prerelease
#tool nuget:?package=Pure.RelationalSchema.Storage.PostgreSQL.Creation&version=0.1.0-preview.0.1.0&prerelease
Pure.RelationalSchema.Storage.PostgreSQL.Creation
PostgreSQL schema creation (DDL) for the Pure relational schema ecosystem — CREATE SCHEMA, CREATE TABLE, CREATE INDEX and foreign keys generated from an ISchema and executed via IDbConnection.
Overview
Pure.RelationalSchema.Storage.PostgreSQL.Creation turns the abstract relational model defined in Pure.RelationalSchema into a physical PostgreSQL schema. PostgreSqlCreatedSchema lazily generates and executes CREATE SCHEMA, CREATE TABLE, CREATE INDEX and ALTER TABLE … ADD CONSTRAINT statements derived from an ISchema.
This package covers DDL only. Reading and writing rows is handled by the related packages listed below.
Public API
| Type | Kind | Description |
|---|---|---|
PostgreSqlCreatedSchema |
record | ISchema decorator that executes DDL lazily on first property access |
All SQL statement builders are internal.
Usage
using System.Data;
using Npgsql;
using Pure.RelationalSchema.Abstractions.Schema;
using Pure.RelationalSchema.Abstractions.Table;
using Pure.RelationalSchema.Storage.PostgreSQL.Creation;
// schema is your ISchema; connection is an open IDbConnection
IDbConnection connection = new NpgsqlConnection(connectionString);
connection.Open();
ISchema created = new PostgreSqlCreatedSchema(schema, connection);
// DDL runs lazily, the first time Name, Tables or ForeignKeys is accessed.
// Every statement uses IF NOT EXISTS, so running it again is safe.
IEnumerable<ITable> tables = created.Tables;
Naming convention
Schema, table and column identifiers in PostgreSQL are not the model names. Each one is the first 63 hexadecimal characters of the corresponding hash from Pure.RelationalSchema.HashCodes (SchemaHash, TableHash, ColumnHash), which avoids PostgreSQL's identifier length limit and character restrictions.
The Querying and Insertion packages rely on this convention to address the objects created here, so it is part of the contract between the packages.
Dependencies
Pure.RelationalSchema— core relational model abstractions:ISchema,ITable,IForeignKeyand related typesPure.RelationalSchema.HashCodes— hash codes used to derive PostgreSQL object namesPure.Primitives.Abstractions— base interfaces for primitive types (IString,IBool, etc.)Pure.Primitives— concrete primitive type implementationsPure.Primitives.String.Operations— string composition utilities used to build SQL statementsPure.Primitives.Choices— choice typesPure.Primitives.Switches— switch / pattern matching utilities
Target Frameworks
- .NET 8
- .NET 9
- .NET 10
Installation
dotnet add package Pure.RelationalSchema.Storage.PostgreSQL.Creation
Related packages
Pure.RelationalSchema.Storage.PostgreSQL.Querying— reading rows from tables created by this packagePure.RelationalSchema.Storage.PostgreSQL.Insertion— inserting rows into tables created by this package
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Pure.Primitives (>= 3.6.5)
- Pure.Primitives.Abstractions (>= 4.3.0)
- Pure.Primitives.Choices (>= 1.2.2)
- Pure.Primitives.String.Operations (>= 1.5.1)
- Pure.Primitives.Switches (>= 1.1.3)
- Pure.RelationalSchema (>= 2.0.3)
- Pure.RelationalSchema.HashCodes (>= 3.3.0)
-
net8.0
- Pure.Primitives (>= 3.6.5)
- Pure.Primitives.Abstractions (>= 4.3.0)
- Pure.Primitives.Choices (>= 1.2.2)
- Pure.Primitives.String.Operations (>= 1.5.1)
- Pure.Primitives.Switches (>= 1.1.3)
- Pure.RelationalSchema (>= 2.0.3)
- Pure.RelationalSchema.HashCodes (>= 3.3.0)
-
net9.0
- Pure.Primitives (>= 3.6.5)
- Pure.Primitives.Abstractions (>= 4.3.0)
- Pure.Primitives.Choices (>= 1.2.2)
- Pure.Primitives.String.Operations (>= 1.5.1)
- Pure.Primitives.Switches (>= 1.1.3)
- Pure.RelationalSchema (>= 2.0.3)
- Pure.RelationalSchema.HashCodes (>= 3.3.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Pure.RelationalSchema.Storage.PostgreSQL.Creation:
| Package | Downloads |
|---|---|
|
Pure.RelationalSchema.Storage.PostgreSQL
Meta-package that references the Abstractions, Creation, Querying and Insertion packages of the Pure relational schema PostgreSQL storage. It contains no code. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-preview.0.1.0 | 55 | 10/15/2026 |