Add this library to your projects dependencies along with the driver in
your shard.yml
. This can be used with any framework but was originally
designed to work with the amber framework in mind. This library will work
with Kemal or any other framework as well.
dependencies:
granite:
github: amberframework/granite
# Pick your database
mysql:
github: crystal-lang/crystal-mysql
sqlite3:
github: crystal-lang/crystal-sqlite3
pg:
github: will/crystal-pg
Next you will need to register a connection. This should be one of the first things in your main Crystal file, before Granite is required.
Granite::Connections << Granite::Adapter::Mysql.new(name: "mysql", url: "YOUR_DATABASE_URL")
# Rest of code...
Supported adapters include: Mysql, Pg, and Sqlite
.
Here is an example Granite model using the connection registered above.
require "granite/adapter/mysql"
class Post < Granite::Base
connection mysql
table posts # Name of the table to use for the model, defaults to class name snake cased
column id : Int64, primary: true # Primary key, defaults to AUTO INCREMENT
column name : String? # Nilable field
column body : String # Not nil field
end