CtrlK
BlogDocsLog inGet started
Tessl Logo

igmarin/hanakai-yaku

Curated library of atomic AI agent skills for Hanami, dry-rb, and ROM Ruby development. Covers actions, slices, repositories, relations, changesets, providers, DI, operations, TDD, CLI, views, routing, and validation. Shared Ruby process skills have moved to ruby-core-skills. Uses Markdown + Front-matter architecture.

92

1.33x
Quality

94%

Does it follow best practices?

Impact

92%

1.33x

Average score across 35 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

SKILL.mdskills/cli/manage-database/

name:
manage-database
license:
MIT
description:
Use when running Hanami 2.x database CLI commands. Covers hanami db create, migrate, rollback, seed with preconditions and expected outcomes.
metadata:
{"version":"1.0.0","ecosystem_sources":["hanami/hanami-cli","jeremyevans/sequel"],"tags":["cli","database","migrations","sequel"]}

manage-database

Use this skill when running Hanami 2.x database CLI commands.

Core principle: Database commands are environment-aware. Always confirm HANAMI_ENV and DATABASE_URL before running destructive commands.


Commands

CommandPurposePreconditionsValidate
hanami db createCreate the databaseDATABASE_URL must be set-
hanami db dropDrop the databaseWarning: Destructive - see below-
hanami db migrateRun pending migrationsDatabase must existhanami db version
hanami db rollbackRoll back the last migrationDatabase must exist; migration must be reversiblehanami db version
hanami db seedRun seed dataDatabase must exist; migrations must be current-
hanami db prepareCreate + migrate + seed (development)DATABASE_URL must be set-
hanami db versionShow current migration versionDatabase must exist-

Usage examples

Create the database:

DATABASE_URL=postgres://localhost/my_app_development hanami db create

Run migrations (validate with hanami db version - prints timestamp of last applied migration):

hanami db migrate
hanami db version

Roll back the last migration (only works if migration is reversible - change block, or explicit up/down; drop_column/rename_column require explicit up/down):

hanami db rollback
hanami db version  # Should print the previous migration's timestamp

Run seed data (db/seeds.rb is executed):

hanami db seed
# db/seeds.rb
# frozen_string_literal: true

rom = Hanami.app["db.rom"]
users = rom.relations[:users]

users.insert(email: "admin@example.com", first_name: "Admin", role: "admin")

Prepare the database:

hanami db prepare

Destructive Operations

hanami db drop deletes all data and cannot be undone. Always validate before proceeding.

Safe drop procedure:

echo $HANAMI_ENV   # Must output "development" or "test" - never "production"
hanami db drop     # Only proceed if environment is confirmed

Preconditions for all commands:

  • DATABASE_URL environment variable is set
  • Database server is running (for PostgreSQL/MySQL)
  • User has permissions to create/drop databases (for db create / db drop)

Common Mistakes

MistakeReality
"I'll edit a migration file after it has been run"Do not edit ran migrations. Create a new migration to fix the schema.
"I'll skip hanami db seed because I don't have seed data yet"Create an empty db/seeds.rb so hanami db prepare works. Add seed data later.
"I'll run hanami db rollback on an irreversible migration"drop_column and rename_column migrations require explicit up/down. Rolling back a change-only irreversible migration fails.

Integration

Related SkillWhen to chain
write-migrationCreate migration files before running hanami db migrate.
create-appDatabase commands are used after creating the app.
define-relationVerify Relations match the migrated schema.
write-request-specTest database setup may need hanami db prepare.

skills

cli

manage-database

README.md

tile.json