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_parse | function | go | infra | 1.0.0 | pure | func MigrationParse(filename string, content string) (Migration, error) | Parsea el nombre de archivo y el contenido SQL de una migracion. Extrae version y nombre del filename (patron NNN_nombre.sql) y separa bloques up/down por marcadores -- +up / -- +down. Error si el formato es invalido o falta el bloque up. |
|
|
|
false |
|
|
Migration con version, nombre, up_sql y down_sql extraidos del archivo | true |
|
functions/infra/migration_parse_test.go | functions/infra/migration_parse.go |
Ejemplo
content := `
-- +up
CREATE TABLE users (
id TEXT PRIMARY KEY,
name TEXT NOT NULL
);
-- +down
DROP TABLE IF EXISTS users;
`
m, err := MigrationParse("001_create_users.sql", content)
// m.Version = 1
// m.Name = "create_users"
// m.UpSQL = "CREATE TABLE users (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL\n);"
// m.DownSQL = "DROP TABLE IF EXISTS users;"
Notas
Funcion pura — no hace I/O. El marcador -- +up es obligatorio; -- +down es opcional (retorna DownSQL vacio). Si el archivo tiene down antes que up, se parsea igualmente. Los bloques se recortan con strings.TrimSpace. El formato de version es un entero positivo con cualquier numero de digitos (001, 01, 1 son equivalentes).