@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.
- package/LICENSE +21 -0
- package/README.md +24 -5
- package/dist/builders/readme.js +87 -0
- package/dist/generator.js +17 -4
- package/dist/index.js +18 -1
- package/package.json +34 -11
- package/templates/base/.claude/CLAUDE.md +44 -35
- package/templates/base/.claude/commands/analyze.md +15 -15
- package/templates/base/.claude/commands/backup.md +9 -9
- package/templates/base/.claude/commands/build.md +7 -7
- package/templates/base/.claude/commands/new-dictionary.md +29 -26
- package/templates/base/.claude/commands/new-migration.md +33 -32
- package/templates/base/.claude/rules/migrations.md +65 -58
- package/templates/base/.claude/rules/schema.md +134 -129
- package/templates/base/init.sql +2 -2
- package/templates/base/schema/init.sql +5 -5
- package/templates/base/scripts/migrate.ts +18 -16
- package/templates/base/scripts/rollback.ts +21 -21
- package/templates/base/README.md +0 -117
package/templates/base/README.md
DELETED
|
@@ -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
|
-
```
|