14 Commits

Author SHA1 Message Date
2dbe3ea07c Update for Nim 2.x 2024-12-28 11:07:50 -06:00
9acbc27710 Add debug logging for migration diff. 2021-08-07 23:54:10 -05:00
7cf53a4702 Allow multiple SQL directories (to support, for example, test configurations). 2021-07-19 22:57:47 -05:00
6837e5448b Update for Nim 1.4.x+ 2021-07-03 22:00:14 -05:00
Jonathan Bernard
4e771345ea Add more info to the version string. 2018-07-01 10:36:13 -05:00
e26b6eb01c Fix argument parsing bug. 2018-06-01 01:23:23 -05:00
Jonathan Bernard
e35a5177ef Add env configuration, bug in SQL parsing for Nim db_migrate.
* The Nim binary now recognizes the following environment and allows them to
  override configured values:

  - `DATABASE_DRIVER`: overrides the `driver` config value, selects which
    kind of database we expect to connect to.
  - `MIGRATIONS_DIR`: overrides the `sqlDir` config value, sets the path to
    the directory containing the migration SQL files.
  - `DATABASE_URL`: overrides the `connectionString` config value, supplies
    connection parameters to the database.
  - `DBM_LOG_LEVEL`: overrides the `logLevel` config value, sets the logging
    level of db_migrate.

* Fixes a bug in the parsing of migration files. Previously the file was split
  on `;` characters and chunks that started with `--` were ignored as comments.
  This was wrong in the common case where a block starts with a comment but
  then contains SQL further. Such a block was being ignored. The new behavior
  is to consider each line and build up queries that way.

* Fixes a logging bug when parsing the configuration. If there was an that
  prevented the configuration from loading this in turn prevented logging from
  being setup correctly, and so the error was not logged. Now errors that may
  occur before logging is setup are hard-coded to be logged to STDERR.

* Changes the logic for creating the `migrations` table to check before
  performing the query that creates the table. This is to avoid continually
  printing messages about skipping this creation when the table already exists
  (which is the normal case). This change is PostgreSQL-specific, but of course
  the entire tool is currently PostgreSQL-specific.
2017-02-11 20:00:37 -06:00
Jonathan Bernard
9f38da0043 Fixed typo in groovy docopt. 2017-02-09 11:22:43 -06:00
Jonathan Bernard
c933d6ac2b Separated statement running logic in Groovy implementation to allow reuse. 2016-05-17 21:35:57 -05:00
Jonathan Bernard
9b3e7b4d26 Incrementing version for Nim and Groovy implementations. 2016-04-11 19:49:29 -05:00
Jonathan Bernard
462da00dd3 Restructured to accomodate being more than just a Nim implementation. 2016-04-10 21:01:53 -05:00
Jonathan Bernard
7242a13e51 Added better logging when database connection fails. 2016-02-10 03:25:14 -06:00
Jonathan Bernard
3963a27a66 Increment version number (not released). 2016-02-06 19:28:51 -06:00
Jonathan Bernard
66bb8d9d39 Initial commit: create verb only. 2016-01-31 00:18:21 -06:00