avram
Version, currently 1.5.057 versions
- 1.5.0latestApr 22, 2026
- 1.4.2not indexedApr 29, 2026
- 1.4.1not indexedApr 29, 2026
- 1.4.0not indexedApr 29, 2026
- 1.3.0not indexedApr 29, 2026
- 1.2.0not indexedApr 29, 2026
- 1.1.1not indexedApr 29, 2026
- 1.1.0not indexedApr 29, 2026
- 1.0.0not indexedApr 29, 2026
- 1.0.0-rc1not indexedApr 29, 2026
- 0.23.0not indexedApr 29, 2026
- 0.22.0not indexedApr 29, 2026
- 0.21.1not indexedApr 29, 2026
- 0.21.0not indexedApr 29, 2026
- 0.20.0not indexedApr 29, 2026
- 0.19.1not indexedApr 29, 2026
- 0.19.0not indexedApr 29, 2026
- 0.18.2not indexedApr 29, 2026
- 0.18.1not indexedApr 29, 2026
- 0.18.0not indexedApr 29, 2026
- 0.17.0not indexedApr 29, 2026
- 0.16.1not indexedApr 29, 2026
- 0.16.0not indexedApr 29, 2026
- 0.15.0not indexedApr 29, 2026
- 0.14.0not indexedApr 29, 2026
- 0.13.1not indexedApr 29, 2026
- 0.13.0not indexedApr 29, 2026
- 0.12.4not indexedApr 29, 2026
- 0.12.3not indexedApr 29, 2026
- 0.12.2not indexedApr 29, 2026
- 0.12.1not indexedApr 29, 2026
- 0.12.0not indexedApr 29, 2026
- 0.12.0-rc1not indexedApr 29, 2026
- 0.12.0-previewnot indexedApr 29, 2026
- 0.11.2not indexedApr 29, 2026
- 0.11.1not indexedApr 29, 2026
- 0.11.0not indexedApr 29, 2026
- 0.11.0-rc1not indexedApr 29, 2026
- 0.10.0not indexedApr 29, 2026
- 0.9.4not indexedApr 29, 2026
- 0.9.3not indexedApr 29, 2026
- 0.9.2not indexedApr 29, 2026
- 0.9.1not indexedApr 29, 2026
- 0.9.0not indexedApr 29, 2026
- 0.7.0not indexedApr 29, 2026
- 0.7.0-rc1not indexedApr 29, 2026
- 0.6.1not indexedApr 29, 2026
- 0.6.0not indexedApr 29, 2026
- 0.5.0not indexedApr 29, 2026
- 0.5.0-rc1not indexedApr 29, 2026
- 0.4.0not indexedApr 29, 2026
- 0.3.1not indexedApr 29, 2026
- 0.3.0not indexedApr 29, 2026
- 0.2.1not indexedApr 29, 2026
- 0.2.0not indexedApr 29, 2026
- 0.1.2not indexedApr 29, 2026
- 0.1.1not indexedApr 29, 2026
github.com/luckyframework/avram
A Crystal database wrapper for reading, writing, and migrating Postgres databases.
183 stars
2 dependents
License: MIT
Installation
# Add this to your shard.yml
dependencies:
avram:
github: luckyframework/avram
version: ~> 1.5.0Then run:
shards installshard.yml
- Crystal
>= 1.16.3- License
- MIT
- Author
- Paul Smith <paulcsmith0218@gmail.com>
- Executable
lucky.gen.migration.cr
Dependencies
Runtime Dependencies
- pg~> 0.29.0github: will/crystal-pg
- dexter~> 0.3.4github: luckyframework/dexter
- pulsar~> 0.2.3github: luckyframework/pulsar
- habitat~> 0.4.9github: luckyframework/habitat
- wordsmith~> 0.5.0github: luckyframework/wordsmith
- lucky_task~> 0.3.0github: luckyframework/lucky_task
- lucky_cache~> 0.2.0github: luckyframework/lucky_cache
- shell-table~> 0.9.3github: luckyframework/shell-table.cr
- lucky_template~> 0.2.0github: luckyframework/lucky_template
- cadmium_transliterator*github: cadmiumcr/transliterator, branch: master
Development Dependencies
README
# Avram
[](https://luckyframework.github.io/avram)
Database ORM built for the [Lucky Framework](https://luckyframework.org/) written in Crystal. Supporting PostgreSQL 12+ and based off principals of [Elixir Ecto](https://hexdocs.pm/ecto/Ecto.html) and [Rails ActiveRecord](https://guides.rubyonrails.org/active_record_basics.html).
### Why Avram?
The name comes from [Henriette Avram](https://en.wikipedia.org/wiki/Henriette_Avram).
> Henriette Davidson Avram (October 7, 1919 – April 22, 2006) was a computer programmer and systems analyst who developed the MARC format (Machine Readable Cataloging), the international data standard for bibliographic and holdings information in libraries.
## Installation
Add this to your application's `shard.yml`:
```yaml
dependencies:
avram:
github: luckyframework/avram
```
## Usage
```crystal
require "avram"
# Define your database
class AppDatabase < Avram::Database
end
AppDatabase.configure do |settings|
settings.credentials = Avram::Credentials.new(
database: "my_app_development",
username: "postgres",
hostname: "localhost",
password: "password",
port: 5432,
)
end
# Configure Avram to use your database
Avram.configure do |settings|
settings.database_to_migrate = AppDatabase
# When `true`, allow lazy loading (N+1).
# If `false` raise an error if you forget to preload associations
settings.lazy_load_enabled = true
settings.query_cache_enabled = false
end
# Create your read-only model
class Person < Avram::Model
def self.database : Avram::Database.class
AppDatabase
end
table :people do
column name : String
column age : Int32
column programmer : Bool = true
end
end
# Insert a new record
Person::SaveOperation.create!(name: "Henriette Davidson Avram", age: 86)
# Query for a record
person = Person::BaseQuery.new.name.ilike("%avram")
person.programmer? #=> true
```
For more details, read the [guides](https://luckyframework.org/guides/database/intro-to-avram-and-orms).
## Contributing
1. Fork it ( https://github.com/luckyframework/avram/fork )
1. Create your feature branch (git checkout -b my-new-feature)
1. Make your changes
1. Run specs `crystal spec`
1. Check formatting `crystal tool format spec/ src/`
1. Check ameba `./bin/ameba`
1. Commit your changes (git commit -am 'Add some feature')
1. Push to the branch (git push origin my-new-feature)
1. Create a new Pull Request
> Docker is provided for quick setup and testing. You can run `./script/setup` and `./script/test` for ease.
## Contributors
[paulcsmith](https://github.com/paulcsmith) Paul Smith - Original Creator of Lucky
<a href="https://github.com/luckyframework/avram/graphs/contributors">
<img src="https://contrib.rocks/image?repo=luckyframework/avram" />
</a>
Made with [contrib.rocks](https://contrib.rocks).
Documentation
Built from the current release. The first visit to a release nobody has asked for starts its build.
Links
This release
- Version
1.5.0- Tagged
- Apr 22, 2026
- Commit
bb976ca27f90- Crystal
>= 1.16.3- Indexed
- yes
Dependents
Repository
github.com/luckyframework/avram
Metadata
- Created
- Aug 12, 2026
- Updated
- Aug 12, 2026
- Synced
- Aug 12, 2026
- Versions
- 57