416b15786d
Promueve patron versionado (schema_migrations + tx por archivo) al registry
como sqlite_apply_versioned_migrations_go_infra. Migra fn_operations/migrate.go
y registry/migrate.go al consumirla. ~200 LOC duplicadas eliminadas.
- functions/infra/sqlite_apply_versioned_migrations.{go,md,_test.go}: nueva,
5/5 tests pass. Generaliza fs.FS + dir param (fn_operations usaba embed.FS
hardcoded). Distinta de sqlite_apply_migrations_go_infra (naive split-by-`;`,
idempotent-by-error) — esta hace tracking explicito + transactions.
- fn_operations/migrate.go: 111 LOC -> 17. Wrapper sobre infra.ApplyVersionedMigrations.
- registry/migrate.go: idem. Mismo patron copy-paste, ahora unificado.
Smoke: ./fn ops init crea operations.db con schema_migrations poblada.
fn_operations + registry tests: PASS. fn index registra nueva fn (1091 total).
19 lines
433 B
Go
19 lines
433 B
Go
package fn_operations
|
|
|
|
import (
|
|
"database/sql"
|
|
"embed"
|
|
|
|
"fn-registry/functions/infra"
|
|
)
|
|
|
|
//go:embed migrations/*.sql
|
|
var migrationsFS embed.FS
|
|
|
|
// migrate applies pending migrations to the database via the registry's
|
|
// sqlite_apply_versioned_migrations_go_infra (schema_migrations tracking
|
|
// + per-file transactions).
|
|
func migrate(conn *sql.DB) error {
|
|
return infra.ApplyVersionedMigrations(conn, migrationsFS, "migrations")
|
|
}
|