44 lines
1.7 KiB
Python
44 lines
1.7 KiB
Python
import sys
|
||
from app import create_app, db
|
||
from app.models.user import User
|
||
|
||
def init_database():
|
||
app = create_app()
|
||
with app.app_context():
|
||
try:
|
||
print("⏳ Conectando a la base de datos y creando tablas...")
|
||
db.create_all()
|
||
print("✅ Tablas creadas en la base de datos con éxito.")
|
||
|
||
# Verificar o crear usuario administrador
|
||
admin = User.query.filter_by(email="admin@edu-space.com").first()
|
||
if not admin:
|
||
print("⏳ Creando usuario administrador inicial...")
|
||
admin = User(
|
||
email="admin@edu-space.com",
|
||
name="System Administrator",
|
||
role="ADMIN",
|
||
is_active=True
|
||
)
|
||
admin.set_password("admin123")
|
||
db.session.add(admin)
|
||
db.session.commit()
|
||
print("✅ Usuario inicial creado exitosamente:")
|
||
print(" Email: admin@edu-space.com")
|
||
print(" Password: admin123")
|
||
else:
|
||
print("ℹ️ El usuario admin (admin@edu-space.com) ya existe en la base de datos.")
|
||
|
||
print("\n🚀 Base de datos inicializada y lista para usar.")
|
||
|
||
except Exception as e:
|
||
print(f"\n❌ Error al inicializar la base de datos: {str(e)}")
|
||
print("\nVerifica que:")
|
||
print("1. El servicio de PostgreSQL o MySQL esté corriendo.")
|
||
print("2. La base de datos 'classrooms_db' haya sido creada.")
|
||
print("3. La variable DATABASE_URL en el archivo .env tenga el usuario y contraseña correctos.")
|
||
sys.exit(1)
|
||
|
||
if __name__ == "__main__":
|
||
init_database()
|