You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.3 KiB
JavaScript
78 lines
2.3 KiB
JavaScript
const { run } = require('../src/database')
|
|
const fs = require('fs')
|
|
const path = require('path')
|
|
|
|
async function seedDatabase() {
|
|
try {
|
|
console.log('🌱 Chargement des données de test...')
|
|
|
|
// Créer un utilisateur admin (BUG : mot de passe en clair)
|
|
await run(
|
|
`INSERT INTO users (email, password, nom, prenom, is_admin)
|
|
VALUES (?, ?, ?, ?, ?)`,
|
|
['admin@bricoloc.fr', 'admin123', 'Admin', 'BricoLoc', 1]
|
|
)
|
|
|
|
// Créer un utilisateur standard (BUG : mot de passe en clair)
|
|
await run(
|
|
`INSERT INTO users (email, password, nom, prenom, telephone, adresse, code_postal, ville)
|
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?)`,
|
|
[
|
|
'jean.dupont@email.fr',
|
|
'password123',
|
|
'Dupont',
|
|
'Jean',
|
|
'0612345678',
|
|
'123 Rue de la Paix',
|
|
'31000',
|
|
'Toulouse',
|
|
]
|
|
)
|
|
|
|
console.log('✓ Utilisateurs créés')
|
|
|
|
// Load seed files
|
|
const seedsDir = path.join(__dirname, '../data/seeds')
|
|
const seedFiles = ['entrepots.sql', 'categories.sql', 'outils.sql', 'stocks.sql']
|
|
|
|
for (const file of seedFiles) {
|
|
const filePath = path.join(seedsDir, file)
|
|
if (fs.existsSync(filePath)) {
|
|
console.log(` Loading ${file}...`)
|
|
const sql = fs.readFileSync(filePath, 'utf8')
|
|
|
|
// Split by semicolons and execute each statement
|
|
const statements = sql
|
|
.split(';')
|
|
.map(s => s.trim())
|
|
.filter(s => s.length > 0 && !s.startsWith('--'))
|
|
|
|
for (const statement of statements) {
|
|
try {
|
|
await run(statement)
|
|
} catch (error) {
|
|
// Skip duplicate entries or errors (for re-running seed)
|
|
if (!error.message.includes('UNIQUE constraint failed')) {
|
|
console.warn(` Warning: ${error.message}`)
|
|
}
|
|
}
|
|
}
|
|
console.log(` ✓ ${file} chargé`)
|
|
}
|
|
}
|
|
|
|
console.log('\n✅ Données de test chargées avec succès')
|
|
console.log('\n📊 Résumé:')
|
|
console.log(' - 2 utilisateurs (admin + standard)')
|
|
console.log(' - 10 entrepôts')
|
|
console.log(' - 12 catégories')
|
|
console.log(' - 50+ outils')
|
|
console.log(' - Stocks pour tous les outils/entrepôts')
|
|
} catch (error) {
|
|
console.error('❌ Erreur lors du seed:', error.message)
|
|
process.exit(1)
|
|
}
|
|
}
|
|
|
|
seedDatabase()
|