Saltar al contenido principal
Las bases de datos son servicios gestionados que ofrece Square Cloud y que te permiten almacenar y administrar datos para tus aplicaciones. Las bases de datos soportadas incluyen Redis, MongoDB, MySQL y PostgreSQL.

Creando una base de datos

client.create_database devuelve un objeto Database.
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    # Create a MongoDB database with 1024MB of memory
    database = await client.create_database(
        name='my_database',
        memory=1024,  # Memory in MB
        type='mongo',  # "redis", "mongo", "mysql", or "postgres"
        version='8.0.11'  # Optional - version will be inferred if not provided
    )
    
    print(database.id)               # Database identifier
    print(database.name)             # Database name
    print(database.type)             # Database type
    print(database.cluster)          # Database cluster
    print(database.memory)           # Memory allocated (MB)
    print(database.cpu)              # CPU allocated
    print(database.password)         # Database password
    print(database.connection_url)   # Connection URL
    print(database.certificate)      # TLS certificate

Obteniendo información de la base de datos

client.get_database_info devuelve un objeto DatabaseInfo.
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    database_info = await client.get_database_info(database_id='DATABASE_ID')
    
    print(database_info.id)            # Database identifier
    print(database_info.name)          # Database name
    print(database_info.type)          # Database type
    print(database_info.owner)         # Database owner user ID
    print(database_info.cluster)       # Database cluster
    print(database_info.ram)           # RAM usage in MB
    print(database_info.port)          # Database port
    print(database_info.created_at)    # Creation date (ISO 8601)
    print(database_info.created_at_datetime)  # Creation date as datetime object

Obteniendo el estado de la base de datos

client.get_database_status devuelve un objeto StatusData.
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    status = await client.get_database_status(database_id='DATABASE_ID')
    
    print(status.ram)      # RAM usage
    print(status.cpu)      # CPU usage percentage
    print(status.network)  # Network statistics
    print(status.running)  # Whether database is running
    print(status.storage)  # Storage usage

Listando todas las bases de datos

client.all_databases_status devuelve una lista de objetos ResumedStatus.
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    all_databases = await client.all_databases_status()
    
    for database in all_databases:
        print(f"Database: {database.id}")
        print(f"  CPU: {database.cpu}")
        print(f"  RAM: {database.ram}")
        print(f"  Running: {database.running}")

Iniciando una base de datos

client.start_database devuelve un objeto Response.
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    response = await client.start_database(database_id='DATABASE_ID')
    print(f"Database started: {response.status}")

Deteniendo una base de datos

client.stop_database devuelve un objeto Response.
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    response = await client.stop_database(database_id='DATABASE_ID')
    print(f"Database stopped: {response.status}")

Editando una base de datos

client.edit_database devuelve un objeto Response. Puedes actualizar el nombre de la base de datos y/o la asignación de memoria.
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    # Update database name
    response = await client.edit_database(
        database_id='DATABASE_ID',
        name='new_database_name'
    )
    
    # Update memory allocation
    response = await client.edit_database(
        database_id='DATABASE_ID',
        memory=2048  # New memory in MB
    )
    
    # Update both name and memory
    response = await client.edit_database(
        database_id='DATABASE_ID',
        name='new_name',
        memory=2048
    )
    
    print(f"Database updated: {response.status}")

Eliminando una base de datos

client.delete_database devuelve un objeto Response.
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    response = await client.delete_database(database_id='DATABASE_ID')
    print(f"Database deleted: {response.status}")

Gestionando las credenciales de la base de datos

Obteniendo el certificado de la base de datos

client.get_database_certificate devuelve un objeto Certificate.
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    certificate = await client.get_database_certificate(database_id='DATABASE_ID')
    
    # Save certificate to file
    certificate.save()  # Saves as 'certificate.pem' by default
    
    # Save certificate with custom filename
    certificate.save(filename='my_cert', export_to='cert')
    
    # Save certificate to specific directory
    certificate.save(dir='./certs', filename='my_cert', export_to='cert')

Restableciendo la contraseña de la base de datos

client.reset_database_password devuelve una cadena con la nueva contraseña.
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    new_password = await client.reset_database_password(database_id='DATABASE_ID')
    print(f"New password: {new_password}")

Restableciendo el certificado de la base de datos

client.reset_database_certificate devuelve un objeto Response.
import squarecloud as square

client = square.Client(api_key='API_KEY')

async def example():
    response = await client.reset_database_certificate(database_id='DATABASE_ID')
    print(f"Certificate reset: {response.status}")

Estructuras de datos de la base de datos

Database

El objeto Database representa una base de datos recién creada con todos los detalles:
PropiedadTipoDescripción
idstrIdentificador único de la base de datos
namestrNombre de la base de datos
typestrTipo de base de datos (redis, mongo, mysql, postgres)
clusterstrInformación del cluster de la base de datos
memoryintMemoria asignada (MB)
cpuintCPU asignada (vCPU)
passwordstrContraseña de la base de datos
certificateCertificateCertificado TLS para conexión segura
connection_urlstrURL de conexión de la base de datos

DatabaseInfo

El objeto DatabaseInfo contiene información sobre una base de datos existente:
PropiedadTipoDescripción
idstrIdentificador único de la base de datos
namestrNombre de la base de datos
typestrTipo de base de datos (redis, mongo, mysql, postgres)
clusterstrInformación del cluster de la base de datos
ownerstrID de usuario del propietario de la base de datos
portintPuerto de la base de datos
ramintUso actual de RAM (MB)
created_atstrMarca de tiempo de creación (ISO 8601)

StatusData

El objeto StatusData contiene información de estado en tiempo real sobre una base de datos:
PropiedadTipoDescripción
ramstrUso actual de RAM
cpustrPorcentaje de uso actual de CPU
networkdictEstadísticas de red (subida/bajada)
runningboolSi la base de datos está en ejecución
storagestrUso de almacenamiento

Tipos de base de datos soportados

Square Cloud soporta las siguientes bases de datos:
TipoVersión por defectoDescripción
redis7.4.5Almacén de datos en memoria para caché y aplicaciones en tiempo real
mongo8.0.11Base de datos de documentos NoSQL
mysql9.5Base de datos relacional
postgres17.6Base de datos relacional avanzada