Pure.RelationalSchema.Storage.PostgreSQL.Creation 0.1.0-preview.0.1.0

This is a prerelease version of Pure.RelationalSchema.Storage.PostgreSQL.Creation.
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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Pure.RelationalSchema.Storage.PostgreSQL.Creation" Version="0.1.0-preview.0.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Pure.RelationalSchema.Storage.PostgreSQL.Creation" Version="0.1.0-preview.0.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Pure.RelationalSchema.Storage.PostgreSQL.Creation" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
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"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Pure.RelationalSchema.Storage.PostgreSQL.Creation@0.1.0-preview.0.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Pure.RelationalSchema.Storage.PostgreSQL.Creation&version=0.1.0-preview.0.1.0&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Pure.RelationalSchema.Storage.PostgreSQL.Creation&version=0.1.0-preview.0.1.0&prerelease
                    
Install as a Cake Tool

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.

.NET build & test publish NuGet NuGet License: MIT

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

Target Frameworks

  • .NET 8
  • .NET 9
  • .NET 10

Installation

dotnet add package Pure.RelationalSchema.Storage.PostgreSQL.Creation
  • Pure.RelationalSchema.Storage.PostgreSQL.Querying — reading rows from tables created by this package
  • Pure.RelationalSchema.Storage.PostgreSQL.Insertion — inserting rows into tables created by this package
Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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