Langsung ke konten

Database ​

Add Service → Databases menampilkan PostgreSQL, MySQL, MariaDB, MongoDB, Redis, dan Valkey. Pilih versi di barisnya lalu klik (atau tekan Enter): database ditambahkan dan di-deploy.

DatabaseVersiVolume data
PostgreSQL18, 17, 16, 15, 14/var/lib/postgresql (18+) atau /var/lib/postgresql/data
MySQL8.4 LTS, 9, 8.0/var/lib/mysql
MariaDB11.8 LTS, 11.4 LTS, 10.11 LTS/var/lib/mysql
MongoDB8.0, 7.0, 6.0/data/db
Redis8, 7.4, 7.2/data
Valkey8, 7.2/data

Setiap database mendapat volume untuk datanya, kata sandi yang dibuat otomatis, dan health check. Versi mayornya tetap: meningkatkannya nanti memerlukan dump dan restore.

Terhubung dari aplikasi Anda ​

Layanan lain di proyek menjangkau database di <hostname>.zenavo.internal dan menerima variabel berikut, yang dinamai sesuai hostname privat database saat ditambahkan (postgresql → POSTGRESQL_…, postgresql-2 → POSTGRESQL_2_…). Bagian host-nya adalah ${CONTAINER_HOSTNAME}, sehingga mengikuti perubahan hostname di kemudian hari:

VariabelContoh
<NAME>_CONNECTION_STRINGpostgresql://postgres:…@postgresql.zenavo.internal:5432/zenavo
<NAME>_HOSTpostgresql.zenavo.internal
<NAME>_PORT5432
<NAME>_DB_PASSWORDkata sandi yang dibuat otomatis

Database bersifat privat untuk proyek. Untuk menjangkaunya dari komputer Anda, publikasikan port TCP di Networking (Port TCP & UDP) atau gunakan panel Command layanan.

Tampilan database ​

Tab Database pada layanan database menampilkan datanya dan menjalankan permintaan di dalam kontainer database dengan klien database itu sendiri, terhubung lewat socket lokal kontainer atau 127.0.0.1 dengan kredensial dari variabel layanan. Port database tidak dibuka untuk ini, kredensial tidak pernah sampai ke browser, dan tidak ada yang Anda ketik yang melewati shell.

Siapa yang bisa melihat dataMember, admin, dan pemilik tim. Viewer tidak bisa melihat data.
Siapa yang bisa mengubah dataAdmin dan pemilik tim.
Batas15 detik, output 2 MB, dan dua permintaan sekaligus per database. Hasil yang lebih panjang dipotong dan ditandai.
Log auditSetiap daftar, halaman, query, dan perintah dicatat di log audit tim beserta layanan dan jenis permintaannya, tetapi tidak pernah SQL, kunci, nilai, filter, atau dokumen, yang mungkin berisi rahasia.

Klien berjalan sebagai pengguna administratif database, dan member tim sudah bisa membuka shell di kontainer dari panel Command, jadi mode read-only tampilan ini melindungi dari perubahan yang tidak disengaja; ini bukan sandbox. Gunakan pengguna database dengan hak lebih sedikit untuk kebutuhan pemisahan yang lebih ketat.

PostgreSQL, MySQL, dan MariaDB ​

Tab ini menampilkan tabel dan view beserta perkiraan jumlah baris dan kolomnya (primary key ditandai). Klik tabel untuk menelusuri barisnya, 100 sekaligus, atau beralih ke SQL untuk menjalankan statement dan melihat hasilnya sebagai tabel. Tekan ⌘ Enter (Ctrl Enter) untuk menjalankannya; jika ada teks yang dipilih, hanya pilihan itu yang dijalankan. Query memakai psql, atau mysql / mariadb.

Read-only secara bawaanStatement berjalan dalam transaksi read-only, dan hanya SELECT, WITH, SHOW, EXPLAIN, dan DESCRIBE yang diterima.
PenulisanAdmin atau pemilik tim menyalakan Allow writes untuk INSERT, UPDATE, DELETE, dan perubahan skema. Perubahan langsung berlaku; buat backup terlebih dahulu.
Satu statement setiap kaliSkrip dengan beberapa statement, perintah klien (\!, source, system, …), dan executable comment MySQL (/*! … */) ditolak.
BatasTimeout statement 15 detik dan 1.000 baris per query.

Redis dan Valkey ​

Keys menampilkan kunci beserta tipe, time to live, dan ukuran memorinya. Pilih database (db0, db1, …; daftar menunjukkan berapa kunci di masing-masing) dan ketik pola pencocokan seperti user:*. Kunci didaftar dengan SCAN, 100 sekaligus, tidak pernah dengan KEYS, yang memblokir server pada database besar; Scan more melanjutkan. Klik kunci untuk melihat nilainya:

TipeDitampilkan sebagai
stringNilainya, hingga 256 KB
hashField dan nilai, 100 sekaligus (HSCAN)
listItem beserta indeksnya, 100 sekaligus
setAnggota, 100 sekaligus (SSCAN)
sorted setAnggota dan skor secara berurutan, 100 sekaligus
streamEntri beserta field-nya, 100 sekaligus

Elemen dipotong pada 4 KB. Byte yang bukan teks ditampilkan sebagai \xHH. Tipe modul (JSON, time series, …) menampilkan tipe dan ukurannya; baca dengan perintahnya sendiri.

Command menjalankan satu perintah, dengan aturan kutip seperti redis-cli: SET "my key" "a value". Tekan Enter untuk menjalankannya. Perintah memakai redis-cli atau valkey-cli dengan kata sandi dari REDIS_PASSWORD atau VALKEY_PASSWORD.

Read-only secara bawaanHanya perintah baca yang diterima: GET, HGETALL, LRANGE, SCAN, TTL, INFO, …
PenulisanAdmin atau pemilik tim menyalakan Allow writes untuk perintah yang mengubah kunci dan nilai: SET, DEL, EXPIRE, HSET, LPUSH, ZADD, XADD, … Perubahan langsung berlaku.
Selalu ditolakPerintah yang memengaruhi seluruh server atau klien lain: FLUSHALL, FLUSHDB, SWAPDB, CONFIG, SHUTDOWN, DEBUG, MODULE, ACL, CLIENT, MONITOR, SLOWLOG, REPLICAOF / SLAVEOF, MIGRATE, SAVE, BGSAVE, CLUSTER, FAILOVER; KEYS; skrip (EVAL, EVALSHA, SCRIPT, FUNCTION, FCALL); perintah yang memblokir (BLPOP, XREAD … BLOCK, WAIT, …); pub/sub, transaksi (MULTI, WATCH), dan SELECT. Perintah yang tidak dikenal tampilan ini juga ditolak.

Untuk hal lainnya, jalankan redis-cli atau valkey-cli dari panel Command.

MongoDB ​

Tab ini menampilkan database dan koleksinya beserta perkiraan jumlah dokumen (admin, config, dan local muncul di System databases). Klik koleksi dan masukkan filter, urutan, dan proyeksi sebagai JSON, seperti {"status": "active"}, {"created": -1}, dan {"name": 1}; tekan Enter untuk mencari. Dokumen ditampilkan 50 sekaligus sebagai Extended JSON mode relaxed: {"$oid": "…"} untuk object ID, {"$date": "…"} untuk tanggal, dan {"$numberLong": "…"} untuk integer 64-bit yang tidak bisa direpresentasikan persis oleh angka JavaScript. Gunakan bentuk yang sama di filter. Permintaan memakai mongosh, masuk dengan MONGO_INITDB_ROOT_USERNAME dan MONGO_INITDB_ROOT_PASSWORD.

PencarianFilter, urutan, dan proyeksi masing-masing hingga 64 KB; paling banyak 500 dokumen per halaman. Dokumen di atas 256 KB hanya menampilkan _id-nya; gunakan proyeksi untuk melihat sebagian.
PerubahanAdmin dan pemilik tim bisa Insert dokumen, serta memperbarui atau menghapus satu dokumen setiap kali, dicocokkan dengan _id-nya. Pembaruan memakai operator ($set, $unset, $inc, …); mengganti seluruh dokumen tidak didukung. Koleksi sistem tidak bisa diubah.
DitolakOperator yang menjalankan JavaScript di server ($where, $function, $accumulator). Tidak ada aggregation dan runCommand; gunakan mongosh dari panel Command untuk itu.

Tidak berafiliasi dengan Zeabur.