Tutorial: Reiniciar una Base de Datos en RDS PostgreSQL durante un Redeploy

Este tutorial te guiará a través de los pasos necesarios para borrar todas las tablas de tu base de datos PostgreSQL alojada en RDS de AWS y comenzar desde cero. Esto es útil cuando necesitas realizar un redeploy de tu aplicación y quieres asegurarte de que la base de datos esté limpia antes de volver a aplicar las migraciones.

Paso 1: Conéctate a la Base de Datos RDS

Primero, necesitas conectarte a tu instancia de base de datos RDS. Puedes hacerlo desde tu computadora local o desde tu instancia EC2 en AWS.

Desde tu Computadora Local

Si te conectas desde tu computadora, asegúrate de que el Security Group de tu instancia RDS permita el acceso desde la IP de tu computadora. Deberás permitir el acceso al puerto PostgreSQL (por defecto 5432).

Ejecuta el siguiente comando en tu terminal para conectarte:

psql -h your-rds-endpoint.rds.amazonaws.com -U your-username -d your-database-name

Desde tu Instancia EC2

Si te conectas desde una instancia EC2, asegúrate de que tanto tu instancia EC2 como la instancia RDS estén en el mismo Security Group o de que el Security Group de RDS permita el acceso desde EC2.

Ejecuta el mismo comando para conectarte:

psql -h your-rds-endpoint.rds.amazonaws.com -U your-username -d your-database-name

Paso 2: Borrar Todas las Tablas

Una vez que estés conectado a la base de datos, necesitas borrar todas las tablas. Esto lo puedes hacer ejecutando el siguiente bloque de código SQL:

DO $$ DECLARE
r RECORD;
BEGIN
    FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = current_schema()) LOOP
        EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE';
    END LOOP;
END $$;

Si el comando se ejecuta correctamente, deberías ver un mensaje de salida que dice “DO”. Esto indica que todas las tablas han sido eliminadas con éxito.

Paso 3: Reinicializa la Base de Datos

Después de haber eliminado todas las tablas, puedes reinicializar la base de datos. Para ello, regresa a tu entorno de desarrollo y ejecuta las migraciones de Django:

python3 manage.py migrate

Este comando volverá a crear todas las tablas necesarias según las migraciones definidas en tu proyecto Django.

Paso 4: Crea un Superuser

Finalmente, necesitas crear un superusuario para poder acceder al panel de administración de Django. Ejecuta el siguiente comando:

python3 manage.py createsuperuser

Sigue las indicaciones para crear un superusuario con las credenciales que prefieras.


Con estos pasos, habrás limpiado y reinicializado tu base de datos PostgreSQL en AWS RDS, y estarás listo para continuar con tu redeploy. ¡Buena suerte!