60 lines
2.0 KiB
Python
Executable File
60 lines
2.0 KiB
Python
Executable File
#!/usr/bin/env python
|
|
"""
|
|
Database setup script for Dubai Analytics Platform
|
|
"""
|
|
import os
|
|
import sys
|
|
import django
|
|
from django.core.management import execute_from_command_line
|
|
|
|
# Add the project directory to Python path
|
|
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
# Set Django settings
|
|
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'dubai_analytics.settings')
|
|
|
|
# Setup Django
|
|
django.setup()
|
|
|
|
def setup_database():
|
|
"""Setup the database with migrations and sample data"""
|
|
print("🚀 Setting up Dubai Analytics Database...")
|
|
|
|
# Run migrations
|
|
print("📊 Running database migrations...")
|
|
execute_from_command_line(['manage.py', 'migrate'])
|
|
|
|
# Create superuser if it doesn't exist
|
|
print("👤 Creating superuser...")
|
|
from django.contrib.auth import get_user_model
|
|
User = get_user_model()
|
|
|
|
if not User.objects.filter(is_superuser=True).exists():
|
|
User.objects.create_superuser(
|
|
username='admin',
|
|
email='admin@dubai-analytics.com',
|
|
password='admin123'
|
|
)
|
|
print("✅ Superuser created: admin@dubai-analytics.com / admin123")
|
|
else:
|
|
print("✅ Superuser already exists")
|
|
|
|
# Import sample data
|
|
print("📁 Importing sample data...")
|
|
try:
|
|
execute_from_command_line(['manage.py', 'import_csv_data', '--data-dir', 'sample data'])
|
|
print("✅ Sample data imported successfully")
|
|
except Exception as e:
|
|
print(f"⚠️ Warning: Could not import sample data: {e}")
|
|
print(" You can import it later with: python manage.py import_csv_data --data-dir 'sample data'")
|
|
|
|
print("🎉 Database setup completed!")
|
|
print("\nNext steps:")
|
|
print("1. Start the backend: python manage.py runserver")
|
|
print("2. Start the frontend: cd frontend && npm run dev")
|
|
print("3. Access admin panel: http://localhost:3000")
|
|
print("4. Access API docs: http://localhost:8000/api/docs/")
|
|
|
|
if __name__ == '__main__':
|
|
setup_database()
|