Guía para Agregar Ciudades de Curaçao en Producción
Esta guía explica cómo agregar todas las ciudades de Curaçao de forma segura en el entorno de producción.✅ Características de Seguridad
El comandocities:add-curacao está diseñado para ser 100% seguro en producción:
- ✅ No elimina datos: Solo agrega ciudades, nunca borra ni modifica datos existentes
- ✅ Idempotente: Puede ejecutarse múltiples veces sin problemas
- ✅ Transaccional: Usa transacciones de base de datos (si hay error, se revierte todo)
- ✅ Verifica duplicados: Comprueba si las ciudades ya existen antes de agregarlas
- ✅ Modo dry-run: Permite ver qué se agregaría sin hacer cambios reales
📋 Pre-requisitos
-
Asegúrate de que el país Curaçao existe en la tabla
countries- Código ISO2:
CW - Si no existe, ejecuta primero:
php artisan db:seed --class=CountriesSeeder
- Código ISO2:
-
Haz una copia de seguridad de la base de datos (recomendado pero no crítico, ya que solo agregamos datos):
🚀 Proceso de Despliegue
Paso 1: Modo Dry-Run (Recomendado)
Primero, ejecuta el comando en modo dry-run para ver qué ciudades se agregarían:- Qué país se encontró
- Cuántas ciudades ya existen
- Qué ciudades se agregarían
- NO realizará ningún cambio en la base de datos
Paso 2: Ejecutar en Producción
Si el dry-run se ve bien, ejecuta el comando sin el flag--dry-run:
- Buscará el país Curaçao (CW)
- Verificará qué ciudades ya existen
- Mostrará las ciudades que se agregarán
- Pedirá confirmación antes de proceder
- Agregará solo las ciudades que no existen
- Mostrará un resumen de lo agregado
Paso 3: Verificación
Verifica que las ciudades se agregaron correctamente:- Ve a cualquier formulario de checkout
- Selecciona el país “Curaçao”
- Verifica que aparezcan las ciudades (Willemstad, Bandariba, etc.)
📊 Ciudades que se Agregan
El comando agrega las siguientes 24 ciudades principales de Curaçao:- Willemstad (Capital)
- Bandariba
- Bandabou
- Sint Michiel
- St. Michiel
- Santa Rosa
- Sint Michiel Liber
- Brievengat
- Barber
- Dorp Soto
- Otrabanda
- Sabana Westpunt
- Westpunt
- Lagun
- Tera Kora
- Nieuwpoort
- Playa Kanoa
- Playa Kalki
- Boca San Pedro
- Rincon
- Dorp Sint Willebrordus
- Groot Sint Joris
- Sint Joris
- Klein Sint Joris
🔄 Ejecutar Múltiples Veces
El comando es completamente seguro para ejecutarse múltiples veces. Si una ciudad ya existe, simplemente la saltará y continuará con las demás.⚠️ Troubleshooting
Error: “Curaçao (CW) not found in countries table”
Solución: Ejecuta primero el seeder de países:Error de permisos de base de datos
Solución: Verifica que el usuario de la base de datos tenga permisos de INSERT en la tablacities.
Las ciudades no aparecen en el checkout
Solución:- Verifica que el endpoint
/api/get-states?country=CWdevuelva las ciudades - Limpia la caché si es necesario:
php artisan cache:clear - Verifica que el código JavaScript esté cargando las ciudades correctamente
📝 Notas Adicionales
- El CSV
cities_202505192231.csvya ha sido actualizado con estas ciudades - Si ejecutas el seeder completo de ciudades (
CitiesSeeder), estas ciudades también se incluirán - El comando usa transacciones, por lo que si hay algún error, todos los cambios se revierten automáticamente
🔗 Archivos Relacionados
- Comando:
app/Console/Commands/AddWillemstadCity.php - CSV:
cities_202505192231.csv - Modelo:
app/Models/Cities.php - Endpoint API:
routes/web.php(línea 44:/api/get-states)
