4e3c9b5593
Los IDs de tipos Go usan PascalCase: Migration_go_infra, MigrationStatus_go_infra. Actualizar los .md de todas las funciones migration para referenciar los IDs correctos. Re-indexar: 681 funciones, 109 tipos, 0 errores de validacion. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.2 KiB
2.2 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | params | output | tested | tests | test_file_path | file_path | ||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| migration_up | function | go | infra | 1.0.0 | impure | func MigrationUp(db *sql.DB, dir string) ([]Migration, error) | Lee los archivos .sql del directorio, crea la tabla _migrations si no existe, y ejecuta las migraciones pendientes en orden de version. Cada migracion corre en su propia transaccion. Retorna la lista de migraciones aplicadas en esta llamada. |
|
|
|
|
false | error_go_core |
|
|
slice de Migration con las migraciones que fueron aplicadas en esta llamada (puede estar vacio si todo ya estaba aplicado) | true |
|
functions/infra/migration_up_test.go | functions/infra/migration_up.go |
Ejemplo
db, _ := SQLiteOpen("", "apps/my_app/operations.db")
defer db.Close()
applied, err := MigrationUp(db, "apps/my_app/migrations")
if err != nil {
log.Fatalf("migration failed: %v", err)
}
for _, m := range applied {
fmt.Printf("Applied: %03d_%s\n", m.Version, m.Name)
}
// Applied: 001_create_users
// Applied: 002_add_roles
Notas
Crea _migrations con CREATE TABLE IF NOT EXISTS — es idempotente. Cada migracion se ejecuta en una transaccion independiente: si falla la migracion 3, las 1 y 2 ya aplicadas permanecen. El up_sql y down_sql se guardan en _migrations para que el rollback funcione aunque el archivo sea modificado o eliminado posteriormente. SQLite con el driver mattn/go-sqlite3 soporta multiples sentencias en un solo Exec.