SchemaSmith 0.0.1-alpha
See the version list below for details.
dotnet tool install --global SchemaSmith --version 0.0.1-alpha
dotnet new tool-manifest # if you are setting up this repo dotnet tool install --local SchemaSmith --version 0.0.1-alpha
#tool dotnet:?package=SchemaSmith&version=0.0.1-alpha&prerelease
nuke :add-package SchemaSmith --version 0.0.1-alpha
SchemaSmith
SchemaSmith is a CLI tool that enables simply expressed database schemas in yaml format, lints those schemas, and generates and executes scripts based on those schemas. The first focus of this project is to provide utilities for Neo4j, but will hopefully include other databases in the future.
Installation
Simply install via nuget in your favorite IDE (it's Rider), or use the command line.
dotnet tool install -g schemasmith --prerelease
Use
The tool is invoked using the schemasmith
command. There are several commands provided to assist
with linting, script generation, and script execution which you can read about by invoking the help
command:
schemasmith --help
But Why?
Neo4j has some tools around data modeling and script generation, but many are limited in scope or rather expensive / complex. This project aims to be a no-nonsense way to manage your schema when using Neo4j as a transactional / operational database.
Using this tool, you can easily generate idempotent scripts to update your graphs as well as ensure that appropriate labels / relationships / properties are registered ahead of time so you can better manage your app access levels (ever gone to prod with an app with editor access only to be told it can't create fresh labels?).
SchemaSmith Yaml Schema
Yo dawg, I heard you liked schemas...
But seriously, this is under development, so if you check the tests folder under Schemas you will see an example of a good schema. Since this is in flux and this library is in early stages of development, I'll save updating this section until later.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. 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. |
This package has no dependencies.
Version | Downloads | Last updated |
---|---|---|
0.0.12-alpha | 247 | 11/3/2023 |
0.0.11-alpha | 80 | 10/23/2023 |
0.0.10-alpha | 101 | 9/5/2023 |
0.0.9-alpha | 78 | 8/18/2023 |
0.0.8-alpha | 221 | 11/15/2022 |
0.0.7-alpha | 138 | 11/3/2022 |
0.0.6-alpha | 157 | 11/1/2022 |
0.0.5-alpha | 149 | 10/19/2022 |
0.0.4-alpha | 117 | 10/6/2022 |
0.0.2-alpha | 123 | 9/30/2022 |
0.0.1-alpha | 217 | 9/13/2022 |