diff --git a/community/garage/APKBUILD b/community/garage/APKBUILD
index 506a19d7cc35c4dade3105b2dd051065be36474a..a4b03749950db9f446b7e6c399f1e6cb8fc21964 100644
--- a/community/garage/APKBUILD
+++ b/community/garage/APKBUILD
@@ -19,7 +19,7 @@ makedepends="
 checkdepends="openssl-dev"
 pkgusers="garage"
 pkggroups="garage"
-install="$pkgname.pre-install"
+install="$pkgname.pre-install $pkgname.post-upgrade"
 subpackages="
 	$pkgname-convert-db:_convertdb
 	$pkgname-openrc
@@ -28,6 +28,7 @@ source="https://github.com/deuxfleurs-org/garage/archive/v$pkgver/garage-$pkgver
 	fix-website-test-k2v.patch
 	syslog-support.patch
 	garage.toml
+	garage-migrate-to-lmdb
 	$pkgname.initd
 	$pkgname.confd
 	"
@@ -67,6 +68,8 @@ package() {
 	install -D -m644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
 	install -D -m640 -o garage -g garage "$srcdir"/garage.toml -t "$pkgdir"/etc/
 
+	install -D -m755 "$srcdir"/garage-migrate-to-lmdb -t "$pkgdir"/usr/sbin/
+
 	install -d -m700 -o garage -g garage "$pkgdir"/var/lib/$pkgname
 }
 
@@ -80,7 +83,8 @@ sha512sums="
 b2279fb55d4c694d4dff155c123c3c3e7fda8d04676a10ef9b572b199c873bdb79397fb686c3236f90be92f2bc1aef36f845ec40b38def9593f86d0fac687c21  garage-0.8.2.tar.gz
 d5ab54a95e1376988e72dc7c9c2565a381de5ae771de72e8f60e3b331f8e8ab951a2778199215b55b90f93e00634addbf19c843882def51b0a0e07ac5d7e6779  fix-website-test-k2v.patch
 e59399ab8a16b591498be0d6510054adf14ff5c4ec15ddfdf69b046119fa036c8abef10173aa29f832ff64d1b0c46b51d17051a450d85b61bd99eb91b8c64ed5  syslog-support.patch
-e67907619bd29397cd20520dd165ffafd56656adb48d123221aae78fd5eae6c273bd0fcfede873f888e2e342a2beb22b59bf0a087ce880df714e9b85eb3109db  garage.toml
+21892e8b574d36d62f7e720b4cb2a2013765e60e392a40c4d52ebf04541c77fde6d70dce2d5f2014fb1487a64813b9409d9553262f897fbdb602ca05e196d21d  garage.toml
+86676ad0c1059b3e431261542ea3ed56f12b7957e082685b0dbd80cbc3cc6bbf810c540fe4726b3809010f41c0976b65434fb5990c26f092feb900e86aec251c  garage-migrate-to-lmdb
 a2130fa81ed2c8af266ed1e86d0c72e3aae6995599347e4488c6cd4cc83217fbb65ea9121415985f8cdcd15aaee9b28886b1ccf24755571b3ddf2fc5d8dd5b3a  garage.initd
 f31bb5bde3ff41dc5fa6832c8ff24e1f1027b34513ab5e5c008df13495b53a569d3cb5adefed93cf780f5e488ff760603097785d85e1a884538e802e415205bd  garage.confd
 "
diff --git a/community/garage/garage-migrate-to-lmdb b/community/garage/garage-migrate-to-lmdb
new file mode 100644
index 0000000000000000000000000000000000000000..d80bd1c03703aeef0fb76c6046c8369daf35e8d2
--- /dev/null
+++ b/community/garage/garage-migrate-to-lmdb
@@ -0,0 +1,58 @@
+#!/bin/sh
+set -eu
+
+: ${GARAGE_CONFIG_FILE:="/etc/garage.toml"}
+
+case "${1-}" in -h | --help)
+	cat <<-EOF
+		Usage: $0
+
+		Migrate Garage metadata database from Sled to LMDB.
+	EOF
+esac
+
+if [ "$(id -u)" -ne 0 ]; then
+	echo 'ERROR: Must be run as root!' >&2
+	exit 1
+fi
+
+if pgrep /usr/bin/garage >/dev/null; then
+	echo 'ERROR: Garage is running; you must stop it before running this command!' >&2
+	exit 1
+fi
+
+metadata_dir=$(sed -En 's/^metadata_dir\s*=\s*"([^"]+)".*/\1/p' "$GARAGE_CONFIG_FILE")
+: ${metadata_dir:-"/var/lib/garage/meta"}
+
+if ! [ -d "$metadata_dir" ]; then
+	echo "ERROR: metadata_dir '$metadata_dir' does not exist!" >&2
+	exit 1
+fi
+
+uninstall=false
+if ! command -v garage-convert-db >/dev/null; then
+	apk add cmd:garage-convert-db
+	uninstall=true
+fi
+
+if command -v rc-service >/dev/null; then
+	echo 'Stopping garage...'
+	rc-service garage --ifstarted stop
+fi
+
+echo "Converting metadata database in $metadata_dir to LMDB" >&2
+su garage -s /bin/sh -c "garage-convert-db -a sled -i '$metadata_dir/db' -b lmdb -o '$metadata_dir/db.lmdb'"
+
+if $uninstall; then
+	apk del cmd:garage-convert-db
+fi
+
+echo "Changing db_engine to 'lmdb' in $GARAGE_CONFIG_FILE" >&2
+if grep -q '^[# ]*db_engine\s*=' "$GARAGE_CONFIG_FILE"; then
+	sed -Ei 's/^[# ]*(db_engine\s*=\s*).*/\1"lmdb"/' "$GARAGE_CONFIG_FILE"
+else
+	printf '\n\n%s\n' 'db_engine = "lmdb"' >> "$GARAGE_CONFIG_FILE"
+fi
+sed -i "/^# NOTE: Run 'garage-migrate-to-lmdb' to migrate from sled to lmdb./d" "$GARAGE_CONFIG_FILE"
+
+echo 'Finished, now you can start Garage.' >&2
diff --git a/community/garage/garage.post-upgrade b/community/garage/garage.post-upgrade
new file mode 100644
index 0000000000000000000000000000000000000000..72f8ad190b5bbbcd898f688e19c188495fdb202c
--- /dev/null
+++ b/community/garage/garage.post-upgrade
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+_64bit() {
+	case "$(uname -m)" in
+		armhf | armv7 | x86) return 1;;
+		*) return 0;;
+	esac
+}
+
+if [ "$(apk version -t "$2" '0.8.2-r0')" = '<' ] && _64bit; then
+	cat >&2 <<-EOF
+	*
+	* It's recommended to migrate Garage metadata directory from Sled to LMDB
+	* by running 'garage-migrate-to-lmdb' command. Sled may be removed from 64-bit
+	* packages in the future.
+	*
+	EOF
+fi
+
+exit 0
diff --git a/community/garage/garage.toml b/community/garage/garage.toml
index 2ee9a34255cef09315ce56a69790134c914ffc03..fe1972cb88ca8d52a8513076c3e927d15a106f07 100644
--- a/community/garage/garage.toml
+++ b/community/garage/garage.toml
@@ -14,8 +14,9 @@ metadata_dir = "/var/lib/garage/meta"
 # The directory in which Garage will store the data blocks of objects.
 data_dir = "/var/lib/garage/data"
 
-# The database engine to store metadata on-disk.
-# Options: "sled" (default), "lmdb" (recommended)
+# The database engine to store metadata on-disk: "sled" (default)
+# or "lmdb" (recommended).
+# NOTE: Run 'garage-migrate-to-lmdb' to migrate from sled to lmdb.
 #db_engine = "sled"
 
 # The block size for stored objects.