Hither Specification
Hither is a general purpose database munging tool.
Overview
Hither's primary goals are:
Provide a CLI command called
hither
RDBMS schema and database migration
Provide a schema data definition language
Programming language agnostic
Database framework agnostic
Schema definition diffing
Generate database files from definitions
DB schema files
DB migration files
Generate database code from definitions
DBIx::Class classes for Perl
ActiveRecord classes for Ruby
Hither Command Actions
The hither
command has many actions. Here are some examples:
hither migrate <options> <arguments>
-
Migrate a database from state A to state B.
hither import …
-
Import a database from a source. Could be a dump or another database.
hither generate …
-
Generate things from things.
hither diff …
Implementation Strategy
Hither will start out as a wrapper around other tools. It will patch and fill in gaps as necessary.
For starters, heavy use will be made of:
Databases of Focus
Eventually all popular, open source databases should be supported. For now just concentrating on 3 for bootstrapping phase. Having 3 concerns is a good number for agnostic, yet focused, projects.
- PostgreSQL
-
This DB is driving the need for this tool currently.
- SQLite
-
Simple, single file, real database. Good for prototyping and testing.
- CSV
-
CSV is considered a database since so much open data is in this format.