Skip to content

Add MySQL support via Drizzle ORM #28

Description

@PAMulligan

Description

Add MySQL as a supported database provider. Drizzle ORM has full MySQL support via `mysql2` and `drizzle-orm/mysql-core`. Many enterprises and existing projects use MySQL, so supporting it broadens Nerva's audience.

Why

MySQL is the world's most popular open-source database. Excluding it limits Nerva's adoption in organizations with existing MySQL infrastructure. PlanetScale (MySQL-compatible) is also a popular serverless database option.

Acceptance Criteria

  • Add `--mysql` flag to `setup-project.sh`
  • Generate MySQL-compatible Drizzle schema (`mysqlTable` instead of `pgTable`)
  • Use `mysql2` driver instead of `postgres`
  • Generate appropriate `drizzle.config.ts` for MySQL
  • Update Docker templates with MySQL service option
  • Update `pipeline.config.json` to support `"mysql"` provider
  • Update `database-design` skill to handle MySQL column types and differences
  • Document MySQL-specific considerations (no array columns, different JSON syntax, etc.)
  • CI passes

Notes

PostgreSQL remains the recommended default. MySQL support is for teams with existing MySQL infrastructure.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions