Pular para o conteúdo principal
Bancos de dados são serviços gerenciados fornecidos pela Square Cloud que permitem armazenar e gerenciar dados para suas aplicações. Os bancos de dados suportados incluem Redis, MongoDB, MySQL e PostgreSQL.

Criando um banco de dados

client.create_database retorna um objeto Database.
import squarecloud as square

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

async def example():
    # Criar um banco de dados MongoDB com 1024MB de memória
    database = await client.create_database(
        name='meu_banco_dados',
        memory=1024,  # Memória em MB
        type='mongo',  # "redis", "mongo", "mysql" ou "postgres"
        version='8.0.11'  # Opcional - a versão será inferida se não fornecida
    )
    
    print(database.id)               # Identificador do banco de dados
    print(database.name)             # Nome do banco de dados
    print(database.type)             # Tipo de banco de dados
    print(database.cluster)          # Cluster do banco de dados
    print(database.memory)           # Memória alocada (MB)
    print(database.cpu)              # CPU alocada
    print(database.password)         # Senha do banco de dados
    print(database.connection_url)   # URL de conexão
    print(database.certificate)      # Certificado TLS

Recuperando informações do banco de dados

client.get_database_info retorna um 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)            # Identificador do banco de dados
    print(database_info.name)          # Nome do banco de dados
    print(database_info.type)          # Tipo de banco de dados
    print(database_info.owner)         # ID do usuário proprietário
    print(database_info.cluster)       # Cluster do banco de dados
    print(database_info.ram)           # Uso de RAM em MB
    print(database_info.port)          # Porta do banco de dados
    print(database_info.created_at)    # Data de criação (ISO 8601)
    print(database_info.created_at_datetime)  # Data de criação como objeto datetime

Obtendo o status do banco de dados

client.get_database_status retorna um 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)      # Uso de RAM
    print(status.cpu)      # Porcentagem de uso de CPU
    print(status.network)  # Estatísticas de rede
    print(status.running)  # Se o banco de dados está em execução
    print(status.storage)  # Uso de armazenamento

Listando todos os bancos de dados

client.all_databases_status retorna uma 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"Banco de dados: {database.id}")
        print(f"  CPU: {database.cpu}")
        print(f"  RAM: {database.ram}")
        print(f"  Em execução: {database.running}")

Iniciando um banco de dados

client.start_database retorna um 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"Banco de dados iniciado: {response.status}")

Parando um banco de dados

client.stop_database retorna um 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"Banco de dados parado: {response.status}")

Editando um banco de dados

client.edit_database retorna um objeto Response. Você pode atualizar o nome do banco de dados e/ou alocação de memória.
import squarecloud as square

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

async def example():
    # Atualizar nome do banco de dados
    response = await client.edit_database(
        database_id='DATABASE_ID',
        name='novo_nome_banco_dados'
    )
    
    # Atualizar alocação de memória
    response = await client.edit_database(
        database_id='DATABASE_ID',
        memory=2048  # Nova memória em MB
    )
    
    # Atualizar nome e memória
    response = await client.edit_database(
        database_id='DATABASE_ID',
        name='novo_nome',
        memory=2048
    )
    
    print(f"Banco de dados atualizado: {response.status}")

Deletando um banco de dados

client.delete_database retorna um 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"Banco de dados deletado: {response.status}")

Gerenciando credenciais do banco de dados

Obtendo o certificado do banco de dados

client.get_database_certificate retorna um 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')
    
    # Salvar certificado em arquivo
    certificate.save()  # Salva como 'certificate.pem' por padrão
    
    # Salvar certificado com nome personalizado
    certificate.save(filename='meu_cert', export_to='cert')
    
    # Salvar certificado em diretório específico
    certificate.save(dir='./certs', filename='meu_cert', export_to='cert')

Resetando a senha do banco de dados

client.reset_database_password retorna uma string com a nova senha.
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"Nova senha: {new_password}")

Resetando o certificado do banco de dados

client.reset_database_certificate retorna um 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"Certificado resetado: {response.status}")

Estruturas de dados do banco de dados

Database

O objeto Database representa um banco de dados recém-criado com detalhes completos:
PropriedadeTipoDescrição
idstrIdentificador único do banco de dados
namestrNome do banco de dados
typestrTipo de banco de dados (redis, mongo, mysql, postgres)
clusterstrInformações do cluster do banco de dados
memoryintMemória alocada (MB)
cpuintCPU alocada (vCPU)
passwordstrSenha do banco de dados
certificateCertificateCertificado TLS para conexão segura
connection_urlstrURL de conexão para o banco de dados

DatabaseInfo

O objeto DatabaseInfo contém informações sobre um banco de dados existente:
PropriedadeTipoDescrição
idstrIdentificador único do banco de dados
namestrNome do banco de dados
typestrTipo de banco de dados (redis, mongo, mysql, postgres)
clusterstrInformações do cluster do banco de dados
ownerstrID do usuário proprietário do banco de dados
portintPorta do banco de dados
ramintUso atual de RAM (MB)
created_atstrTimestamp de criação (ISO 8601)

StatusData

O objeto StatusData contém informações de status em tempo real sobre um banco de dados:
PropriedadeTipoDescrição
ramstrUso atual de RAM
cpustrPorcentagem de uso de CPU
networkdictEstatísticas de rede (upload/download)
runningboolSe o banco de dados está em execução
storagestrUso de armazenamento

Tipos de banco de dados suportados

A Square Cloud oferece suporte aos seguintes bancos de dados:
TipoVersão PadrãoDescrição
redis7.4.5Armazenamento de dados em memória para cache e aplicações em tempo real
mongo8.0.11Banco de dados NoSQL de documentos
mysql9.5Banco de dados relacional
postgres17.6Banco de dados relacional avançado