{"id":38955397,"url":"https://github.com/leanovate/play-cassandra-evolutions","last_synced_at":"2026-01-17T16:15:24.590Z","repository":{"id":57744211,"uuid":"44025991","full_name":"leanovate/play-cassandra-evolutions","owner":"leanovate","description":null,"archived":false,"fork":false,"pushed_at":"2017-11-27T12:59:05.000Z","size":1058,"stargazers_count":4,"open_issues_count":2,"forks_count":5,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-03-26T15:05:33.878Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/leanovate.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-10-10T19:56:57.000Z","updated_at":"2018-08-07T18:40:26.000Z","dependencies_parsed_at":"2022-08-30T10:51:34.539Z","dependency_job_id":null,"html_url":"https://github.com/leanovate/play-cassandra-evolutions","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/leanovate/play-cassandra-evolutions","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leanovate%2Fplay-cassandra-evolutions","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leanovate%2Fplay-cassandra-evolutions/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leanovate%2Fplay-cassandra-evolutions/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leanovate%2Fplay-cassandra-evolutions/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leanovate","download_url":"https://codeload.github.com/leanovate/play-cassandra-evolutions/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leanovate%2Fplay-cassandra-evolutions/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28511853,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T13:38:16.342Z","status":"ssl_error","status_checked_at":"2026-01-17T13:37:44.060Z","response_time":85,"last_error":"SSL_read: 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":[],"created_at":"2026-01-17T16:15:23.382Z","updated_at":"2026-01-17T16:15:24.579Z","avatar_url":"https://github.com/leanovate.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# play-cassandra-evolutions\n\nModule for Play framework 2.5 to apply evolutions to a cassandra database.\nBehaves mostly like the standard evolution module for JDBC based databases.\n\n## Usage\n\nThe current version is supposed to run with Play 2.5 only. Thre is also a slightly older version for Play 2.4\n\nAdd the following dependency to your project\n\n```\nlibraryDependencies += \"de.leanovate\" %% \"play-cassandra-evolutions\" % \"2.5.0\"\n```\n\nSince there are many ways to configure the contact points to a cassandra cluster (with or\nwithout some sort of service discovery), so this module does not make any presumptions\nabout it. Instead you have to provide your own implementation for\nthe `de.leanovate.play.cassandra.evolutions.CassandraEndpointConfig` trait. The\nmost simple implementation might look like this\n\n```\nimport com.datastax.driver.core.Cluster\nimport com.google.inject.Inject\nimport play.api.inject.Module\nimport play.api.{Configuration, Environment}\n\nclass LocalhostEndpointsConfig extends CassandraEndpointConfig {\n  override def databases: Seq[String] = Seq(\"cassandra\")\n\n  override def clusterForDatabase(db: String): Cluster =\n    Cluster.builder().addContactPoints(\"localhost\").build()\n}\n\nclass CassandraConfigModule extends Module {\n  override def bindings(environment: Environment, configuration: Configuration) = {\n    Seq(\n      bind[CassandraEndpointConfig].to[LocalhostEndpointsConfig]\n    )\n  }\n}\n```\n\nWhich you have to enable in your application.conf\n\n```\nplay.modules.enabled += CassandraConfigModule\n\n```\n\nAs usually evolutions can now be added to (in the example above `dbname` is just 'cassandra':\n\n* conf/evolutions/`dbname`/1.cql\n* conf/evolutions/`dbname`/2.cql\n* ...\n\nAlso as usual, automatic evolutions have to be activated in your configuration or via system property. E.g.:\n\n```\nplay.evolutions.autoApply=true \n```\n\n## Under the hood\n\nJust like the standard play evolutions the current state is stored in the database itself.\nFor this purpose the module creates an additional keyspace `\u003cdbname\u003e_evolutions` with a\nsingle table `play_evolutions`.\n\nThe main reason for an additional keyspace is to interfere with you production data as\nlittle as possible and to give you the opportunity to create the production keyspace\n(and its parameters) via evolution files.\n\n## License\n\n[MIT Licence](http://opensource.org/licenses/MIT)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleanovate%2Fplay-cassandra-evolutions","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleanovate%2Fplay-cassandra-evolutions","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleanovate%2Fplay-cassandra-evolutions/lists"}