Initial commit
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
# How to Fix Seed Data Duplicate Errors
|
||||
|
||||
## Problem
|
||||
You're getting duplicate key errors because seed data was partially inserted, and when you try to seed again, it conflicts with existing data.
|
||||
|
||||
## Quick Fix (5 minutes)
|
||||
|
||||
### Step 1: Connect to Database
|
||||
1. Open SQL Server Management Studio (SSMS)
|
||||
2. Connect to your testing server database
|
||||
3. Select the `PowderCoatingDb` database
|
||||
|
||||
### Step 2: Clean Up Existing Seed Data
|
||||
1. Open the file: `cleanup-seed-data.sql`
|
||||
2. **IMPORTANT:** On line 9, change `@CompanyId` to your actual company ID
|
||||
```sql
|
||||
DECLARE @CompanyId INT = 1 -- Change to your company ID
|
||||
```
|
||||
3. Execute the entire script
|
||||
4. Verify it shows "0 Remaining Records" for all tables
|
||||
|
||||
### Step 3: Re-seed via Web Interface
|
||||
1. Log in to your application as SuperAdmin
|
||||
2. Navigate to: **Platform Management → Seed Data** (or `/SeedData`)
|
||||
3. Click **"Seed Company Data"** for your company
|
||||
4. All data should seed successfully now
|
||||
|
||||
## Finding Your Company ID
|
||||
|
||||
Run this query in SSMS:
|
||||
```sql
|
||||
SELECT Id, CompanyName, CompanyCode FROM Companies WHERE IsDeleted = 0
|
||||
```
|
||||
|
||||
## What Gets Deleted
|
||||
|
||||
The cleanup script removes:
|
||||
- ✓ All customers
|
||||
- ✓ All inventory items
|
||||
- ✓ All equipment
|
||||
- ✓ All jobs and quotes
|
||||
- ✓ All catalog items
|
||||
- ✓ All pricing tiers
|
||||
- ✓ Operating costs
|
||||
|
||||
## What Gets Preserved
|
||||
|
||||
- ✓ Your company record
|
||||
- ✓ All user accounts
|
||||
- ✓ System roles
|
||||
- ✓ You can still log in
|
||||
|
||||
## Why This Happens
|
||||
|
||||
The seed data checks if "any" records exist, but if:
|
||||
1. Seeding fails partway through (permission error, network issue, etc.)
|
||||
2. Then you try to seed again
|
||||
3. It tries to insert the same data again → duplicate key errors
|
||||
|
||||
## Prevention
|
||||
|
||||
After I update the seed service with better validation, it will:
|
||||
- Check for specific seed data patterns, not just "any" data
|
||||
- Validate company codes before creating SKUs
|
||||
- Give clear error messages if data is partially seeded
|
||||
|
||||
## Alternative: Reset Everything (Nuclear Option)
|
||||
|
||||
If you want a completely fresh database:
|
||||
|
||||
```sql
|
||||
-- WARNING: Deletes ALL data including users (except SuperAdmin)
|
||||
USE PowderCoatingDb
|
||||
GO
|
||||
|
||||
-- Keep a list of superadmins
|
||||
SELECT * INTO #TempAdmins FROM AspNetUsers WHERE Email IN ('superadmin@powdercoating.com', 'admin@powdercoating.com')
|
||||
|
||||
-- Drop and recreate (or just delete all data)
|
||||
DELETE FROM JobPhotos
|
||||
DELETE FROM JobNotes
|
||||
DELETE FROM JobItems
|
||||
DELETE FROM Jobs
|
||||
DELETE FROM QuoteItems
|
||||
DELETE FROM Quotes
|
||||
DELETE FROM InventoryTransactions
|
||||
DELETE FROM InventoryItems
|
||||
DELETE FROM Equipment
|
||||
DELETE FROM MaintenanceRecords
|
||||
DELETE FROM CatalogItems
|
||||
DELETE FROM Customers
|
||||
DELETE FROM PricingTiers
|
||||
DELETE FROM CompanyOperatingCosts
|
||||
|
||||
-- Delete non-superadmin users
|
||||
DELETE FROM AspNetUserRoles WHERE UserId NOT IN (SELECT Id FROM #TempAdmins)
|
||||
DELETE FROM AspNetUsers WHERE Id NOT IN (SELECT Id FROM #TempAdmins)
|
||||
|
||||
-- Keep only one company
|
||||
DELETE FROM Companies WHERE CompanyCode != 'DEMO'
|
||||
|
||||
DROP TABLE #TempAdmins
|
||||
|
||||
-- Now go to the web interface and seed system data, then seed company data
|
||||
```
|
||||
|
||||
## Need Help?
|
||||
|
||||
Check the logs at:
|
||||
- `[App-Folder]\logs\errors-YYYYMMDD.txt` for today's errors
|
||||
- Look for specific duplicate key errors to know which table is failing
|
||||
Reference in New Issue
Block a user