Skip to content

v0.4.17

Choose a tag to compare

@github-actions github-actions released this 06 Oct 22:24
· 53 commits to main since this release

Breaking

  • A restore now leaves the database exactly as the backup is. Restoring a whole backup removes every database on the server first (not branches, not the engine's own), then brings back the backup's databases and tables under their own names. Restore only some databases by unticking the others.

New

  • A backup of everything is taken before every restore, and put back at once when the restore fails, for the databases it had changed. Tick Keep a backup of the current database to keep it afterwards.
  • Backups have their own pages: Backups, Import backup and Auto backup.
  • Import backup brings a file in first and opens the restore window with the upload's progress. Cancel deletes the file. A dump made for another engine is refused before anything changes.
  • Backups can be encrypted with your own passphrase, in a format openssl opens without Serve.
  • Backups can include the server's users and passwords (PostgreSQL, MySQL, MariaDB).
  • Backup tests restore a backup into a throwaway database, by hand or every day, and tell you when one fails.
  • Backups can go to several buckets; when one is down the next one is used.
  • Apps can back up their databases before each deploy.
  • Back up now can store a backup elsewhere, with users or without encryption, for that backup only.
  • MySQL, MariaDB and ClickHouse backups are compressed, and every backup has a checksum that is checked before it is restored.
  • ClickHouse in compose stacks, and compose stacks can import backups into their databases, volumes and folders.
  • The connection URL can name any database of the server, from the Connect card or Settings → Credentials. A restore whose backup lacks the main database makes its first database the main one.
  • The Connect card shows the pooled and read replica connection URLs while they are on.
  • The API and CLI cover all of it: restore choices, backup tests, downloads, uploads and backup settings.

Fixed

  • MySQL row counts in the data explorer were 0 after a restore.
  • A PostgreSQL dump made without --clean failed on tables that already existed.
  • A dump with one database went into the main database whatever its name; it keeps its name now.
  • Compose database passwords were visible on the server's process list during backups.
  • Instance backup downloads failed after an S3 change.

Polished

  • Auto backup is one card with its settings side by side, and only shows them while it is on.
  • Imported files keep their own name, and their safety backup is listed under them.
  • From bucket says where to add S3 storage when there is none.
  • Restore errors show the database's own reason.

Commits

  • 1e3605f0 Data explorer: MySQL row counts and sizes are always current
  • c382446c Restores keep the dump's database names, empty databases too
  • ceb0f7ff Restore the dump's users and passwords on request (Postgres, MySQL, MariaDB)
  • 9252fc39 Backups: compose database passwords stay off the command line; instance downloads use the backup's own S3 destination
  • ee2286a7 Notifications for restores and imports
  • 58acff14 Restore window: choose databases, new names, single tables, or another service
  • de8cd8ac MySQL, MariaDB and ClickHouse backups are compressed (.sql.gz)
  • 0ed23e73 Backup checksums: SHA-256 recorded when made, verified before every restore
  • d44b9fb1 Encrypted backups with a passphrase (openssl-compatible)
  • bdce6b39 Backup proof: test-restore a backup into a throwaway database
  • 7ce51eb1 Backup security: 600,000 PBKDF2 rounds, checksum before listing, no passphrase to the browser
  • d21ae7c2 Backups to several buckets, and keeping by age, day, week, month and year
  • 81a49ce2 Back up databases before each deploy
  • 2bf5add2 ClickHouse in compose stacks and several ClickHouse databases; users of multi-database MongoDB and compose backups
  • de79b3fd ClickHouse backups of several databases: escape backslashes in database names
  • 3cac3f93 Import into compose stack backups: database containers, volumes and folders
  • f4926989 Backup API: restore choices, contents, test, download, upload import, settings, compose backups, instance backup delete
  • 43e08142 CLI: restore choices, backup tests, downloads, backup settings, file imports
  • 13dc228b MySQL and MariaDB restores recount table rows
  • 6531f2ec Backup review fixes: single-table restores, Mongo database choices, honest test results
  • f2ee5044 Backups can include users and passwords; the backup settings fold away while the schedule is off
  • 73a7dc9d Backup settings summary reads as a sentence
  • c1eef873 Backup settings show only while automatic backups are on
  • 7ee02e90 Keep longer rules: one row each, so they fit the card
  • 5444beba Remove the keep longer rules from backups
  • 964de211 Database backups: Backups, Import backup and Auto backup pages with a sidebar, like settings
  • c9388617 Auto backup page: settings-style cards for the schedule, databases, storage, options and encryption
  • 52cccbdd Auto backup: one card with labeled sections across the width; compact schedule editor
  • 6799914d Import from bucket: the tab opens without S3 storage and says where to add one
  • 932a7965 Back up now: choose where it is stored, whether it holds users and whether it is encrypted, for that backup only
  • fe8c6b7b Back up now: only admins can ask for an unencrypted backup, whatever the passphrase is when asked
  • 5990d63a Backup review fixes: Back up now choices need permission to change settings; restored MySQL proxy rights never name protected accounts
  • 42373722 Format the Back up now button
  • 3e5efc48 Backup fixes: dumps of another engine are refused, Serve's pooler and replica logins are never restored, environment copies skip the users form
  • cc2567e6 Imports: keep their own file name, show on the backups list right away, and sit above their safety backup
  • 3adee19c Imports show Restoring while their safety backup runs
  • 564e8cab Choose the main database: the connection URL can name another database on the server
  • 15af9699 Main database: plain names only, and connection URLs encode the database name
  • 2231a5df Choose where restored data goes, and which database a connection URL names
  • 656bfb68 Import in two steps for databases: the file comes in, then the restore window sets what goes where
  • 02aa046d Restore: two databases of a backup never go into the same database
  • 0aab7bea Restoring MySQL users with a database under another name: their rights follow the new name
  • 71fbd5cc Restore window: another database service only behind Restore into another database…, and not for imports
  • 28021eb0 Import backup: the restore window opens on the Import page once the file is in
  • b5b92a80 Import: the restore window opens at once with the upload's progress; listing a Postgres .dump no longer fails
  • edaa2af3 Restore and import fixes from review; the safety backup is a full backup of the database service
  • 8dd511d0 Postgres dumps made without --clean replace existing tables, sequences and views
  • 18b3fdf8 A restore empties what it writes into: the server ends up holding exactly the backup
  • 16f4372d Restore window: the backup's databases as a plain list; choosing databases, names or tables behind a link
  • 9d9d8781 Restore window: tick the databases to restore (All databases ticks or clears them); no names or tables to choose
  • 1a964f6f Restore leaves exactly the backup on every engine; its first database becomes the main one when the main one is not in it
  • 5b107adc Every restore is undone when it fails; review fixes for the whole-server restore
  • 57a45d78 Rollback puts back only what a failed restore changed, and nothing when it changed nothing
  • ed191619 Overview: the pooled and read replica connection URLs, while the pooler and replicas are on

Compare: v0.4.16 → v0.4.17