Skip to content

Latest commit

 

History

History
25 lines (18 loc) · 1.09 KB

README.md

File metadata and controls

25 lines (18 loc) · 1.09 KB

go-migrations

Use programmatic migration scripts, rather than plain SQL.

Use-case: populating data from a file, applying any complex logic difficult to achieve in plain SQL.

Avoids using procedural extensions such as PL/pgSQL (postgres).

Reminder: SQL migrations are plain SQL statements, and not SQL scripts for frontends tools like psql. Those tools may have some advanced capabilities (variables, file loading...) which are not available from plain SQL.

In the following example, we run a data-initialization script that loads a plain CSV file into a table.

Usage

go run migrate.go
{"level":"info","msg":"applying db migrations","operation":"migratedb"}
{"level":"warn","msg":"no migrations for env","operation":"merge-migrations","env":"test"}
{"level":"info","msg":"OK   20231102204811_create_example.sql (2.67ms)","operation":"migratedb"}
{"level":"info","msg":"OK   20231103204811_populate_example.sql (2.65ms)","operation":"migratedb"}
2023/11/07 18:57:09 2 values inserted from file
{"level":"info","msg":"OK   20231104120000_load_example.go (3.14ms)","operation":"migratedb"}