@atlashub/smartstack-cli 1.11.0 → 1.12.0
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/.documentation/agents.html +7 -2
- package/.documentation/apex.html +7 -2
- package/.documentation/business-analyse.html +7 -2
- package/.documentation/cli-commands.html +871 -0
- package/.documentation/commands.html +7 -2
- package/.documentation/efcore.html +7 -2
- package/.documentation/gitflow.html +7 -2
- package/.documentation/hooks.html +7 -2
- package/.documentation/index.html +7 -2
- package/.documentation/init.html +7 -2
- package/.documentation/installation.html +7 -2
- package/.documentation/ralph-loop.html +7 -2
- package/.documentation/test-web.html +7 -2
- package/dist/index.js +1932 -336
- package/dist/index.js.map +1 -1
- package/package.json +8 -2
- package/templates/agents/efcore/squash.md +67 -31
- package/templates/agents/gitflow/finish.md +68 -56
- package/templates/commands/business-analyse/0-orchestrate.md +72 -556
- package/templates/commands/business-analyse/1-init.md +23 -193
- package/templates/commands/business-analyse/2-discover.md +85 -462
- package/templates/commands/business-analyse/3-analyse.md +40 -342
- package/templates/commands/business-analyse/4-specify.md +72 -537
- package/templates/commands/business-analyse/5-validate.md +43 -237
- package/templates/commands/business-analyse/6-handoff.md +93 -682
- package/templates/commands/business-analyse/7-doc-html.md +45 -544
- package/templates/commands/business-analyse/_shared.md +176 -0
- package/templates/commands/business-analyse/bug.md +50 -257
- package/templates/commands/business-analyse/change-request.md +59 -283
- package/templates/commands/business-analyse/hotfix.md +36 -120
- package/templates/commands/business-analyse.md +55 -574
- package/templates/commands/efcore/_shared.md +206 -0
- package/templates/commands/efcore/conflicts.md +39 -201
- package/templates/commands/efcore/db-deploy.md +28 -237
- package/templates/commands/efcore/db-reset.md +41 -390
- package/templates/commands/efcore/db-seed.md +44 -323
- package/templates/commands/efcore/db-status.md +31 -210
- package/templates/commands/efcore/migration.md +45 -368
- package/templates/commands/efcore/rebase-snapshot.md +38 -241
- package/templates/commands/efcore/scan.md +35 -204
- package/templates/commands/efcore/squash.md +158 -251
- package/templates/commands/efcore.md +49 -177
- package/templates/commands/gitflow/1-init.md +94 -1318
- package/templates/commands/gitflow/10-start.md +86 -990
- package/templates/commands/gitflow/11-finish.md +264 -454
- package/templates/commands/gitflow/12-cleanup.md +40 -213
- package/templates/commands/gitflow/2-status.md +51 -386
- package/templates/commands/gitflow/3-commit.md +108 -801
- package/templates/commands/gitflow/4-plan.md +42 -13
- package/templates/commands/gitflow/5-exec.md +60 -5
- package/templates/commands/gitflow/6-abort.md +54 -277
- package/templates/commands/gitflow/7-pull-request.md +74 -717
- package/templates/commands/gitflow/8-review.md +51 -178
- package/templates/commands/gitflow/9-merge.md +74 -404
- package/templates/commands/gitflow/_shared.md +196 -0
- package/templates/commands/quickstart.md +154 -0
- package/templates/commands/ralph-loop/ralph-loop.md +104 -2
- package/templates/hooks/hooks.json +13 -0
- package/templates/hooks/ralph-mcp-logger.sh +46 -0
- package/templates/hooks/ralph-session-end.sh +69 -0
- package/templates/ralph/README.md +91 -0
- package/templates/ralph/ralph.config.yaml +113 -0
- package/templates/scripts/setup-ralph-loop.sh +173 -0
- package/templates/skills/_shared.md +117 -0
- package/templates/skills/ai-prompt/SKILL.md +87 -654
- package/templates/skills/application/SKILL.md +76 -499
- package/templates/skills/controller/SKILL.md +38 -165
- package/templates/skills/documentation/SKILL.md +2 -1
- package/templates/skills/feature-full/SKILL.md +107 -732
- package/templates/skills/notification/SKILL.md +85 -474
- package/templates/skills/ui-components/SKILL.md +62 -762
- package/templates/skills/workflow/SKILL.md +85 -489
- package/templates/commands/gitflow/rescue.md +0 -867
- package/templates/skills/business-analyse/SKILL.md +0 -191
|
@@ -6,451 +6,112 @@ model: sonnet
|
|
|
6
6
|
|
|
7
7
|
# EF Core Database Reset
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
**WARNING: This command DELETES all data!**
|
|
12
|
-
|
|
13
|
-
> **CLAUDE INSTRUCTION:** The `AskUserQuestion({...})` blocks are instructions to use the `AskUserQuestion` tool in an **interactive** manner. You MUST execute the tool with these parameters to get the user's response BEFORE continuing.
|
|
9
|
+
> **Ref:** [_shared.md](_shared.md)
|
|
10
|
+
> **WARNING:** SUPPRIME TOUTES LES DONNÉES!
|
|
14
11
|
|
|
15
12
|
---
|
|
16
13
|
|
|
17
|
-
##
|
|
14
|
+
## Conformité
|
|
18
15
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
> **OBLIGATOIRE - Méthodes autorisées:**
|
|
25
|
-
> - ✅ `dotnet ef database drop` pour supprimer
|
|
26
|
-
> - ✅ `dotnet ef database update` pour recréer
|
|
27
|
-
> - ✅ Backup via outils externes (SQL Server Management Studio, Azure)
|
|
28
|
-
>
|
|
29
|
-
> **Contact support:** support@atlshub.ch
|
|
16
|
+
| ❌ INTERDIT | ✅ OBLIGATOIRE |
|
|
17
|
+
|-------------|----------------|
|
|
18
|
+
| `sqlcmd` avec SQL brut | `dotnet ef database drop` |
|
|
19
|
+
| Scripts .sql dans repo | `dotnet ef database update` |
|
|
20
|
+
| Backup via scripts | Backup via SSMS/Azure |
|
|
30
21
|
|
|
31
22
|
---
|
|
32
23
|
|
|
33
|
-
## STEP 0:
|
|
34
|
-
|
|
35
|
-
> **Include:** `_env-check.md` - TOUTES les etapes car commande destructive
|
|
36
|
-
|
|
37
|
-
### 0.1 Detecter les fichiers appsettings
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
# Scanner les fichiers appsettings
|
|
41
|
-
API_DIR=$(find . -type d -name "*.Api" | head -1)
|
|
42
|
-
[ -z "$API_DIR" ] && API_DIR="src/SmartStack.Api"
|
|
43
|
-
|
|
44
|
-
echo "FICHIERS APPSETTINGS DISPONIBLES:"
|
|
45
|
-
find "$API_DIR" -maxdepth 1 -name "appsettings*.json" 2>/dev/null | while read f; do
|
|
46
|
-
echo " - $(basename $f)"
|
|
47
|
-
done
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### 0.2 Selectionner l'environnement
|
|
24
|
+
## STEP 0: Vérification Environnement
|
|
51
25
|
|
|
52
26
|
```bash
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
if [ -n "$ENV_FLAG" ] && [ "$ENV_FLAG" != "$1" ]; then
|
|
57
|
-
SELECTED_ENV="appsettings.${ENV_FLAG}.json"
|
|
58
|
-
elif [ -f "$API_DIR/appsettings.Local.json" ]; then
|
|
59
|
-
SELECTED_ENV="appsettings.Local.json"
|
|
60
|
-
else
|
|
61
|
-
echo "ERROR: Aucun fichier appsettings trouve"
|
|
62
|
-
echo " Creez appsettings.Local.json ou utilisez --env {Environment}"
|
|
63
|
-
exit 1
|
|
64
|
-
fi
|
|
65
|
-
|
|
66
|
-
echo ""
|
|
67
|
-
echo "ENVIRONNEMENT SELECTIONNE: $SELECTED_ENV"
|
|
27
|
+
detect_environment
|
|
28
|
+
block_production # BLOQUANT si Production
|
|
68
29
|
```
|
|
69
30
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
# Extraire connection string
|
|
74
|
-
CONNECTION_STRING=$(powershell -Command "
|
|
75
|
-
\$json = Get-Content '$API_DIR/$SELECTED_ENV' | ConvertFrom-Json
|
|
76
|
-
\$json.ConnectionStrings.DefaultConnection
|
|
77
|
-
")
|
|
78
|
-
|
|
79
|
-
DATABASE_NAME=$(echo "$CONNECTION_STRING" | grep -oP 'Database=\K[^;]+')
|
|
80
|
-
SERVER_NAME=$(echo "$CONNECTION_STRING" | grep -oP 'Server=\K[^;]+')
|
|
81
|
-
CONNECTION_MASKED=$(echo "$CONNECTION_STRING" | sed 's/Password=[^;]*/Password=****/g')
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
### 0.4 Afficher le WARNING avec details de la base
|
|
85
|
-
|
|
86
|
-
```
|
|
87
|
-
================================================================================
|
|
88
|
-
EF CORE - DATABASE RESET (OPERATION DESTRUCTIVE)
|
|
89
|
-
================================================================================
|
|
90
|
-
|
|
91
|
-
ENVIRONNEMENT: {SELECTED_ENV}
|
|
92
|
-
|
|
93
|
-
BASE DE DONNEES QUI SERA SUPPRIMEE:
|
|
94
|
-
Server: {SERVER_NAME}
|
|
95
|
-
Database: {DATABASE_NAME}
|
|
96
|
-
String: {CONNECTION_MASKED}
|
|
97
|
-
|
|
98
|
-
================================================================================
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
### 0.5 Protection Production (BLOQUANT)
|
|
102
|
-
|
|
103
|
-
```bash
|
|
104
|
-
# Bloquer si Production detecte
|
|
105
|
-
if [[ "$SELECTED_ENV" == *"Production"* ]]; then
|
|
106
|
-
echo "================================================================================
|
|
107
|
-
BLOQUE - ENVIRONNEMENT PRODUCTION
|
|
108
|
-
================================================================================
|
|
109
|
-
|
|
110
|
-
ERREUR: Reset interdit en environnement Production
|
|
111
|
-
|
|
112
|
-
Cette commande est bloquee pour proteger les donnees de production.
|
|
113
|
-
|
|
114
|
-
OPTIONS:
|
|
115
|
-
1. Utilisez appsettings.Local.json (defaut, recommande)
|
|
116
|
-
2. Utilisez --env Development ou --env Staging
|
|
117
|
-
|
|
118
|
-
Contact: support@atlshub.ch
|
|
119
|
-
|
|
120
|
-
================================================================================"
|
|
121
|
-
exit 1
|
|
122
|
-
fi
|
|
123
|
-
```
|
|
31
|
+
Afficher: base qui sera supprimée (SERVER, DATABASE).
|
|
124
32
|
|
|
125
33
|
---
|
|
126
34
|
|
|
127
|
-
## STEP 1: Confirmation
|
|
128
|
-
|
|
129
|
-
> **CRITIQUE:** L'utilisateur doit voir exactement quelle base sera supprimee.
|
|
35
|
+
## STEP 1: Confirmation
|
|
130
36
|
|
|
131
37
|
```javascript
|
|
132
38
|
AskUserQuestion({
|
|
133
39
|
questions: [{
|
|
134
|
-
question: "DANGER: Supprimer
|
|
40
|
+
question: "DANGER: Supprimer DÉFINITIVEMENT '" + DATABASE_NAME + "'? TOUTES LES DONNÉES SERONT PERDUES!",
|
|
135
41
|
header: "Reset DB",
|
|
136
42
|
options: [
|
|
137
|
-
{ label: "Oui, supprimer " + DATABASE_NAME, description: "Drop + Recreate (
|
|
138
|
-
{ label: "Non, annuler", description: "Conserver la base
|
|
43
|
+
{ label: "Oui, supprimer " + DATABASE_NAME, description: "Drop + Recreate (IRRÉVERSIBLE)" },
|
|
44
|
+
{ label: "Non, annuler", description: "Conserver la base" }
|
|
139
45
|
],
|
|
140
46
|
multiSelect: false
|
|
141
47
|
}]
|
|
142
48
|
})
|
|
143
49
|
```
|
|
144
50
|
|
|
145
|
-
**If No → Stop immediately**
|
|
146
|
-
|
|
147
|
-
---
|
|
148
|
-
|
|
149
|
-
## STEP 2: Detecter les projets EF Core
|
|
150
|
-
|
|
151
|
-
```bash
|
|
152
|
-
# Detect EF Core projects
|
|
153
|
-
STARTUP_PROJECT=$(find . -name "*.Api.csproj" -o -name "*Web.csproj" | head -1)
|
|
154
|
-
INFRA_PROJECT=$(find . -name "*Infrastructure.csproj" | head -1)
|
|
155
|
-
|
|
156
|
-
if [ -z "$INFRA_PROJECT" ]; then
|
|
157
|
-
INFRA_PROJECT=$(find . -name "*.csproj" -exec grep -l "Microsoft.EntityFrameworkCore" {} \; | head -1)
|
|
158
|
-
fi
|
|
159
|
-
|
|
160
|
-
echo "Startup project: $STARTUP_PROJECT"
|
|
161
|
-
echo "Infrastructure project: $INFRA_PROJECT"
|
|
162
|
-
```
|
|
163
|
-
|
|
164
51
|
---
|
|
165
52
|
|
|
166
|
-
## STEP
|
|
53
|
+
## STEP 2: Backup (optionnel)
|
|
167
54
|
|
|
168
55
|
```javascript
|
|
169
56
|
AskUserQuestion({
|
|
170
57
|
questions: [{
|
|
171
|
-
question: "
|
|
58
|
+
question: "Backup nécessaire avant suppression?",
|
|
172
59
|
header: "Backup",
|
|
173
60
|
options: [
|
|
174
|
-
{ label: "
|
|
175
|
-
{ label: "
|
|
176
|
-
],
|
|
177
|
-
multiSelect: false
|
|
178
|
-
}]
|
|
179
|
-
})
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
**If manual backup:**
|
|
183
|
-
|
|
184
|
-
```
|
|
185
|
-
================================================================================
|
|
186
|
-
BACKUP INSTRUCTIONS
|
|
187
|
-
================================================================================
|
|
188
|
-
|
|
189
|
-
Pour sauvegarder votre base de données AVANT le reset:
|
|
190
|
-
|
|
191
|
-
OPTION 1 - SQL Server Management Studio (SSMS):
|
|
192
|
-
1. Connectez-vous à votre serveur
|
|
193
|
-
2. Clic droit sur la DB → Tasks → Back Up...
|
|
194
|
-
3. Sélectionnez destination et lancez
|
|
195
|
-
|
|
196
|
-
OPTION 2 - Azure Portal (si Azure SQL):
|
|
197
|
-
1. Azure Portal → Votre DB → Export
|
|
198
|
-
2. Configurez le storage account
|
|
199
|
-
3. Lancez l'export
|
|
200
|
-
|
|
201
|
-
OPTION 3 - Azure Data Studio:
|
|
202
|
-
1. Connectez-vous → Clic droit DB → Backup
|
|
203
|
-
|
|
204
|
-
Une fois le backup effectué, relancez /efcore:db-reset
|
|
205
|
-
|
|
206
|
-
================================================================================
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
**Stop and wait for user to complete backup manually**
|
|
210
|
-
|
|
211
|
-
---
|
|
212
|
-
|
|
213
|
-
## STEP 4: Check migration state BEFORE drop
|
|
214
|
-
|
|
215
|
-
```bash
|
|
216
|
-
echo "Checking migration state..."
|
|
217
|
-
|
|
218
|
-
# List migrations in codebase
|
|
219
|
-
CODE_MIGRATIONS=$(dotnet ef migrations list \
|
|
220
|
-
--project "$INFRA_PROJECT" \
|
|
221
|
-
--startup-project "$STARTUP_PROJECT" \
|
|
222
|
-
--no-build 2>/dev/null | grep -E "^[0-9]{14}_" | wc -l)
|
|
223
|
-
|
|
224
|
-
echo " Migrations in codebase: $CODE_MIGRATIONS"
|
|
225
|
-
|
|
226
|
-
# Try to get applied migrations from database (may fail if DB doesn't exist)
|
|
227
|
-
APPLIED_MIGRATIONS=$(dotnet ef migrations list \
|
|
228
|
-
--project "$INFRA_PROJECT" \
|
|
229
|
-
--startup-project "$STARTUP_PROJECT" \
|
|
230
|
-
--no-build 2>/dev/null | grep -E "^\s*[0-9]{14}_.*\(Applied\)" | wc -l)
|
|
231
|
-
|
|
232
|
-
echo " Migrations applied in DB: $APPLIED_MIGRATIONS"
|
|
233
|
-
|
|
234
|
-
# List migration names for display
|
|
235
|
-
echo ""
|
|
236
|
-
echo "Migrations in codebase:"
|
|
237
|
-
dotnet ef migrations list \
|
|
238
|
-
--project "$INFRA_PROJECT" \
|
|
239
|
-
--startup-project "$STARTUP_PROJECT" \
|
|
240
|
-
--no-build 2>/dev/null | grep -E "^[0-9]{14}_" | head -20
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
---
|
|
244
|
-
|
|
245
|
-
## STEP 5: Confirm migration reset strategy
|
|
246
|
-
|
|
247
|
-
> **IMPORTANT:** If migrations were squashed (fewer migrations in code than previously applied),
|
|
248
|
-
> applying all migrations will create a fresh database with the NEW migration history.
|
|
249
|
-
|
|
250
|
-
```javascript
|
|
251
|
-
AskUserQuestion({
|
|
252
|
-
questions: [{
|
|
253
|
-
question: "How should we handle migrations after database reset?",
|
|
254
|
-
header: "Migrations",
|
|
255
|
-
options: [
|
|
256
|
-
{ label: "Apply current migrations", description: "Use migrations currently in codebase (recommended after squash)" },
|
|
257
|
-
{ label: "Cancel reset", description: "Stop and review migration state first" }
|
|
61
|
+
{ label: "Non", description: "Données dev uniquement - continuer" },
|
|
62
|
+
{ label: "Backup manuel", description: "Via SSMS/Azure Portal" }
|
|
258
63
|
],
|
|
259
64
|
multiSelect: false
|
|
260
65
|
}]
|
|
261
66
|
})
|
|
262
67
|
```
|
|
263
68
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
```
|
|
267
|
-
================================================================================
|
|
268
|
-
RESET CANCELLED - REVIEW MIGRATIONS
|
|
269
|
-
================================================================================
|
|
270
|
-
|
|
271
|
-
Pour vérifier l'état des migrations:
|
|
272
|
-
|
|
273
|
-
/efcore:db-status → Voir les migrations appliquées vs disponibles
|
|
274
|
-
/efcore:scan → Scanner les migrations sur toutes les branches
|
|
275
|
-
|
|
276
|
-
Si des migrations ont été squashées:
|
|
277
|
-
- Les anciennes migrations n'existent plus dans le code
|
|
278
|
-
- Le reset appliquera uniquement les nouvelles migrations
|
|
279
|
-
- C'est le comportement ATTENDU après un squash
|
|
280
|
-
|
|
281
|
-
Si vous voulez restaurer d'anciennes migrations:
|
|
282
|
-
- Vérifiez l'historique git: git log --oneline -- "**/Migrations/"
|
|
283
|
-
- Restaurez les fichiers: git checkout <commit> -- path/to/Migrations/
|
|
284
|
-
|
|
285
|
-
================================================================================
|
|
286
|
-
```
|
|
69
|
+
Si backup manuel: afficher instructions SSMS/Azure, stopper.
|
|
287
70
|
|
|
288
71
|
---
|
|
289
72
|
|
|
290
|
-
## STEP
|
|
73
|
+
## STEP 3: Drop Database
|
|
291
74
|
|
|
292
75
|
```bash
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
# Use EF Core CLI only (NO sqlcmd)
|
|
296
|
-
dotnet ef database drop \
|
|
297
|
-
--project "$INFRA_PROJECT" \
|
|
298
|
-
--startup-project "$STARTUP_PROJECT" \
|
|
299
|
-
--force
|
|
300
|
-
|
|
301
|
-
if [ $? -eq 0 ]; then
|
|
302
|
-
echo " Database dropped successfully"
|
|
303
|
-
else
|
|
304
|
-
echo " WARNING: Drop command returned error (database may not exist)"
|
|
305
|
-
fi
|
|
76
|
+
dotnet ef database drop --project "$INFRA_PROJECT" --startup-project "$STARTUP_PROJECT" --force
|
|
306
77
|
```
|
|
307
78
|
|
|
308
79
|
---
|
|
309
80
|
|
|
310
|
-
## STEP
|
|
81
|
+
## STEP 4: Recreate + Apply
|
|
311
82
|
|
|
312
83
|
```bash
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
# Apply all migrations (creates database if missing)
|
|
316
|
-
dotnet ef database update \
|
|
317
|
-
--project "$INFRA_PROJECT" \
|
|
318
|
-
--startup-project "$STARTUP_PROJECT" \
|
|
319
|
-
--verbose
|
|
320
|
-
|
|
321
|
-
if [ $? -ne 0 ]; then
|
|
322
|
-
echo "ERROR: Failed to apply migrations"
|
|
323
|
-
exit 1
|
|
324
|
-
fi
|
|
325
|
-
|
|
326
|
-
echo " Database recreated with all migrations"
|
|
84
|
+
dotnet ef database update --project "$INFRA_PROJECT" --startup-project "$STARTUP_PROJECT" --verbose
|
|
327
85
|
```
|
|
328
86
|
|
|
329
87
|
---
|
|
330
88
|
|
|
331
|
-
## STEP
|
|
89
|
+
## STEP 5: Seed (optionnel)
|
|
332
90
|
|
|
333
91
|
```javascript
|
|
334
92
|
AskUserQuestion({
|
|
335
93
|
questions: [{
|
|
336
|
-
question: "
|
|
94
|
+
question: "Peupler avec données test (HasData)?",
|
|
337
95
|
header: "Seed",
|
|
338
96
|
options: [
|
|
339
|
-
{ label: "
|
|
340
|
-
{ label: "
|
|
97
|
+
{ label: "Oui (recommandé)", description: "Appliquer HasData" },
|
|
98
|
+
{ label: "Non", description: "Base vide" }
|
|
341
99
|
],
|
|
342
100
|
multiSelect: false
|
|
343
101
|
}]
|
|
344
102
|
})
|
|
345
103
|
```
|
|
346
104
|
|
|
347
|
-
**If yes:**
|
|
348
|
-
|
|
349
|
-
```bash
|
|
350
|
-
# HasData is already applied via migrations
|
|
351
|
-
# If additional seeding needed, use Seeder class
|
|
352
|
-
if grep -rq "IDataSeeder\|class.*Seeder" . --include="*.cs" 2>/dev/null; then
|
|
353
|
-
echo "Executing DataSeeder..."
|
|
354
|
-
dotnet run --project "$STARTUP_PROJECT" -- --seed
|
|
355
|
-
else
|
|
356
|
-
echo " HasData() seed already applied via migrations"
|
|
357
|
-
fi
|
|
358
|
-
```
|
|
359
|
-
|
|
360
|
-
---
|
|
361
|
-
|
|
362
|
-
## STEP 9: Verification
|
|
363
|
-
|
|
364
|
-
```bash
|
|
365
|
-
echo "Verifying database..."
|
|
366
|
-
|
|
367
|
-
# Check migrations status
|
|
368
|
-
dotnet ef migrations list \
|
|
369
|
-
--project "$INFRA_PROJECT" \
|
|
370
|
-
--startup-project "$STARTUP_PROJECT" \
|
|
371
|
-
--no-build 2>/dev/null | tail -10
|
|
372
|
-
|
|
373
|
-
echo ""
|
|
374
|
-
echo " Use /efcore:db-status for detailed status"
|
|
375
|
-
```
|
|
376
|
-
|
|
377
105
|
---
|
|
378
106
|
|
|
379
|
-
##
|
|
380
|
-
|
|
381
|
-
**Afficher un resume apres le reset:**
|
|
107
|
+
## Résumé
|
|
382
108
|
|
|
383
109
|
```
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
-------------------------------------------------------------------------------
|
|
390
|
-
• Environnement: {SELECTED_ENV}
|
|
391
|
-
• Serveur: {SERVER_NAME}
|
|
392
|
-
• Base: {DATABASE_NAME}
|
|
393
|
-
|
|
394
|
-
OPÉRATIONS EFFECTUÉES
|
|
395
|
-
-------------------------------------------------------------------------------
|
|
396
|
-
✓ Ancienne base supprimée (dotnet ef database drop)
|
|
397
|
-
✓ Nouvelle base créée (dotnet ef database update)
|
|
398
|
-
✓ {N} migration(s) appliquée(s)
|
|
399
|
-
{seed_applied ? "✓ Données initiales insérées (HasData)" : "○ Base vide (pas de seed)"}
|
|
400
|
-
|
|
401
|
-
CONFORMITÉ
|
|
402
|
-
-------------------------------------------------------------------------------
|
|
403
|
-
✓ EF Core CLI uniquement (pas de SQL brut)
|
|
404
|
-
✓ Conforme aux règles CLAUDE.md
|
|
405
|
-
|
|
406
|
-
===============================================================================
|
|
407
|
-
PROCHAINES ÉTAPES
|
|
408
|
-
===============================================================================
|
|
409
|
-
|
|
410
|
-
1. Vérifier le statut de la base:
|
|
411
|
-
/efcore:db-status
|
|
412
|
-
|
|
413
|
-
2. Ajouter des données de test (si nécessaire):
|
|
414
|
-
/efcore:db-seed
|
|
415
|
-
|
|
416
|
-
3. Lancer l'application:
|
|
417
|
-
dotnet run --project {STARTUP_PROJECT}
|
|
418
|
-
|
|
419
|
-
===============================================================================
|
|
420
|
-
```
|
|
421
|
-
|
|
422
|
-
**Si le reset a échoué:**
|
|
423
|
-
|
|
424
|
-
```
|
|
425
|
-
===============================================================================
|
|
426
|
-
ÉCHEC DU RESET
|
|
427
|
-
===============================================================================
|
|
428
|
-
|
|
429
|
-
ERREUR
|
|
430
|
-
-------------------------------------------------------------------------------
|
|
431
|
-
✗ {error_message}
|
|
432
|
-
|
|
433
|
-
DÉTAILS
|
|
434
|
-
-------------------------------------------------------------------------------
|
|
435
|
-
• Environnement: {SELECTED_ENV}
|
|
436
|
-
• Serveur: {SERVER_NAME}
|
|
437
|
-
• Base: {DATABASE_NAME}
|
|
438
|
-
|
|
439
|
-
===============================================================================
|
|
440
|
-
ACTIONS SUGGÉRÉES
|
|
441
|
-
===============================================================================
|
|
442
|
-
|
|
443
|
-
1. Vérifier que SQL Server est démarré
|
|
444
|
-
|
|
445
|
-
2. Vérifier les permissions sur la base
|
|
446
|
-
|
|
447
|
-
3. Consulter les logs détaillés:
|
|
448
|
-
dotnet ef database update --verbose
|
|
449
|
-
|
|
450
|
-
4. Contacter le support si le problème persiste:
|
|
451
|
-
support@atlshub.ch
|
|
452
|
-
|
|
453
|
-
===============================================================================
|
|
110
|
+
RESET - {DATABASE_NAME}
|
|
111
|
+
├── Environnement: {SELECTED_ENV}
|
|
112
|
+
├── Opérations: ✓ Drop, ✓ Create, ✓ {N} migrations
|
|
113
|
+
├── Conformité: ✓ EF Core CLI uniquement
|
|
114
|
+
└── Prochains: /efcore:db-status, /efcore:db-seed
|
|
454
115
|
```
|
|
455
116
|
|
|
456
117
|
---
|
|
@@ -459,23 +120,13 @@ DÉTAILS
|
|
|
459
120
|
|
|
460
121
|
| Option | Description |
|
|
461
122
|
|--------|-------------|
|
|
462
|
-
| `--env {name}` | Utiliser appsettings.{name}.json
|
|
123
|
+
| `--env {name}` | Utiliser appsettings.{name}.json |
|
|
463
124
|
|
|
464
|
-
##
|
|
125
|
+
## Protections
|
|
465
126
|
|
|
466
127
|
| Protection | Description |
|
|
467
128
|
|------------|-------------|
|
|
468
|
-
| Env Display | Affiche
|
|
469
|
-
| Confirmation | Demande explicite avec
|
|
470
|
-
| Production Block | Bloque si
|
|
471
|
-
|
|
|
472
|
-
| EF Core Only | No raw SQL commands - uses dotnet ef CLI |
|
|
473
|
-
| Manual Backup | User directed to SSMS/Azure for backups |
|
|
474
|
-
|
|
475
|
-
---
|
|
476
|
-
|
|
477
|
-
## Support
|
|
478
|
-
|
|
479
|
-
> **Questions ou problèmes avec le reset EF Core?**
|
|
480
|
-
>
|
|
481
|
-
> 📧 **support@atlshub.ch**
|
|
129
|
+
| Env Display | Affiche base AVANT confirmation |
|
|
130
|
+
| Confirmation | Demande explicite avec NOM |
|
|
131
|
+
| Production Block | Bloque si Production détecté |
|
|
132
|
+
| EF Core Only | Pas de SQL brut |
|