@darkj/create-db 1.0.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,117 +0,0 @@
1
- # {{PROJECT_NAME}}
2
-
3
- Base de datos PostgreSQL — generada con [`@darkj/create-db`](https://www.npmjs.com/package/@darkj/create-db).
4
-
5
- ---
6
-
7
- ## Configuración inicial
8
-
9
- ```bash
10
- npm install
11
- cp .env.example .env # completar con las credenciales reales
12
- ```
13
-
14
- `.env` nunca se sube al repo (está en `.gitignore`).
15
-
16
- ---
17
-
18
- ## Comandos
19
-
20
- | Comando | Hace | Necesita DB |
21
- |---|---|---|
22
- | `npm run build` | Fusiona todo `schema/` en `db-output.sql` | No |
23
- | `npm run migrate` | Aplica migraciones pendientes a una DB existente | Sí |
24
- | `npm run rollback` | Revierte la última migración | Sí |
25
- | `npm run rollback 3` | Revierte las últimas 3 migraciones | Sí |
26
-
27
- ---
28
-
29
- ## Dos flujos de trabajo
30
-
31
- **DB vacía** (desarrollo, CI, entorno nuevo):
32
- ```bash
33
- psql -U user -d dbname -f init.sql
34
- ```
35
-
36
- **DB existente con datos** (producción, staging):
37
- ```bash
38
- npm run migrate
39
- ```
40
-
41
- ---
42
-
43
- ## Estructura
44
-
45
- ```
46
- {{PROJECT_NAME}}/
47
- ├── init.sql ← DROP ALL + recarga schema/ desde cero
48
- ├── schema/ ← diseño actual: tablas organizadas por dominio
49
- │ └── init.sql ← orden de carga (dependencias primero)
50
- ├── migrations/ ← historial de cambios incrementales
51
- │ └── NNN_YYYYMMDD_HHMM_proposito/
52
- │ ├── up.sql ← cambios a aplicar
53
- │ └── down.sql ← cómo revertirlos
54
- ├── scripts/ ← build.ts · migrate.ts · rollback.ts
55
- └── backups/ ← dumps de pg_dump (gitignored)
56
- ```
57
-
58
- ### Organización de schema/
59
-
60
- ```
61
- schema/
62
- ├── init.sql ← orden global
63
- ├── tabla-standalone/ ← tabla transversal a varios dominios
64
- │ ├── create.sql
65
- │ ├── data.sql
66
- │ └── init.sql
67
- └── nombre-grupo/ ← dominio funcional (auth, orders, catalog…)
68
- ├── init.sql
69
- └── tabla/
70
- ├── create.sql
71
- ├── data.sql
72
- ├── triggers.sql ← solo si aplica
73
- └── init.sql
74
- ```
75
-
76
- > Todas las rutas dentro de los `init.sql` son absolutas desde la raíz del proyecto.
77
- > `psql` resuelve `\i` desde su directorio de trabajo, no desde el archivo.
78
-
79
- ---
80
-
81
- ## Agregar una tabla
82
-
83
- ```bash
84
- mkdir schema/mi-tabla
85
- touch schema/mi-tabla/create.sql schema/mi-tabla/data.sql schema/mi-tabla/init.sql
86
- ```
87
-
88
- `schema/mi-tabla/init.sql`:
89
- ```sql
90
- \i schema/mi-tabla/create.sql
91
- \i schema/mi-tabla/data.sql
92
- ```
93
-
94
- Agregar a `schema/init.sql`:
95
- ```sql
96
- \i schema/mi-tabla/init.sql
97
- ```
98
-
99
- ---
100
-
101
- ## Crear una migración
102
-
103
- ```bash
104
- mkdir migrations/002_20260601_1000_descripcion
105
- # escribir up.sql y down.sql
106
- npm run migrate
107
- ```
108
-
109
- > Nunca editar un `up.sql` ya aplicado. Para corregir errores, crear una nueva migración.
110
-
111
- ---
112
-
113
- ## Backup
114
-
115
- ```bash
116
- pg_dump -U user -d dbname -F p -f backups/$(date +%Y%m%d_%H%M%S)_descripcion.sql
117
- ```