<commit_before># SJP.Schema

![Project Icon](database.svg)

This is a work in progress.

The aim of this project is to create an easier way to declare and manage schemas of medium-level complexity.

Goals:

* Simple and strongly-typed declarations of schema in C\#.
* Automatic schema updates to match schema defined in C\#.
* Customisable schema i.e. have schema declared in C\# but overridden (at least partially) in JSON, XML, etc.
* Given a declared schema, generate code/classes that can be used in Entity Framework, Dapper, ServiceStack.OrmLite, etc.
* Vendor agnostic migrations, ensuring that we can easily switch between vendors without changing declarations. Note, this does not mean ignoring vendor-specific behaviour, only that such behaviour may not be migratable.
* Manual/explicit database migrations (e.g. create table, object renames, etc). Can occur before or after automatic migrations.

Non-goals:

* User administration/management. Access and permissions are not in scope.
* Advanced database features such as partitioning, file storage, advanced index configuration.

Original icon made by [Madebyoliver](https://dribbble.com/olivers) from [www.flaticon.com](http://www.flaticon.com). Modifications created by myself.<commit_msg>Fix display on GitHub for relative SVG paths.<commit_after># SJP.Schema

![Project Icon](https://cdn.rawgit.com/sjp/SJP.Schema/master/database.svg)

This is a work in progress.

The aim of this project is to create an easier way to declare and manage schemas of medium-level complexity.

Goals:

* Simple and strongly-typed declarations of schema in C\#.
* Automatic schema updates to match schema defined in C\#.
* Customisable schema i.e. have schema declared in C\# but overridden (at least partially) in JSON, XML, etc.
* Given a declared schema, generate code/classes that can be used in Entity Framework, Dapper, ServiceStack.OrmLite, etc.
* Vendor agnostic migrations, ensuring that we can easily switch between vendors without changing declarations. Note, this does not mean ignoring vendor-specific behaviour, only that such behaviour may not be migratable.
* Manual/explicit database migrations (e.g. create table, object renames, etc). Can occur before or after automatic migrations.

Non-goals:

* User administration/management. Access and permissions are not in scope.
* Advanced database features such as partitioning, file storage, advanced index configuration.

Original icon made by [Madebyoliver](https://dribbble.com/olivers) from [www.flaticon.com](http://www.flaticon.com). Modifications created by myself.
{'fraction_non_alphanumeric': 0.07483520744474603, 'fraction_numerical': 0.0, 'mean_word_length': 4.758928571428571, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 3, 'lorem ipsum': 0, 'www.': 4, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4274620', 'n_tokens_mistral': 687, 'n_tokens_neox': 666, 'n_words': 322}