neonail-database/complete-fix.sh
2025-08-10 18:09:07 +02:00

73 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
echo "🔧 NeoNail DB - Vollständige Reparatur"
echo "====================================="
# 1. SQLite-Treiber installieren
echo "🗄️ Installiere SQLite-Treiber..."
apt update
apt install -y sqlite3 php-sqlite3 php-pdo-sqlite
# 2. Cache-Dateien löschen (Pail-Problem)
echo "🧹 Lösche Cache-Dateien..."
rm -f bootstrap/cache/packages.php
rm -f bootstrap/cache/services.php
rm -f bootstrap/cache/config.php
# 3. .env erstellen
echo "📝 Erstelle .env Datei..."
if [ ! -f ".env" ]; then
cp env-production-example.txt .env
fi
# 4. SQLite-Datenbank erstellen
echo "🗄️ Erstelle SQLite-Datenbank..."
touch database.sqlite
chmod 664 database.sqlite
# 5. Berechtigungen setzen
echo "🔐 Setze Berechtigungen..."
chmod -R 777 storage/
chmod -R 777 bootstrap/cache/
chmod 644 .env
# 6. Composer autoload neu generieren
echo "🔄 Generiere autoload neu..."
if command -v composer &> /dev/null; then
composer dump-autoload --optimize
elif [ -f "composer.phar" ]; then
php composer.phar dump-autoload --optimize
else
echo "⚠️ Composer nicht verfügbar"
fi
# 7. Laravel Cache leeren
echo "🧹 Leere Laravel Cache..."
php artisan config:clear 2>/dev/null || echo "⚠️ config:clear übersprungen"
php artisan cache:clear 2>/dev/null || echo "⚠️ cache:clear übersprungen"
# 8. Migrationen ausführen
echo "🗃️ Führe Migrationen aus..."
php artisan migrate --force 2>/dev/null || echo "⚠️ Migrationen übersprungen"
# 9. Storage Link erstellen
echo "🔗 Prüfe Storage Link..."
if [ ! -L "public/storage" ]; then
php artisan storage:link 2>/dev/null || echo "⚠️ Storage Link übersprungen"
else
echo "✅ Storage Link bereits vorhanden"
fi
echo ""
echo "✅ Vollständige Reparatur abgeschlossen!"
echo ""
echo "📋 Testen Sie:"
echo "1. php artisan --version"
echo "2. php -m | grep sqlite"
echo "3. http://192.168.30.81"
echo ""
echo "📋 Admin-User erstellen:"
echo "php artisan tinker"
echo "use App\Models\User;"
echo "User::create(['name' => 'Admin', 'email' => 'admin@neonail.com', 'password' => bcrypt('ihr_passwort')]);"