Zum Hauptinhalt springen
Datenbanken sind verwaltete Dienste von Square Cloud, mit denen du Daten für deine Anwendungen speichern und verwalten kannst. Zu den unterstützten Datenbanken gehören Redis, MongoDB, MySQL und PostgreSQL.

Eine Datenbank erstellen

client.create_database gibt ein Database-Objekt zurück.
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

Datenbankinformationen abrufen

client.get_database_info gibt ein DatabaseInfo-Objekt zurück.
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

Datenbankstatus abrufen

client.get_database_status gibt ein StatusData-Objekt zurück.
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

Alle Datenbanken auflisten

client.all_databases_status gibt eine Liste von ResumedStatus-Objekten zurück.
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}")

Eine Datenbank starten

client.start_database gibt ein Response-Objekt zurück.
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}")

Eine Datenbank stoppen

client.stop_database gibt ein Response-Objekt zurück.
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}")

Eine Datenbank bearbeiten

client.edit_database gibt ein Response-Objekt zurück. Du kannst den Datenbanknamen und/oder die Speicherzuweisung aktualisieren.
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}")

Eine Datenbank löschen

client.delete_database gibt ein Response-Objekt zurück.
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}")

Datenbank-Zugangsdaten verwalten

Das Datenbankzertifikat abrufen

client.get_database_certificate gibt ein Certificate-Objekt zurück.
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')

Das Datenbankpasswort zurücksetzen

client.reset_database_password gibt einen neuen Passwort-String zurück.
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}")

Das Datenbankzertifikat zurücksetzen

client.reset_database_certificate gibt ein Response-Objekt zurück.
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}")

Datenbank-Datenstrukturen

Database

Das Database-Objekt repräsentiert eine neu erstellte Datenbank mit vollständigen Details:
PropertyTypBeschreibung
idstrEindeutige Kennung der Datenbank
namestrDatenbankname
typestrDatenbanktyp (redis, mongo, mysql, postgres)
clusterstrInformationen zum Datenbank-Cluster
memoryintZugewiesener Speicher (MB)
cpuintZugewiesene CPU (vCPU)
passwordstrDatenbankpasswort
certificateCertificateTLS-Zertifikat für eine sichere Verbindung
connection_urlstrVerbindungs-URL für die Datenbank

DatabaseInfo

Das DatabaseInfo-Objekt enthält Informationen über eine bestehende Datenbank:
PropertyTypBeschreibung
idstrEindeutige Kennung der Datenbank
namestrDatenbankname
typestrDatenbanktyp (redis, mongo, mysql, postgres)
clusterstrInformationen zum Datenbank-Cluster
ownerstrBenutzer-ID des Datenbankeigentümers
portintDatenbankport
ramintAktuelle RAM-Nutzung (MB)
created_atstrErstellungszeitstempel (ISO 8601)

StatusData

Das StatusData-Objekt enthält Echtzeit-Statusinformationen über eine Datenbank:
PropertyTypBeschreibung
ramstrAktuelle RAM-Nutzung
cpustrAktuelle CPU-Auslastung in Prozent
networkdictNetzwerkstatistiken (Upload/Download)
runningboolOb die Datenbank läuft
storagestrSpeichernutzung

Unterstützte Datenbanktypen

Square Cloud unterstützt die folgenden Datenbanken:
TypStandardversionBeschreibung
redis7.4.5In-Memory-Datenspeicher für Caching und Echtzeitanwendungen
mongo8.0.11NoSQL-Dokumentendatenbank
mysql9.5Relationale Datenbank
postgres17.6Fortschrittliche relationale Datenbank