Passer au contenu principal
Les bases de données sont des services managés fournis par Square Cloud qui vous permettent de stocker et de gérer les données de vos applications. Les bases de données prises en charge incluent Redis, MongoDB, MySQL et PostgreSQL.

Créer une base de données

client.create_database renvoie un objet 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

Récupérer les informations d’une base de données

client.get_database_info renvoie un objet 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

Obtenir le statut d’une base de données

client.get_database_status renvoie un objet 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

Lister toutes les bases de données

client.all_databases_status renvoie une liste d’objets 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}")

Démarrer une base de données

client.start_database renvoie un objet 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}")

Arrêter une base de données

client.stop_database renvoie un objet 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}")

Modifier une base de données

client.edit_database renvoie un objet Response. Vous pouvez mettre à jour le nom de la base de données et/ou l’allocation de mémoire.
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}")

Supprimer une base de données

client.delete_database renvoie un objet 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}")

Gérer les identifiants d’une base de données

Obtenir le certificat de la base de données

client.get_database_certificate renvoie un objet 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')

Réinitialiser le mot de passe de la base de données

client.reset_database_password renvoie une nouvelle chaîne de mot de passe.
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}")

Réinitialiser le certificat de la base de données

client.reset_database_certificate renvoie un objet 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}")

Structures de données des bases de données

Database

L’objet Database représente une base de données nouvellement créée, avec tous ses détails :
PropriétéTypeDescription
idstrIdentifiant unique de la base de données
namestrNom de la base de données
typestrType de base de données (redis, mongo, mysql, postgres)
clusterstrInformations sur le cluster de la base de données
memoryintMémoire allouée (MB)
cpuintCPU alloué (vCPU)
passwordstrMot de passe de la base de données
certificateCertificateCertificat TLS pour une connexion sécurisée
connection_urlstrURL de connexion à la base de données

DatabaseInfo

L’objet DatabaseInfo contient des informations sur une base de données existante :
PropriétéTypeDescription
idstrIdentifiant unique de la base de données
namestrNom de la base de données
typestrType de base de données (redis, mongo, mysql, postgres)
clusterstrInformations sur le cluster de la base de données
ownerstrID utilisateur du propriétaire de la base de données
portintPort de la base de données
ramintUtilisation actuelle de la RAM (MB)
created_atstrHorodatage de création (ISO 8601)

StatusData

L’objet StatusData contient des informations de statut en temps réel sur une base de données :
PropriétéTypeDescription
ramstrUtilisation actuelle de la RAM
cpustrPourcentage d’utilisation actuel du CPU
networkdictStatistiques réseau (upload/download)
runningboolIndique si la base de données est en cours d’exécution
storagestrUtilisation du stockage

Types de bases de données pris en charge

Square Cloud prend en charge les bases de données suivantes :
TypeVersion par défautDescription
redis7.4.5Magasin de données en mémoire pour le cache et les applications en temps réel
mongo8.0.11Base de données documentaire NoSQL
mysql9.5Base de données relationnelle
postgres17.6Base de données relationnelle avancée