ClickHouse.Facades
1.0.0
See the version list below for details.
dotnet add package ClickHouse.Facades --version 1.0.0
NuGet\Install-Package ClickHouse.Facades -Version 1.0.0
<PackageReference Include="ClickHouse.Facades" Version="1.0.0" />
paket add ClickHouse.Facades --version 1.0.0
#r "nuget: ClickHouse.Facades, 1.0.0"
// Install ClickHouse.Facades as a Cake Addin
#addin nuget:?package=ClickHouse.Facades&version=1.0.0
// Install ClickHouse.Facades as a Cake Tool
#tool nuget:?package=ClickHouse.Facades&version=1.0.0
ClickHouse.Facades
Raw SQL migrations and contexts for ClickHouse referencing ClickHouse.Client
Key Features
- Migrations: allows you to perform raw SQL migrations on your ClickHouse database.
- Rollback support
- Fully async contract
- Contexts: provides a way to work with ClickHouse contexts, allowing you to organize your database operations in a structured manner.
- Provides all the features of the ClickHouse.Client package
- Fully async contract
Migrations Usage
Implement IClickHouseMigrationInstructions
and IClickHouseMigrationsLocator
(example)
and register them as DI services
services.AddClickHouseMigrations<ClickHouseMigrationInstructions, ClickHouseMigrationsLocator>();
You can request IClickHouseMigrator
service or use IServiceProviderExtensions
to manage migrations
await serviceProvider.ClickHouseMigrateAsync();
Add Migrations
Add ClickHouseMigration
inheritor with ClickHouseMigration
attribute
[ClickHouseMigration(202310240941, "ExampleMigration")]
public class ExampleMigration : ClickHouseMigration
{
protected override void Up(ClickHouseMigrationBuilder migrationBuilder)
{
// migrationBuilder.AddRawSqlStatement("create table if not exists ...")
}
protected override void Down(ClickHouseMigrationBuilder migrationBuilder)
{
// migrationBuilder.AddRawSqlStatement("drop table if exists ...")
}
}
The index of ClickHouseMigrationAttribute
is used to order migrations. It's best to always use idempotent statements (for example with if [not] exists
) since migration may fail.
Context Usage
Implement the following class inheritors: ClickHouseContext<TContext>
, ClickHouseContextFactory<TContext>
, ClickHouseFacade<TContext>
(example)
and register them as DI services
services.AddClickHouseContext<ExampleContext, ExampleContextFactory>(builder => builder
.AddFacade<UsersFacade>()
.AddFacade<OrdersFacade>());
Request IClickHouseContextFactory<TContext>
service to create context
await using var context = contextFactory.CreateContext();
var ordersFacade = context.GetFacade<OrdersFacade>();
await ordersFacade.GetOrders();
You can create as many contexts as you need with any number of facades. Facades are built via DI and are stateful within context lifetime.
Note: You can perform migrations on your ClickHouse database without the necessity of implementing contexts.
Documentation
Documentation will be presented in repository Wiki (WIP)
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- ClickHouse.Client (>= 6.7.5)
- System.Linq.Async (>= 6.0.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on ClickHouse.Facades:
Package | Downloads |
---|---|
ClickHouse.Facades.Testing
Provides tools for unit testing ClickHouse.Facades components |
GitHub repositories
This package is not used by any popular GitHub repositories.