ecto_cassandra alternatives and similar packages
Based on the "ORM and Datamapping" category.
Alternatively, view ecto_cassandra alternatives based on common mentions on social networks and blogs.
-
memento
Simple + Powerful interface to the Mnesia Distributed Database 💾 -
paper_trail
Track and record all the changes in your database with Ecto. Revert back to anytime in history. -
ExAudit
Ecto auditing library that transparently tracks changes and can revert them. -
ecto_psql_extras
Ecto PostgreSQL database performance insights. Locks, index usage, buffer cache hit ratios, vacuum stats and more. -
arbor
Ecto elixir adjacency list and tree traversal. Supports Ecto versions 2 and 3. -
sqlitex
An Elixir wrapper around esqlite. Allows access to sqlite3 databases. -
boltun
Transforms notifications from the Postgres LISTEN/NOTIFY mechanism into callback execution -
sql_dust
Easy. Simple. Powerful. Generate (complex) SQL queries using magical Elixir SQL dust.
Access the most powerful time series database as a service
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of ecto_cassandra or a related project?
README
EctoCassandra
Cassandra Adapter for Ecto (the language integrated query for Elixir)
Example
# In your config/config.exs file
config :my_app, ecto_repos: [Sample.Repo]
config :my_app, Sample.Repo,
adapter: EctoCassandra.Adapter,
keyspace: "ecto_simple",
contact_points: ["localhost"],
replication: [
class: "SimpleStrategy",
replication_factor: 1,
]
# In your application code
defmodule Sample.Repo.Migrations.CreateUser do
use Ecto.Migration
def change do
create table(:users, primary_key: false) do
add :id, :id, partition_key: true
add :age, :integer, clustering_column: true
add :name, :string
add :email, :string
add :password_hash, :string
timestamps()
end
end
end
defmodule Sample.Repo do
use Ecto.Repo, otp_app: :my_app
end
defmodule Sample.User do
use Ecto.Schema
@primary_key false
schema "users" do
field :username, primary_key: true
field :age, :integer
field :name # Defaults to type :string
field :email
field :password_hash
field :password, :string, virtual: true
end
end
defmodule Sample.App do
import Ecto.Query
alias Sample.{Repo, User}
def keyword_query do
Repo.all from u in User,
where: u.username == "john",
select: u.email
end
def pipe_query do
User
|> where([u], u.age > 10)
|> order_by(:age)
|> limit(10)
|> Repo.all
end
def get_by_name do
Repo.get_by(username: "john")
end
end
*Note that all licence references and agreements mentioned in the ecto_cassandra README section above
are relevant to that project's source code only.