{"id":26284098,"url":"https://github.com/youssef-ben/cassandra.fluent.migrator","last_synced_at":"2026-03-03T21:01:09.692Z","repository":{"id":43345034,"uuid":"267466845","full_name":"Youssef-ben/Cassandra.Fluent.Migrator","owner":"Youssef-ben","description":"Cassandra Fluent Migrator is a library that offers a set of fluent code and extensions to facilitate the creation and management of the Cassandra migrations using code instead of CQL string commands.","archived":false,"fork":false,"pushed_at":"2023-11-02T03:13:41.000Z","size":276,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-20T23:25:07.343Z","etag":null,"topics":["cassandra","cassandra-fluent-migrator","cql","csharp","fluent","fluent-migration","fluent-migrator","migration","migrator","netcore","netcore3"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Youssef-ben.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-05-28T01:44:44.000Z","updated_at":"2022-11-06T23:16:47.000Z","dependencies_parsed_at":"2025-03-14T18:23:24.611Z","dependency_job_id":"e65dca5c-ba5c-4bc5-99e9-01e686000ea7","html_url":"https://github.com/Youssef-ben/Cassandra.Fluent.Migrator","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/Youssef-ben/Cassandra.Fluent.Migrator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Youssef-ben%2FCassandra.Fluent.Migrator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Youssef-ben%2FCassandra.Fluent.Migrator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Youssef-ben%2FCassandra.Fluent.Migrator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Youssef-ben%2FCassandra.Fluent.Migrator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Youssef-ben","download_url":"https://codeload.github.com/Youssef-ben/Cassandra.Fluent.Migrator/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Youssef-ben%2FCassandra.Fluent.Migrator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30060624,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-03T18:21:05.932Z","status":"ssl_error","status_checked_at":"2026-03-03T18:20:59.341Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cassandra","cassandra-fluent-migrator","cql","csharp","fluent","fluent-migration","fluent-migrator","migration","migrator","netcore","netcore3"],"created_at":"2025-03-14T18:21:05.527Z","updated_at":"2026-03-03T21:01:09.670Z","avatar_url":"https://github.com/Youssef-ben.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cassandra Fluent Migrator\n\n![Cassandra Fluent library](https://github.com/Youssef-ben/Cassandra.Fluent.Migrator/workflows/Cassandra%20Fluent%20library/badge.svg?branch=dev)\n\nCassandra Fluent Migrator is a library that offers a set of fluent code and extensions to facilitate the creation and management of the migrations using code instead of CQL commands.\n\n## Stack\n\n* [.NET Standard 2.1](https://docs.microsoft.com/en-us/dotnet/standard/net-standard?WT.mc_id=dotnet-35129-website\u0026tabs=net-standard-2-1)\n* [Cassandra CSharp driver - v3.17](https://docs.datastax.com/en/developer/csharp-driver/3.16/): A modern, feature-rich and highly tunable C# client library for Apache Cassandra using Cassandra’s binary protocol and Cassandra Query Language v3.\n\n### Installation\n\n* [Get it from NuGet](https://www.nuget.org/packages/Cassandra.Fluent.Migrator/)\n\n```cmd\nPM\u003e Install-Package Cassandra.Fluent.Migrator\n```\n\n### Future Improvements\n\n* [ ] Add support for more complex types.\n* [ ] Add support for the `Materialized views`.\n\n### Documentations\n\n* [Wiki page:](https://github.com/Youssef-ben/Cassandra.Fluent.Migrator/wiki) Full documentation for the library.\n* [Cassandra Migrator:](https://github.com/Youssef-ben/Cassandra.Fluent.Migrator/wiki/Cassandra-Migrator) The core class of the library.\n* [Cassandra Fluent Migrator:](https://github.com/Youssef-ben/Cassandra.Fluent.Migrator/wiki/Cassandra-Fluent-Migrator) The migration helper class.\n* [Migrator interface:](https://github.com/Youssef-ben/Cassandra.Fluent.Migrator/wiki/Migrator-Interface) The base properties and method that the migrations should implement.\n* [Example:](https://github.com/Youssef-ben/Cassandra.Fluent.Migrator/wiki/Example) An example on how to use the library.\n* [Supported Types:](https://github.com/Youssef-ben/Cassandra.Fluent.Migrator/wiki/Supported-Types) List of supported types.\n\n### Basic Usage\n\n* **Migration class**\n\nIn your project create a migration class that implements the `IMigrator` Interface as follow:\n\n```C#\npublic class InitialMigration : IMigrator\n{\n    private readonly ICassandraFluentMigrator cfm;\n    private readonly ILogger\u003cInitialMigration\u003e logger;\n\n    public InitialMigration(ILogger\u003cInitialMigration\u003e logger, ICassandraFluentMigrator cfm)\n    {\n        this.cfm = cfm;\n        this.logger = logger;\n    }\n\n    public string Name =\u003e this.GetType().Name;\n    public Version Version =\u003e new Version(1, 0, 0);\n    public string Description =\u003e \"First migration to initialize the Schema\";\n\n    public async Task ApplyMigrationAsync()\n    {\n        this.logger.LogDebug($\"Creating the Address User-Defined type...\");\n        await this.cfm.CreateUserDefinedTypeAsync\u003cAddress\u003e();\n\n        // Should not be here in real world application.\n        // Used only for example purposes.\n        this.cfm\n            .GetCassandraSession()\n                .UserDefinedTypes.Define(\n                UdtMap.For\u003cAddress\u003e()\n                    .Map(a =\u003e a.Number, \"Number\".ToLower())\n                    .Map(a =\u003e a.Street, \"Street\".ToLower())\n                    .Map(a =\u003e a.City, \"City\".ToLower())\n                    .Map(a =\u003e a.Country, \"Country\".ToLower())\n                    .Map(a =\u003e a.Province, \"Province\".ToLower())\n                    .Map(a =\u003e a.PostalCode, \"PostalCode\".ToLower()));\n\n        this.logger.LogDebug($\"Creating the User table...\");\n        await this.cfm.GetTable\u003cUsers\u003e().CreateIfNotExistsAsync();\n    }\n}\n```\n\n* **Startup class**\n\n```C#\npublic void ConfigureServices(IServiceCollection services)\n{\n    services.AddControllers();\n\n    // Custom method that you can create to initialize the Cassandra {ISession}.\n    services.AddCassandraSession(this.Configuration);\n\n    // Register the migrations\n    services.AddTransient\u003cIMigrator, InitialMigration\u003e();\n\n    // Required by the library to register the needed classes.\n    services.AddCassandraFluentMigratorServices();\n}\n\npublic void Configure(IApplicationBuilder app, IWebHostEnvironment env)\n{\n    ...\n\n    // Start the migration process.\n    app.UseCassandraMigration();\n\n    ...\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoussef-ben%2Fcassandra.fluent.migrator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyoussef-ben%2Fcassandra.fluent.migrator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyoussef-ben%2Fcassandra.fluent.migrator/lists"}