c.Databases gestisce i database gestiti di Square Cloud (MongoDB, MySQL, PostgreSQL e Redis). Ogni metodo accetta prima ctx e, tranne Create e StatusAll, poi l’id del database. Per elencare i tuoi database, usa c.Account.Me: il suo slice Databases contiene ogni database che la chiave può vedere.
L’hosting di database richiede un piano Standard, Pro o Enterprise.
Ogni snippet qui sotto funziona da solo all’interno di questo programma: incollane uno alla volta in main ed esegui goimports (vedi Eseguire gli esempi).
Creare un database
Il risultato è un
DatabaseCreated con ID, Name, Memory, CPU (float64), Type, Password, Certificate (*string, nil quando l’API non ne invia), ConnectionURL (connection_url) e Cluster. La password e il certificato vengono restituiti solo da Create (e da ResetCredentials). Senza una scadenza su ctx, la chiamata attende almeno 2 minuti prima di andare in timeout.
Recuperare un database
Aggiornare un database
Update(ctx, databaseID, squarecloud.DatabaseUpdate{Name, RAM}) rinomina o ridimensiona un database. I campi a valore zero non vengono inviati; impostane almeno uno (altrimenti 400 NO_UPDATE_DATA).
Avvio e arresto
ctx attendono almeno 2 minuti, e un rifiuto è un 409 con un codice e un messaggio vuoto: CONTAINER_ALREADY_STARTED, CONTAINER_ALREADY_STOPPED, CONTAINER_NOT_FOUND, CONTAINER_INSUFFICIENT_DISK_SPACE, CONTAINER_NETWORK_CONFLICT o ACTION_FAILED. Mentre è in corso il ripristino di uno snapshot, producono 403 RESTORE_IN_PROGRESS.
Stato e metriche
Status(ctx, databaseID) restituisce valori formattati; StatusRaw(ctx, databaseID) restituisce numeri. StatusAll(ctx) restituisce un riepilogo per ogni database. Metrics(ctx, databaseID) restituisce le ultime 24 ore, un punto ogni 5 minuti, dal più recente.
Credenziali
Certificate(ctx, databaseID) restituisce il certificato TLS come PEM codificato in base64. ResetCredentials(ctx, databaseID, reset) rigenera la password (squarecloud.ResetPassword, restituisce quella nuova) o il certificato (squarecloud.ResetCertificate, restituisce ""). Il database deve essere in esecuzione (400 DATABASE_NOT_RUNNING).
Eliminare un database
Snapshot
c.Databases.Snapshots ha gli stessi List, Create e Restore delle app. Vedi Snapshot.
Prossimi passi
Workspace
Condividi le app con il tuo team.
Riferimento API dei database
Gli endpoint REST dietro questi metodi.
Database dalla CLI
Le stesse azioni dal terminale.

