ORM::ActiveRecord is an object-relational mapping module for Raku that mostly follows the Active Record Pattern.
https://gdonald.github.io/ORM-ActiveRecord/
zef install --/test ORM::ActiveRecord
--/test
is suggested because you probably don't have a test database setup.
my $user = User.create({fname => 'Greg'});
my $page = Page.create({:$user, name => 'Rakuist'});
say $user.pages.first.name;
Rakuist
say $page.user.fname;
Greg
my $alfred = User.create({fname => 'Fred'});
$page.update({user => $fred});
say $page.user.fname;
Fred
Please see the documentation for more examples.
ORM::ActiveRecord is released under the Artistic License 2.0
- Model:
- belongs-to
- has-many
- has-many -> through
- where: all, first, count
- Validations
- Conditionals: if, unless, on, create, update
- Acceptance
- Confirmation
- Exclusion
- Format
- Inclusion
- Length
- Minimum
- Maximum
- In a range
- Is exactly
- Numericality
- Less than
- Less than or equal
- Greater than
- Greater than or equal
- In a range
- Presence
- Uniqueness
- Unique Scope
- Callbacks
- after: create, save, update
- before: create, save, update
- Scopes
- Dirty
- Custom Errors
- Migrations
- PostgreSQL support
- Includes: for has-many records
- Migration generator
- Model generator
- Support for MySQL, SQLite, and Oracle.