spindb 0.37.2 → 0.38.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/bin.js +9 -0
- package/dist/cli/bin.js.map +1 -0
- package/dist/cli/commands/attach.js +102 -0
- package/dist/cli/commands/attach.js.map +1 -0
- package/dist/cli/commands/backup.js +197 -0
- package/dist/cli/commands/backup.js.map +1 -0
- package/dist/cli/commands/backups.js +190 -0
- package/dist/cli/commands/backups.js.map +1 -0
- package/dist/cli/commands/clone.js +119 -0
- package/dist/cli/commands/clone.js.map +1 -0
- package/dist/cli/commands/config.js +276 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/connect.js +559 -0
- package/dist/cli/commands/connect.js.map +1 -0
- package/dist/cli/commands/create.js +952 -0
- package/dist/cli/commands/create.js.map +1 -0
- package/dist/cli/commands/databases.js +485 -0
- package/dist/cli/commands/databases.js.map +1 -0
- package/dist/cli/commands/delete.js +106 -0
- package/dist/cli/commands/delete.js.map +1 -0
- package/dist/cli/commands/deps.js +238 -0
- package/dist/cli/commands/deps.js.map +1 -0
- package/dist/cli/commands/detach.js +81 -0
- package/dist/cli/commands/detach.js.map +1 -0
- package/dist/cli/commands/doctor.js +567 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/duckdb.js +207 -0
- package/dist/cli/commands/duckdb.js.map +1 -0
- package/dist/cli/commands/edit.js +524 -0
- package/dist/cli/commands/edit.js.map +1 -0
- package/dist/cli/commands/engines.js +1414 -0
- package/dist/cli/commands/engines.js.map +1 -0
- package/dist/cli/commands/export.js +383 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/info.js +270 -0
- package/dist/cli/commands/info.js.map +1 -0
- package/dist/cli/commands/list.js +215 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/logs.js +81 -0
- package/dist/cli/commands/logs.js.map +1 -0
- package/dist/cli/commands/menu/backup-handlers.js +1202 -0
- package/dist/cli/commands/menu/backup-handlers.js.map +1 -0
- package/dist/cli/commands/menu/container-handlers.js +1788 -0
- package/dist/cli/commands/menu/container-handlers.js.map +1 -0
- package/dist/cli/commands/menu/engine-handlers.js +235 -0
- package/dist/cli/commands/menu/engine-handlers.js.map +1 -0
- package/dist/cli/commands/menu/index.js +266 -0
- package/dist/cli/commands/menu/index.js.map +1 -0
- package/dist/cli/commands/menu/settings-handlers.js +320 -0
- package/dist/cli/commands/menu/settings-handlers.js.map +1 -0
- package/dist/cli/commands/menu/shared.js +13 -0
- package/dist/cli/commands/menu/shared.js.map +1 -0
- package/dist/cli/commands/menu/shell-handlers.js +1573 -0
- package/dist/cli/commands/menu/shell-handlers.js.map +1 -0
- package/dist/cli/commands/menu/sql-handlers.js +185 -0
- package/dist/cli/commands/menu/sql-handlers.js.map +1 -0
- package/dist/cli/commands/menu/update-handlers.js +322 -0
- package/dist/cli/commands/menu/update-handlers.js.map +1 -0
- package/dist/cli/commands/menu/validators.js +9 -0
- package/dist/cli/commands/menu/validators.js.map +1 -0
- package/dist/cli/commands/ports.js +166 -0
- package/dist/cli/commands/ports.js.map +1 -0
- package/dist/cli/commands/pull.js +166 -0
- package/dist/cli/commands/pull.js.map +1 -0
- package/dist/cli/commands/query.js +180 -0
- package/dist/cli/commands/query.js.map +1 -0
- package/dist/cli/commands/restore.js +428 -0
- package/dist/cli/commands/restore.js.map +1 -0
- package/dist/cli/commands/run.js +115 -0
- package/dist/cli/commands/run.js.map +1 -0
- package/dist/cli/commands/self-update.js +99 -0
- package/dist/cli/commands/self-update.js.map +1 -0
- package/dist/cli/commands/sqlite.js +207 -0
- package/dist/cli/commands/sqlite.js.map +1 -0
- package/dist/cli/commands/start.js +196 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/stop.js +182 -0
- package/dist/cli/commands/stop.js.map +1 -0
- package/dist/cli/commands/url.js +88 -0
- package/dist/cli/commands/url.js.map +1 -0
- package/dist/cli/commands/users.js +189 -0
- package/dist/cli/commands/users.js.map +1 -0
- package/dist/cli/commands/version.js +52 -0
- package/dist/cli/commands/version.js.map +1 -0
- package/dist/cli/commands/which.js +258 -0
- package/dist/cli/commands/which.js.map +1 -0
- package/dist/cli/constants.js +212 -0
- package/dist/cli/constants.js.map +1 -0
- package/dist/cli/helpers.js +1120 -0
- package/dist/cli/helpers.js.map +1 -0
- package/dist/cli/index.js +146 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/ui/prompts.js +1002 -0
- package/dist/cli/ui/prompts.js.map +1 -0
- package/dist/cli/ui/spinner.js +74 -0
- package/dist/cli/ui/spinner.js.map +1 -0
- package/dist/cli/ui/theme.js +99 -0
- package/dist/cli/ui/theme.js.map +1 -0
- package/dist/cli/utils/file-follower.js +79 -0
- package/dist/cli/utils/file-follower.js.map +1 -0
- package/dist/config/backup-formats.js +363 -0
- package/dist/config/backup-formats.js.map +1 -0
- package/dist/config/defaults.js +25 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/engine-defaults.js +303 -0
- package/dist/config/engine-defaults.js.map +1 -0
- package/dist/config/engines-registry.js +103 -0
- package/dist/config/engines-registry.js.map +1 -0
- package/dist/config/os-dependencies.js +767 -0
- package/dist/config/os-dependencies.js.map +1 -0
- package/dist/config/paths.js +156 -0
- package/dist/config/paths.js.map +1 -0
- package/dist/config/version.js +3 -0
- package/dist/config/version.js.map +1 -0
- package/dist/core/backup-restore.js +219 -0
- package/dist/core/backup-restore.js.map +1 -0
- package/dist/core/base-binary-manager.js +403 -0
- package/dist/core/base-binary-manager.js.map +1 -0
- package/dist/core/base-document-binary-manager.js +364 -0
- package/dist/core/base-document-binary-manager.js.map +1 -0
- package/dist/core/base-embedded-binary-manager.js +364 -0
- package/dist/core/base-embedded-binary-manager.js.map +1 -0
- package/dist/core/base-server-binary-manager.js +368 -0
- package/dist/core/base-server-binary-manager.js.map +1 -0
- package/dist/core/config-manager.js +495 -0
- package/dist/core/config-manager.js.map +1 -0
- package/dist/core/container-manager.js +609 -0
- package/dist/core/container-manager.js.map +1 -0
- package/dist/core/credential-generator.js +67 -0
- package/dist/core/credential-generator.js.map +1 -0
- package/dist/core/credential-manager.js +211 -0
- package/dist/core/credential-manager.js.map +1 -0
- package/dist/core/dblab-utils.js +105 -0
- package/dist/core/dblab-utils.js.map +1 -0
- package/dist/core/dependency-manager.js +359 -0
- package/dist/core/dependency-manager.js.map +1 -0
- package/dist/core/docker-exporter.js +1077 -0
- package/dist/core/docker-exporter.js.map +1 -0
- package/dist/core/error-handler.js +295 -0
- package/dist/core/error-handler.js.map +1 -0
- package/dist/core/fs-error-utils.js +74 -0
- package/dist/core/fs-error-utils.js.map +1 -0
- package/dist/core/homebrew-version-manager.js +280 -0
- package/dist/core/homebrew-version-manager.js.map +1 -0
- package/dist/core/hostdb-client.js +252 -0
- package/dist/core/hostdb-client.js.map +1 -0
- package/dist/core/hostdb-metadata.js +243 -0
- package/dist/core/hostdb-metadata.js.map +1 -0
- package/dist/core/hostdb-releases-factory.js +161 -0
- package/dist/core/hostdb-releases-factory.js.map +1 -0
- package/dist/core/library-env.js +88 -0
- package/dist/core/library-env.js.map +1 -0
- package/dist/core/pgweb-utils.js +53 -0
- package/dist/core/pgweb-utils.js.map +1 -0
- package/dist/core/platform-service.js +632 -0
- package/dist/core/platform-service.js.map +1 -0
- package/dist/core/port-manager.js +136 -0
- package/dist/core/port-manager.js.map +1 -0
- package/dist/core/process-manager.js +445 -0
- package/dist/core/process-manager.js.map +1 -0
- package/dist/core/pull-manager.js +418 -0
- package/dist/core/pull-manager.js.map +1 -0
- package/dist/core/query-parser.js +449 -0
- package/dist/core/query-parser.js.map +1 -0
- package/dist/core/spawn-utils.js +90 -0
- package/dist/core/spawn-utils.js.map +1 -0
- package/dist/core/start-with-retry.js +90 -0
- package/dist/core/start-with-retry.js.map +1 -0
- package/dist/core/test-cleanup.js +85 -0
- package/dist/core/test-cleanup.js.map +1 -0
- package/dist/core/tls-generator.js +84 -0
- package/dist/core/tls-generator.js.map +1 -0
- package/dist/core/transaction-manager.js +139 -0
- package/dist/core/transaction-manager.js.map +1 -0
- package/dist/core/update-manager.js +241 -0
- package/dist/core/update-manager.js.map +1 -0
- package/dist/core/version-migration.js +260 -0
- package/dist/core/version-migration.js.map +1 -0
- package/dist/core/version-utils.js +91 -0
- package/dist/core/version-utils.js.map +1 -0
- package/dist/engines/base-engine.js +179 -0
- package/dist/engines/base-engine.js.map +1 -0
- package/dist/engines/clickhouse/backup.js +289 -0
- package/dist/engines/clickhouse/backup.js.map +1 -0
- package/dist/engines/clickhouse/binary-manager.js +145 -0
- package/dist/engines/clickhouse/binary-manager.js.map +1 -0
- package/dist/engines/clickhouse/binary-urls.js +100 -0
- package/dist/engines/clickhouse/binary-urls.js.map +1 -0
- package/dist/engines/clickhouse/cli-utils.js +143 -0
- package/dist/engines/clickhouse/cli-utils.js.map +1 -0
- package/dist/engines/clickhouse/hostdb-releases.js +24 -0
- package/dist/engines/clickhouse/hostdb-releases.js.map +1 -0
- package/dist/engines/clickhouse/index.js +1077 -0
- package/dist/engines/clickhouse/index.js.map +1 -0
- package/dist/engines/clickhouse/restore.js +335 -0
- package/dist/engines/clickhouse/restore.js.map +1 -0
- package/dist/engines/clickhouse/version-maps.js +83 -0
- package/dist/engines/clickhouse/version-maps.js.map +1 -0
- package/dist/engines/clickhouse/version-validator.js +133 -0
- package/dist/engines/clickhouse/version-validator.js.map +1 -0
- package/dist/engines/cockroachdb/backup.js +261 -0
- package/dist/engines/cockroachdb/backup.js.map +1 -0
- package/dist/engines/cockroachdb/binary-manager.js +33 -0
- package/dist/engines/cockroachdb/binary-manager.js.map +1 -0
- package/dist/engines/cockroachdb/binary-urls.js +33 -0
- package/dist/engines/cockroachdb/binary-urls.js.map +1 -0
- package/dist/engines/cockroachdb/cli-utils.js +338 -0
- package/dist/engines/cockroachdb/cli-utils.js.map +1 -0
- package/dist/engines/cockroachdb/hostdb-releases.js +21 -0
- package/dist/engines/cockroachdb/hostdb-releases.js.map +1 -0
- package/dist/engines/cockroachdb/index.js +1016 -0
- package/dist/engines/cockroachdb/index.js.map +1 -0
- package/dist/engines/cockroachdb/restore.js +323 -0
- package/dist/engines/cockroachdb/restore.js.map +1 -0
- package/dist/engines/cockroachdb/version-maps.js +37 -0
- package/dist/engines/cockroachdb/version-maps.js.map +1 -0
- package/dist/engines/couchdb/api-client.js +64 -0
- package/dist/engines/couchdb/api-client.js.map +1 -0
- package/dist/engines/couchdb/backup.js +90 -0
- package/dist/engines/couchdb/backup.js.map +1 -0
- package/dist/engines/couchdb/binary-manager.js +62 -0
- package/dist/engines/couchdb/binary-manager.js.map +1 -0
- package/dist/engines/couchdb/binary-urls.js +92 -0
- package/dist/engines/couchdb/binary-urls.js.map +1 -0
- package/dist/engines/couchdb/hostdb-releases.js +21 -0
- package/dist/engines/couchdb/hostdb-releases.js.map +1 -0
- package/dist/engines/couchdb/index.js +1043 -0
- package/dist/engines/couchdb/index.js.map +1 -0
- package/dist/engines/couchdb/restore.js +198 -0
- package/dist/engines/couchdb/restore.js.map +1 -0
- package/dist/engines/couchdb/version-maps.js +67 -0
- package/dist/engines/couchdb/version-maps.js.map +1 -0
- package/dist/engines/couchdb/version-validator.js +88 -0
- package/dist/engines/couchdb/version-validator.js.map +1 -0
- package/dist/engines/duckdb/binary-manager.js +33 -0
- package/dist/engines/duckdb/binary-manager.js.map +1 -0
- package/{engines/duckdb/binary-urls.ts → dist/engines/duckdb/binary-urls.js} +11 -16
- package/dist/engines/duckdb/binary-urls.js.map +1 -0
- package/dist/engines/duckdb/hostdb-releases.js +21 -0
- package/dist/engines/duckdb/hostdb-releases.js.map +1 -0
- package/dist/engines/duckdb/index.js +594 -0
- package/dist/engines/duckdb/index.js.map +1 -0
- package/dist/engines/duckdb/registry.js +265 -0
- package/dist/engines/duckdb/registry.js.map +1 -0
- package/dist/engines/duckdb/scanner.js +12 -0
- package/dist/engines/duckdb/scanner.js.map +1 -0
- package/dist/engines/duckdb/version-maps.js +67 -0
- package/dist/engines/duckdb/version-maps.js.map +1 -0
- package/dist/engines/duckdb/version-validator.js +62 -0
- package/dist/engines/duckdb/version-validator.js.map +1 -0
- package/dist/engines/ferretdb/backup.js +170 -0
- package/dist/engines/ferretdb/backup.js.map +1 -0
- package/dist/engines/ferretdb/binary-manager.js +765 -0
- package/dist/engines/ferretdb/binary-manager.js.map +1 -0
- package/dist/engines/ferretdb/binary-urls.js +135 -0
- package/dist/engines/ferretdb/binary-urls.js.map +1 -0
- package/dist/engines/ferretdb/index.js +1517 -0
- package/dist/engines/ferretdb/index.js.map +1 -0
- package/dist/engines/ferretdb/restore.js +310 -0
- package/dist/engines/ferretdb/restore.js.map +1 -0
- package/{engines/ferretdb/version-maps.ts → dist/engines/ferretdb/version-maps.js} +62 -79
- package/dist/engines/ferretdb/version-maps.js.map +1 -0
- package/dist/engines/file-based-utils.js +184 -0
- package/dist/engines/file-based-utils.js.map +1 -0
- package/dist/engines/index.js +124 -0
- package/dist/engines/index.js.map +1 -0
- package/dist/engines/influxdb/api-client.js +54 -0
- package/dist/engines/influxdb/api-client.js.map +1 -0
- package/dist/engines/influxdb/backup.js +119 -0
- package/dist/engines/influxdb/backup.js.map +1 -0
- package/dist/engines/influxdb/binary-manager.js +87 -0
- package/dist/engines/influxdb/binary-manager.js.map +1 -0
- package/dist/engines/influxdb/binary-urls.js +56 -0
- package/dist/engines/influxdb/binary-urls.js.map +1 -0
- package/dist/engines/influxdb/hostdb-releases.js +21 -0
- package/dist/engines/influxdb/hostdb-releases.js.map +1 -0
- package/dist/engines/influxdb/index.js +962 -0
- package/dist/engines/influxdb/index.js.map +1 -0
- package/dist/engines/influxdb/restore.js +329 -0
- package/dist/engines/influxdb/restore.js.map +1 -0
- package/dist/engines/influxdb/version-maps.js +64 -0
- package/dist/engines/influxdb/version-maps.js.map +1 -0
- package/dist/engines/influxdb/version-validator.js +109 -0
- package/dist/engines/influxdb/version-validator.js.map +1 -0
- package/dist/engines/mariadb/backup.js +178 -0
- package/dist/engines/mariadb/backup.js.map +1 -0
- package/dist/engines/mariadb/binary-manager.js +33 -0
- package/dist/engines/mariadb/binary-manager.js.map +1 -0
- package/{engines/mariadb/binary-urls.ts → dist/engines/mariadb/binary-urls.js} +38 -55
- package/dist/engines/mariadb/binary-urls.js.map +1 -0
- package/dist/engines/mariadb/hostdb-releases.js +21 -0
- package/dist/engines/mariadb/hostdb-releases.js.map +1 -0
- package/dist/engines/mariadb/index.js +1011 -0
- package/dist/engines/mariadb/index.js.map +1 -0
- package/dist/engines/mariadb/restore.js +322 -0
- package/dist/engines/mariadb/restore.js.map +1 -0
- package/dist/engines/mariadb/version-maps.js +63 -0
- package/dist/engines/mariadb/version-maps.js.map +1 -0
- package/dist/engines/mariadb/version-validator.js +143 -0
- package/dist/engines/mariadb/version-validator.js.map +1 -0
- package/dist/engines/meilisearch/api-client.js +50 -0
- package/dist/engines/meilisearch/api-client.js.map +1 -0
- package/dist/engines/meilisearch/backup.js +167 -0
- package/dist/engines/meilisearch/backup.js.map +1 -0
- package/dist/engines/meilisearch/binary-manager.js +31 -0
- package/dist/engines/meilisearch/binary-manager.js.map +1 -0
- package/dist/engines/meilisearch/binary-urls.js +56 -0
- package/dist/engines/meilisearch/binary-urls.js.map +1 -0
- package/dist/engines/meilisearch/hostdb-releases.js +21 -0
- package/dist/engines/meilisearch/hostdb-releases.js.map +1 -0
- package/dist/engines/meilisearch/index.js +992 -0
- package/dist/engines/meilisearch/index.js.map +1 -0
- package/dist/engines/meilisearch/restore.js +167 -0
- package/dist/engines/meilisearch/restore.js.map +1 -0
- package/dist/engines/meilisearch/version-maps.js +67 -0
- package/dist/engines/meilisearch/version-maps.js.map +1 -0
- package/dist/engines/meilisearch/version-validator.js +109 -0
- package/dist/engines/meilisearch/version-validator.js.map +1 -0
- package/dist/engines/mongodb/backup.js +109 -0
- package/dist/engines/mongodb/backup.js.map +1 -0
- package/dist/engines/mongodb/binary-manager.js +36 -0
- package/dist/engines/mongodb/binary-manager.js.map +1 -0
- package/dist/engines/mongodb/binary-urls.js +46 -0
- package/dist/engines/mongodb/binary-urls.js.map +1 -0
- package/dist/engines/mongodb/cli-utils.js +131 -0
- package/dist/engines/mongodb/cli-utils.js.map +1 -0
- package/dist/engines/mongodb/hostdb-releases.js +77 -0
- package/dist/engines/mongodb/hostdb-releases.js.map +1 -0
- package/dist/engines/mongodb/index.js +873 -0
- package/dist/engines/mongodb/index.js.map +1 -0
- package/dist/engines/mongodb/restore.js +276 -0
- package/dist/engines/mongodb/restore.js.map +1 -0
- package/dist/engines/mongodb/version-maps.js +79 -0
- package/dist/engines/mongodb/version-maps.js.map +1 -0
- package/dist/engines/mongodb/version-validator.js +133 -0
- package/dist/engines/mongodb/version-validator.js.map +1 -0
- package/dist/engines/mysql/backup.js +210 -0
- package/dist/engines/mysql/backup.js.map +1 -0
- package/dist/engines/mysql/binary-detection.js +325 -0
- package/dist/engines/mysql/binary-detection.js.map +1 -0
- package/dist/engines/mysql/binary-manager.js +30 -0
- package/dist/engines/mysql/binary-manager.js.map +1 -0
- package/dist/engines/mysql/binary-urls.js +87 -0
- package/dist/engines/mysql/binary-urls.js.map +1 -0
- package/{engines/mysql/hostdb-releases.ts → dist/engines/mysql/hostdb-releases.js} +20 -23
- package/dist/engines/mysql/hostdb-releases.js.map +1 -0
- package/dist/engines/mysql/index.js +1066 -0
- package/dist/engines/mysql/index.js.map +1 -0
- package/dist/engines/mysql/restore.js +361 -0
- package/dist/engines/mysql/restore.js.map +1 -0
- package/dist/engines/mysql/version-maps.js +79 -0
- package/dist/engines/mysql/version-maps.js.map +1 -0
- package/dist/engines/mysql/version-validator.js +266 -0
- package/dist/engines/mysql/version-validator.js.map +1 -0
- package/dist/engines/postgresql/backup.js +118 -0
- package/dist/engines/postgresql/backup.js.map +1 -0
- package/dist/engines/postgresql/binary-manager.js +85 -0
- package/dist/engines/postgresql/binary-manager.js.map +1 -0
- package/dist/engines/postgresql/binary-urls.js +80 -0
- package/dist/engines/postgresql/binary-urls.js.map +1 -0
- package/dist/engines/postgresql/hostdb-releases.js +21 -0
- package/dist/engines/postgresql/hostdb-releases.js.map +1 -0
- package/dist/engines/postgresql/index.js +852 -0
- package/dist/engines/postgresql/index.js.map +1 -0
- package/dist/engines/postgresql/remote-version.js +109 -0
- package/dist/engines/postgresql/remote-version.js.map +1 -0
- package/dist/engines/postgresql/restore.js +254 -0
- package/dist/engines/postgresql/restore.js.map +1 -0
- package/dist/engines/postgresql/version-maps.js +73 -0
- package/dist/engines/postgresql/version-maps.js.map +1 -0
- package/dist/engines/postgresql/version-validator.js +286 -0
- package/dist/engines/postgresql/version-validator.js.map +1 -0
- package/dist/engines/qdrant/api-client.js +50 -0
- package/dist/engines/qdrant/api-client.js.map +1 -0
- package/dist/engines/qdrant/backup.js +115 -0
- package/dist/engines/qdrant/backup.js.map +1 -0
- package/dist/engines/qdrant/binary-manager.js +31 -0
- package/dist/engines/qdrant/binary-manager.js.map +1 -0
- package/dist/engines/qdrant/binary-urls.js +92 -0
- package/dist/engines/qdrant/binary-urls.js.map +1 -0
- package/dist/engines/qdrant/cli-utils.js +39 -0
- package/dist/engines/qdrant/cli-utils.js.map +1 -0
- package/dist/engines/qdrant/hostdb-releases.js +21 -0
- package/dist/engines/qdrant/hostdb-releases.js.map +1 -0
- package/dist/engines/qdrant/index.js +1002 -0
- package/dist/engines/qdrant/index.js.map +1 -0
- package/dist/engines/qdrant/restore.js +154 -0
- package/dist/engines/qdrant/restore.js.map +1 -0
- package/dist/engines/qdrant/version-maps.js +67 -0
- package/dist/engines/qdrant/version-maps.js.map +1 -0
- package/dist/engines/qdrant/version-validator.js +109 -0
- package/dist/engines/qdrant/version-validator.js.map +1 -0
- package/dist/engines/questdb/backup.js +191 -0
- package/dist/engines/questdb/backup.js.map +1 -0
- package/dist/engines/questdb/binary-manager.js +247 -0
- package/dist/engines/questdb/binary-manager.js.map +1 -0
- package/dist/engines/questdb/binary-urls.js +27 -0
- package/dist/engines/questdb/binary-urls.js.map +1 -0
- package/dist/engines/questdb/hostdb-releases.js +21 -0
- package/dist/engines/questdb/hostdb-releases.js.map +1 -0
- package/dist/engines/questdb/index.js +814 -0
- package/dist/engines/questdb/index.js.map +1 -0
- package/dist/engines/questdb/restore.js +202 -0
- package/dist/engines/questdb/restore.js.map +1 -0
- package/dist/engines/questdb/version-maps.js +33 -0
- package/dist/engines/questdb/version-maps.js.map +1 -0
- package/dist/engines/questdb/version-validator.js +99 -0
- package/dist/engines/questdb/version-validator.js.map +1 -0
- package/dist/engines/redis/backup.js +292 -0
- package/dist/engines/redis/backup.js.map +1 -0
- package/dist/engines/redis/binary-manager.js +32 -0
- package/dist/engines/redis/binary-manager.js.map +1 -0
- package/dist/engines/redis/binary-urls.js +96 -0
- package/dist/engines/redis/binary-urls.js.map +1 -0
- package/dist/engines/redis/cli-utils.js +38 -0
- package/dist/engines/redis/cli-utils.js.map +1 -0
- package/dist/engines/redis/hostdb-releases.js +21 -0
- package/dist/engines/redis/hostdb-releases.js.map +1 -0
- package/dist/engines/redis/index.js +1263 -0
- package/dist/engines/redis/index.js.map +1 -0
- package/dist/engines/redis/restore.js +338 -0
- package/dist/engines/redis/restore.js.map +1 -0
- package/dist/engines/redis/version-maps.js +70 -0
- package/dist/engines/redis/version-maps.js.map +1 -0
- package/dist/engines/redis/version-validator.js +109 -0
- package/dist/engines/redis/version-validator.js.map +1 -0
- package/dist/engines/sqlite/binary-manager.js +39 -0
- package/dist/engines/sqlite/binary-manager.js.map +1 -0
- package/{engines/sqlite/binary-urls.ts → dist/engines/sqlite/binary-urls.js} +11 -16
- package/dist/engines/sqlite/binary-urls.js.map +1 -0
- package/dist/engines/sqlite/hostdb-releases.js +21 -0
- package/dist/engines/sqlite/hostdb-releases.js.map +1 -0
- package/dist/engines/sqlite/index.js +493 -0
- package/dist/engines/sqlite/index.js.map +1 -0
- package/dist/engines/sqlite/registry.js +163 -0
- package/dist/engines/sqlite/registry.js.map +1 -0
- package/dist/engines/sqlite/scanner.js +12 -0
- package/dist/engines/sqlite/scanner.js.map +1 -0
- package/dist/engines/sqlite/version-maps.js +57 -0
- package/dist/engines/sqlite/version-maps.js.map +1 -0
- package/dist/engines/surrealdb/backup.js +97 -0
- package/dist/engines/surrealdb/backup.js.map +1 -0
- package/dist/engines/surrealdb/binary-manager.js +33 -0
- package/dist/engines/surrealdb/binary-manager.js.map +1 -0
- package/dist/engines/surrealdb/binary-urls.js +33 -0
- package/dist/engines/surrealdb/binary-urls.js.map +1 -0
- package/dist/engines/surrealdb/cli-utils.js +147 -0
- package/dist/engines/surrealdb/cli-utils.js.map +1 -0
- package/dist/engines/surrealdb/hostdb-releases.js +21 -0
- package/dist/engines/surrealdb/hostdb-releases.js.map +1 -0
- package/dist/engines/surrealdb/index.js +1022 -0
- package/dist/engines/surrealdb/index.js.map +1 -0
- package/dist/engines/surrealdb/restore.js +224 -0
- package/dist/engines/surrealdb/restore.js.map +1 -0
- package/dist/engines/surrealdb/version-maps.js +36 -0
- package/dist/engines/surrealdb/version-maps.js.map +1 -0
- package/dist/engines/tigerbeetle/backup.js +36 -0
- package/dist/engines/tigerbeetle/backup.js.map +1 -0
- package/dist/engines/tigerbeetle/binary-manager.js +72 -0
- package/dist/engines/tigerbeetle/binary-manager.js.map +1 -0
- package/dist/engines/tigerbeetle/binary-urls.js +49 -0
- package/dist/engines/tigerbeetle/binary-urls.js.map +1 -0
- package/dist/engines/tigerbeetle/hostdb-releases.js +21 -0
- package/dist/engines/tigerbeetle/hostdb-releases.js.map +1 -0
- package/dist/engines/tigerbeetle/index.js +559 -0
- package/dist/engines/tigerbeetle/index.js.map +1 -0
- package/dist/engines/tigerbeetle/restore.js +91 -0
- package/dist/engines/tigerbeetle/restore.js.map +1 -0
- package/{engines/tigerbeetle/version-maps.ts → dist/engines/tigerbeetle/version-maps.js} +22 -31
- package/dist/engines/tigerbeetle/version-maps.js.map +1 -0
- package/dist/engines/tigerbeetle/version-validator.js +108 -0
- package/dist/engines/tigerbeetle/version-validator.js.map +1 -0
- package/dist/engines/typedb/backup.js +129 -0
- package/dist/engines/typedb/backup.js.map +1 -0
- package/dist/engines/typedb/binary-manager.js +151 -0
- package/dist/engines/typedb/binary-manager.js.map +1 -0
- package/dist/engines/typedb/binary-urls.js +33 -0
- package/dist/engines/typedb/binary-urls.js.map +1 -0
- package/dist/engines/typedb/cli-utils.js +163 -0
- package/dist/engines/typedb/cli-utils.js.map +1 -0
- package/dist/engines/typedb/hostdb-releases.js +21 -0
- package/dist/engines/typedb/hostdb-releases.js.map +1 -0
- package/dist/engines/typedb/index.js +1003 -0
- package/dist/engines/typedb/index.js.map +1 -0
- package/dist/engines/typedb/restore.js +279 -0
- package/dist/engines/typedb/restore.js.map +1 -0
- package/dist/engines/typedb/version-maps.js +40 -0
- package/dist/engines/typedb/version-maps.js.map +1 -0
- package/dist/engines/typedb/version-validator.js +103 -0
- package/dist/engines/typedb/version-validator.js.map +1 -0
- package/dist/engines/valkey/backup.js +292 -0
- package/dist/engines/valkey/backup.js.map +1 -0
- package/dist/engines/valkey/binary-manager.js +33 -0
- package/dist/engines/valkey/binary-manager.js.map +1 -0
- package/dist/engines/valkey/binary-urls.js +98 -0
- package/dist/engines/valkey/binary-urls.js.map +1 -0
- package/dist/engines/valkey/cli-utils.js +38 -0
- package/dist/engines/valkey/cli-utils.js.map +1 -0
- package/dist/engines/valkey/hostdb-releases.js +21 -0
- package/dist/engines/valkey/hostdb-releases.js.map +1 -0
- package/dist/engines/valkey/index.js +1257 -0
- package/dist/engines/valkey/index.js.map +1 -0
- package/dist/engines/valkey/restore.js +340 -0
- package/dist/engines/valkey/restore.js.map +1 -0
- package/dist/engines/valkey/version-maps.js +70 -0
- package/dist/engines/valkey/version-maps.js.map +1 -0
- package/dist/engines/valkey/version-validator.js +112 -0
- package/dist/engines/valkey/version-validator.js.map +1 -0
- package/dist/engines/weaviate/api-client.js +50 -0
- package/dist/engines/weaviate/api-client.js.map +1 -0
- package/dist/engines/weaviate/backup.js +95 -0
- package/dist/engines/weaviate/backup.js.map +1 -0
- package/dist/engines/weaviate/binary-manager.js +58 -0
- package/dist/engines/weaviate/binary-manager.js.map +1 -0
- package/dist/engines/weaviate/binary-urls.js +92 -0
- package/dist/engines/weaviate/binary-urls.js.map +1 -0
- package/dist/engines/weaviate/cli-utils.js +39 -0
- package/dist/engines/weaviate/cli-utils.js.map +1 -0
- package/dist/engines/weaviate/hostdb-releases.js +21 -0
- package/dist/engines/weaviate/hostdb-releases.js.map +1 -0
- package/dist/engines/weaviate/index.js +871 -0
- package/dist/engines/weaviate/index.js.map +1 -0
- package/dist/engines/weaviate/restore.js +185 -0
- package/dist/engines/weaviate/restore.js.map +1 -0
- package/dist/engines/weaviate/version-maps.js +67 -0
- package/dist/engines/weaviate/version-maps.js.map +1 -0
- package/dist/engines/weaviate/version-validator.js +109 -0
- package/dist/engines/weaviate/version-validator.js.map +1 -0
- package/dist/types/index.js +102 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +12 -9
- package/bin/cli.js +0 -68
- package/cli/bin.ts +0 -10
- package/cli/commands/attach.ts +0 -139
- package/cli/commands/backup.ts +0 -290
- package/cli/commands/backups.ts +0 -247
- package/cli/commands/clone.ts +0 -159
- package/cli/commands/config.ts +0 -367
- package/cli/commands/connect.ts +0 -684
- package/cli/commands/create.ts +0 -1201
- package/cli/commands/databases.ts +0 -630
- package/cli/commands/delete.ts +0 -133
- package/cli/commands/deps.ts +0 -342
- package/cli/commands/detach.ts +0 -107
- package/cli/commands/doctor.ts +0 -689
- package/cli/commands/duckdb.ts +0 -273
- package/cli/commands/edit.ts +0 -683
- package/cli/commands/engines.ts +0 -1914
- package/cli/commands/export.ts +0 -544
- package/cli/commands/info.ts +0 -340
- package/cli/commands/list.ts +0 -284
- package/cli/commands/logs.ts +0 -102
- package/cli/commands/menu/backup-handlers.ts +0 -1571
- package/cli/commands/menu/container-handlers.ts +0 -2288
- package/cli/commands/menu/engine-handlers.ts +0 -355
- package/cli/commands/menu/index.ts +0 -342
- package/cli/commands/menu/settings-handlers.ts +0 -365
- package/cli/commands/menu/shared.ts +0 -23
- package/cli/commands/menu/shell-handlers.ts +0 -1811
- package/cli/commands/menu/sql-handlers.ts +0 -231
- package/cli/commands/menu/update-handlers.ts +0 -378
- package/cli/commands/menu/validators.ts +0 -8
- package/cli/commands/ports.ts +0 -211
- package/cli/commands/pull.ts +0 -223
- package/cli/commands/query.ts +0 -241
- package/cli/commands/restore.ts +0 -587
- package/cli/commands/run.ts +0 -178
- package/cli/commands/self-update.ts +0 -121
- package/cli/commands/sqlite.ts +0 -273
- package/cli/commands/start.ts +0 -218
- package/cli/commands/stop.ts +0 -241
- package/cli/commands/url.ts +0 -104
- package/cli/commands/users.ts +0 -264
- package/cli/commands/version.ts +0 -55
- package/cli/commands/which.ts +0 -290
- package/cli/constants.ts +0 -233
- package/cli/helpers.ts +0 -1593
- package/cli/index.ts +0 -162
- package/cli/ui/prompts.ts +0 -1525
- package/cli/ui/spinner.ts +0 -88
- package/cli/ui/theme.ts +0 -128
- package/cli/utils/file-follower.ts +0 -93
- package/config/backup-formats.ts +0 -446
- package/config/defaults.ts +0 -56
- package/config/engine-defaults.ts +0 -336
- package/config/engines-registry.ts +0 -150
- package/config/engines.schema.json +0 -135
- package/config/os-dependencies.ts +0 -888
- package/config/paths.ts +0 -200
- package/core/backup-restore.ts +0 -330
- package/core/base-binary-manager.ts +0 -562
- package/core/base-document-binary-manager.ts +0 -523
- package/core/base-embedded-binary-manager.ts +0 -547
- package/core/base-server-binary-manager.ts +0 -523
- package/core/config-manager.ts +0 -652
- package/core/container-manager.ts +0 -787
- package/core/credential-generator.ts +0 -93
- package/core/credential-manager.ts +0 -259
- package/core/dblab-utils.ts +0 -113
- package/core/dependency-manager.ts +0 -512
- package/core/docker-exporter.ts +0 -1345
- package/core/error-handler.ts +0 -419
- package/core/fs-error-utils.ts +0 -82
- package/core/homebrew-version-manager.ts +0 -352
- package/core/hostdb-client.ts +0 -344
- package/core/hostdb-metadata.ts +0 -350
- package/core/hostdb-releases-factory.ts +0 -237
- package/core/library-env.ts +0 -118
- package/core/pgweb-utils.ts +0 -62
- package/core/platform-service.ts +0 -829
- package/core/port-manager.ts +0 -165
- package/core/process-manager.ts +0 -576
- package/core/pull-manager.ts +0 -511
- package/core/query-parser.ts +0 -514
- package/core/spawn-utils.ts +0 -122
- package/core/start-with-retry.ts +0 -130
- package/core/test-cleanup.ts +0 -108
- package/core/tls-generator.ts +0 -116
- package/core/transaction-manager.ts +0 -158
- package/core/update-manager.ts +0 -308
- package/core/version-migration.ts +0 -346
- package/core/version-utils.ts +0 -104
- package/engines/base-engine.ts +0 -340
- package/engines/clickhouse/README.md +0 -231
- package/engines/clickhouse/backup.ts +0 -398
- package/engines/clickhouse/binary-manager.ts +0 -201
- package/engines/clickhouse/binary-urls.ts +0 -125
- package/engines/clickhouse/cli-utils.ts +0 -176
- package/engines/clickhouse/hostdb-releases.ts +0 -30
- package/engines/clickhouse/index.ts +0 -1345
- package/engines/clickhouse/restore.ts +0 -466
- package/engines/clickhouse/version-maps.ts +0 -95
- package/engines/clickhouse/version-validator.ts +0 -154
- package/engines/cockroachdb/README.md +0 -170
- package/engines/cockroachdb/backup.ts +0 -376
- package/engines/cockroachdb/binary-manager.ts +0 -45
- package/engines/cockroachdb/binary-urls.ts +0 -40
- package/engines/cockroachdb/cli-utils.ts +0 -384
- package/engines/cockroachdb/hostdb-releases.ts +0 -26
- package/engines/cockroachdb/index.ts +0 -1276
- package/engines/cockroachdb/restore.ts +0 -455
- package/engines/cockroachdb/version-maps.ts +0 -42
- package/engines/couchdb/README.md +0 -257
- package/engines/couchdb/api-client.ts +0 -81
- package/engines/couchdb/backup.ts +0 -137
- package/engines/couchdb/binary-manager.ts +0 -86
- package/engines/couchdb/binary-urls.ts +0 -115
- package/engines/couchdb/hostdb-releases.ts +0 -23
- package/engines/couchdb/index.ts +0 -1429
- package/engines/couchdb/restore.ts +0 -290
- package/engines/couchdb/version-maps.ts +0 -78
- package/engines/couchdb/version-validator.ts +0 -111
- package/engines/duckdb/README.md +0 -154
- package/engines/duckdb/binary-manager.ts +0 -45
- package/engines/duckdb/hostdb-releases.ts +0 -23
- package/engines/duckdb/index.ts +0 -749
- package/engines/duckdb/registry.ts +0 -303
- package/engines/duckdb/scanner.ts +0 -22
- package/engines/duckdb/version-maps.ts +0 -78
- package/engines/duckdb/version-validator.ts +0 -78
- package/engines/ferretdb/README.md +0 -262
- package/engines/ferretdb/backup.ts +0 -173
- package/engines/ferretdb/binary-manager.ts +0 -1095
- package/engines/ferretdb/binary-urls.ts +0 -183
- package/engines/ferretdb/index.ts +0 -1907
- package/engines/ferretdb/restore.ts +0 -357
- package/engines/file-based-utils.ts +0 -262
- package/engines/index.ts +0 -131
- package/engines/influxdb/README.md +0 -180
- package/engines/influxdb/api-client.ts +0 -64
- package/engines/influxdb/backup.ts +0 -160
- package/engines/influxdb/binary-manager.ts +0 -110
- package/engines/influxdb/binary-urls.ts +0 -69
- package/engines/influxdb/hostdb-releases.ts +0 -23
- package/engines/influxdb/index.ts +0 -1272
- package/engines/influxdb/restore.ts +0 -417
- package/engines/influxdb/version-maps.ts +0 -75
- package/engines/influxdb/version-validator.ts +0 -128
- package/engines/mariadb/README.md +0 -141
- package/engines/mariadb/backup.ts +0 -233
- package/engines/mariadb/binary-manager.ts +0 -45
- package/engines/mariadb/hostdb-releases.ts +0 -23
- package/engines/mariadb/index.ts +0 -1300
- package/engines/mariadb/restore.ts +0 -447
- package/engines/mariadb/version-maps.ts +0 -72
- package/engines/mariadb/version-validator.ts +0 -181
- package/engines/meilisearch/README.md +0 -255
- package/engines/meilisearch/api-client.ts +0 -61
- package/engines/meilisearch/backup.ts +0 -233
- package/engines/meilisearch/binary-manager.ts +0 -43
- package/engines/meilisearch/binary-urls.ts +0 -69
- package/engines/meilisearch/hostdb-releases.ts +0 -26
- package/engines/meilisearch/index.ts +0 -1292
- package/engines/meilisearch/restore.ts +0 -219
- package/engines/meilisearch/version-maps.ts +0 -78
- package/engines/meilisearch/version-validator.ts +0 -128
- package/engines/mongodb/README.md +0 -162
- package/engines/mongodb/backup.ts +0 -127
- package/engines/mongodb/binary-manager.ts +0 -48
- package/engines/mongodb/binary-urls.ts +0 -63
- package/engines/mongodb/cli-utils.ts +0 -171
- package/engines/mongodb/hostdb-releases.ts +0 -91
- package/engines/mongodb/index.ts +0 -1118
- package/engines/mongodb/restore.ts +0 -361
- package/engines/mongodb/version-maps.ts +0 -91
- package/engines/mongodb/version-validator.ts +0 -160
- package/engines/mysql/README.md +0 -142
- package/engines/mysql/backup.ts +0 -270
- package/engines/mysql/binary-detection.ts +0 -408
- package/engines/mysql/binary-manager.ts +0 -42
- package/engines/mysql/binary-urls.ts +0 -104
- package/engines/mysql/index.ts +0 -1361
- package/engines/mysql/restore.ts +0 -500
- package/engines/mysql/version-maps.ts +0 -91
- package/engines/mysql/version-validator.ts +0 -369
- package/engines/postgresql/README.md +0 -158
- package/engines/postgresql/backup.ts +0 -151
- package/engines/postgresql/binary-manager.ts +0 -114
- package/engines/postgresql/binary-urls.ts +0 -99
- package/engines/postgresql/hostdb-releases.ts +0 -26
- package/engines/postgresql/index.ts +0 -1143
- package/engines/postgresql/remote-version.ts +0 -161
- package/engines/postgresql/restore.ts +0 -342
- package/engines/postgresql/version-maps.ts +0 -83
- package/engines/postgresql/version-validator.ts +0 -413
- package/engines/qdrant/README.md +0 -222
- package/engines/qdrant/api-client.ts +0 -61
- package/engines/qdrant/backup.ts +0 -165
- package/engines/qdrant/binary-manager.ts +0 -43
- package/engines/qdrant/binary-urls.ts +0 -115
- package/engines/qdrant/cli-utils.ts +0 -43
- package/engines/qdrant/hostdb-releases.ts +0 -23
- package/engines/qdrant/index.ts +0 -1312
- package/engines/qdrant/restore.ts +0 -203
- package/engines/qdrant/version-maps.ts +0 -78
- package/engines/qdrant/version-validator.ts +0 -128
- package/engines/questdb/README.md +0 -334
- package/engines/questdb/backup.ts +0 -220
- package/engines/questdb/binary-manager.ts +0 -310
- package/engines/questdb/binary-urls.ts +0 -34
- package/engines/questdb/hostdb-releases.ts +0 -23
- package/engines/questdb/index.ts +0 -1023
- package/engines/questdb/restore.ts +0 -260
- package/engines/questdb/version-maps.ts +0 -37
- package/engines/questdb/version-validator.ts +0 -121
- package/engines/redis/README.md +0 -173
- package/engines/redis/backup.ts +0 -389
- package/engines/redis/binary-manager.ts +0 -44
- package/engines/redis/binary-urls.ts +0 -117
- package/engines/redis/cli-utils.ts +0 -42
- package/engines/redis/hostdb-releases.ts +0 -23
- package/engines/redis/index.ts +0 -1583
- package/engines/redis/restore.ts +0 -443
- package/engines/redis/version-maps.ts +0 -81
- package/engines/redis/version-validator.ts +0 -131
- package/engines/sqlite/README.md +0 -162
- package/engines/sqlite/binary-manager.ts +0 -52
- package/engines/sqlite/hostdb-releases.ts +0 -23
- package/engines/sqlite/index.ts +0 -641
- package/engines/sqlite/registry.ts +0 -198
- package/engines/sqlite/scanner.ts +0 -22
- package/engines/sqlite/version-maps.ts +0 -64
- package/engines/surrealdb/README.md +0 -218
- package/engines/surrealdb/backup.ts +0 -131
- package/engines/surrealdb/binary-manager.ts +0 -45
- package/engines/surrealdb/binary-urls.ts +0 -40
- package/engines/surrealdb/cli-utils.ts +0 -173
- package/engines/surrealdb/hostdb-releases.ts +0 -23
- package/engines/surrealdb/index.ts +0 -1246
- package/engines/surrealdb/restore.ts +0 -302
- package/engines/surrealdb/version-maps.ts +0 -41
- package/engines/tigerbeetle/README.md +0 -61
- package/engines/tigerbeetle/backup.ts +0 -49
- package/engines/tigerbeetle/binary-manager.ts +0 -95
- package/engines/tigerbeetle/binary-urls.ts +0 -62
- package/engines/tigerbeetle/hostdb-releases.ts +0 -26
- package/engines/tigerbeetle/index.ts +0 -746
- package/engines/tigerbeetle/restore.ts +0 -130
- package/engines/tigerbeetle/version-validator.ts +0 -126
- package/engines/typedb/backup.ts +0 -167
- package/engines/typedb/binary-manager.ts +0 -200
- package/engines/typedb/binary-urls.ts +0 -40
- package/engines/typedb/cli-utils.ts +0 -210
- package/engines/typedb/hostdb-releases.ts +0 -23
- package/engines/typedb/index.ts +0 -1275
- package/engines/typedb/restore.ts +0 -377
- package/engines/typedb/version-maps.ts +0 -48
- package/engines/typedb/version-validator.ts +0 -127
- package/engines/valkey/README.md +0 -219
- package/engines/valkey/backup.ts +0 -389
- package/engines/valkey/binary-manager.ts +0 -45
- package/engines/valkey/binary-urls.ts +0 -122
- package/engines/valkey/cli-utils.ts +0 -42
- package/engines/valkey/hostdb-releases.ts +0 -23
- package/engines/valkey/index.ts +0 -1585
- package/engines/valkey/restore.ts +0 -446
- package/engines/valkey/version-maps.ts +0 -81
- package/engines/valkey/version-validator.ts +0 -131
- package/engines/weaviate/README.md +0 -302
- package/engines/weaviate/api-client.ts +0 -61
- package/engines/weaviate/backup.ts +0 -145
- package/engines/weaviate/binary-manager.ts +0 -80
- package/engines/weaviate/binary-urls.ts +0 -115
- package/engines/weaviate/cli-utils.ts +0 -43
- package/engines/weaviate/hostdb-releases.ts +0 -23
- package/engines/weaviate/index.ts +0 -1139
- package/engines/weaviate/restore.ts +0 -235
- package/engines/weaviate/version-maps.ts +0 -78
- package/engines/weaviate/version-validator.ts +0 -128
- package/types/index.ts +0 -624
- /package/{config → dist/config}/engines.json +0 -0
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* QuestDB Restore Implementation
|
|
3
|
-
*
|
|
4
|
-
* Restores SQL backups to QuestDB using PostgreSQL wire protocol.
|
|
5
|
-
* QuestDB is compatible with psql for executing SQL statements.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import { open, readFile } from 'fs/promises'
|
|
9
|
-
import { spawn, spawnSync } from 'child_process'
|
|
10
|
-
import { configManager } from '../../core/config-manager'
|
|
11
|
-
import { logDebug } from '../../core/error-handler'
|
|
12
|
-
import type { BackupFormat, RestoreResult } from '../../types'
|
|
13
|
-
|
|
14
|
-
// Read only the first 8KB for format detection
|
|
15
|
-
const HEADER_SIZE = 8192
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Detect the backup format from file content
|
|
19
|
-
*/
|
|
20
|
-
export async function detectBackupFormat(
|
|
21
|
-
filePath: string,
|
|
22
|
-
): Promise<BackupFormat> {
|
|
23
|
-
// Check extension first
|
|
24
|
-
const lowerPath = filePath.toLowerCase()
|
|
25
|
-
if (lowerPath.endsWith('.sql')) {
|
|
26
|
-
return {
|
|
27
|
-
format: 'sql',
|
|
28
|
-
description: 'SQL dump file',
|
|
29
|
-
restoreCommand: 'psql',
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// Read file header for content-based detection
|
|
34
|
-
const buffer = Buffer.alloc(HEADER_SIZE)
|
|
35
|
-
const fd = await open(filePath, 'r')
|
|
36
|
-
let bytesRead: number
|
|
37
|
-
|
|
38
|
-
try {
|
|
39
|
-
const result = await fd.read(buffer, 0, HEADER_SIZE, 0)
|
|
40
|
-
bytesRead = result.bytesRead
|
|
41
|
-
} finally {
|
|
42
|
-
await fd.close()
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
const content = buffer.toString('utf-8', 0, bytesRead)
|
|
46
|
-
const lines = content.split(/\r?\n/)
|
|
47
|
-
|
|
48
|
-
// Check for SQL patterns
|
|
49
|
-
for (const line of lines.slice(0, 20)) {
|
|
50
|
-
const trimmed = line.trim().toUpperCase()
|
|
51
|
-
if (
|
|
52
|
-
trimmed.startsWith('CREATE TABLE') ||
|
|
53
|
-
trimmed.startsWith('INSERT INTO') ||
|
|
54
|
-
trimmed.startsWith('-- QUESTDB') ||
|
|
55
|
-
trimmed.startsWith('-- TABLE:')
|
|
56
|
-
) {
|
|
57
|
-
return {
|
|
58
|
-
format: 'sql',
|
|
59
|
-
description: 'SQL dump file',
|
|
60
|
-
restoreCommand: 'psql',
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
return {
|
|
66
|
-
format: 'unknown',
|
|
67
|
-
description: 'Unknown format',
|
|
68
|
-
restoreCommand: '',
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Parse a QuestDB/PostgreSQL connection string
|
|
74
|
-
*/
|
|
75
|
-
export function parseConnectionString(connectionString: string): {
|
|
76
|
-
host: string
|
|
77
|
-
port: number
|
|
78
|
-
database: string
|
|
79
|
-
user: string
|
|
80
|
-
password?: string
|
|
81
|
-
} {
|
|
82
|
-
// Support both postgresql:// and questdb:// schemes
|
|
83
|
-
let url: URL
|
|
84
|
-
try {
|
|
85
|
-
// Replace questdb:// with postgresql:// for URL parsing
|
|
86
|
-
const normalized = connectionString.replace(
|
|
87
|
-
/^questdb:\/\//,
|
|
88
|
-
'postgresql://',
|
|
89
|
-
)
|
|
90
|
-
url = new URL(normalized)
|
|
91
|
-
} catch {
|
|
92
|
-
throw new Error(
|
|
93
|
-
`Invalid connection string: ${connectionString}\n` +
|
|
94
|
-
'Expected format: postgresql://user:password@host:port/database',
|
|
95
|
-
)
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
return {
|
|
99
|
-
host: url.hostname || '127.0.0.1',
|
|
100
|
-
port: url.port ? parseInt(url.port, 10) : 8812,
|
|
101
|
-
database: url.pathname.replace(/^\//, '') || 'qdb',
|
|
102
|
-
user: url.username || 'admin',
|
|
103
|
-
password: url.password || 'quest',
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
export type RestoreOptions = {
|
|
108
|
-
containerName: string
|
|
109
|
-
port: number
|
|
110
|
-
database: string
|
|
111
|
-
version: string
|
|
112
|
-
clean?: boolean
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Restore a backup to QuestDB
|
|
117
|
-
*/
|
|
118
|
-
export async function restoreBackup(
|
|
119
|
-
backupPath: string,
|
|
120
|
-
options: RestoreOptions,
|
|
121
|
-
): Promise<RestoreResult> {
|
|
122
|
-
const { port, database, clean } = options
|
|
123
|
-
|
|
124
|
-
// Detect backup format
|
|
125
|
-
const format = await detectBackupFormat(backupPath)
|
|
126
|
-
if (format.format === 'unknown') {
|
|
127
|
-
throw new Error(
|
|
128
|
-
`Cannot detect backup format for: ${backupPath}\n` +
|
|
129
|
-
'Supported formats: .sql (SQL dump)',
|
|
130
|
-
)
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
logDebug(`Restoring ${format.format} backup to QuestDB database ${database}`)
|
|
134
|
-
|
|
135
|
-
// Find psql binary
|
|
136
|
-
let psqlPath = await configManager.getBinaryPath('psql')
|
|
137
|
-
if (!psqlPath) {
|
|
138
|
-
psqlPath = 'psql'
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
// Build restore command args
|
|
142
|
-
// Use ON_ERROR_STOP to fail fast on any SQL error (otherwise psql continues silently)
|
|
143
|
-
const args = [
|
|
144
|
-
'-h',
|
|
145
|
-
'127.0.0.1',
|
|
146
|
-
'-p',
|
|
147
|
-
String(port),
|
|
148
|
-
'-U',
|
|
149
|
-
'admin',
|
|
150
|
-
'-d',
|
|
151
|
-
database,
|
|
152
|
-
'-v',
|
|
153
|
-
'ON_ERROR_STOP=1',
|
|
154
|
-
'-f',
|
|
155
|
-
backupPath,
|
|
156
|
-
]
|
|
157
|
-
|
|
158
|
-
// For clean restore, drop existing tables before restoring
|
|
159
|
-
if (clean) {
|
|
160
|
-
logDebug('Clean restore requested - extracting table names from backup')
|
|
161
|
-
|
|
162
|
-
// Read the SQL file and extract table names from CREATE TABLE statements
|
|
163
|
-
const sqlContent = await readFile(backupPath, 'utf-8')
|
|
164
|
-
// Match CREATE TABLE [IF NOT EXISTS] "table_name" or CREATE TABLE [IF NOT EXISTS] table_name
|
|
165
|
-
const tableRegex =
|
|
166
|
-
/CREATE\s+TABLE\s+(?:IF\s+NOT\s+EXISTS\s+)?(?:"([^"]+)"|(\w+))/gi
|
|
167
|
-
const tables: string[] = []
|
|
168
|
-
let match
|
|
169
|
-
|
|
170
|
-
while ((match = tableRegex.exec(sqlContent)) !== null) {
|
|
171
|
-
const tableName = match[1] || match[2]
|
|
172
|
-
if (tableName && !tables.includes(tableName)) {
|
|
173
|
-
tables.push(tableName)
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
if (tables.length > 0) {
|
|
178
|
-
logDebug(`Found ${tables.length} tables to drop: ${tables.join(', ')}`)
|
|
179
|
-
|
|
180
|
-
// Execute DROP TABLE IF EXISTS for each table
|
|
181
|
-
for (const table of tables) {
|
|
182
|
-
const dropQuery = `DROP TABLE IF EXISTS "${table}";`
|
|
183
|
-
logDebug(`Executing: ${dropQuery}`)
|
|
184
|
-
|
|
185
|
-
const dropResult = spawnSync(
|
|
186
|
-
psqlPath!,
|
|
187
|
-
[
|
|
188
|
-
'-h',
|
|
189
|
-
'127.0.0.1',
|
|
190
|
-
'-p',
|
|
191
|
-
String(port),
|
|
192
|
-
'-U',
|
|
193
|
-
'admin',
|
|
194
|
-
'-d',
|
|
195
|
-
database,
|
|
196
|
-
'-c',
|
|
197
|
-
dropQuery,
|
|
198
|
-
],
|
|
199
|
-
{
|
|
200
|
-
env: { ...process.env, PGPASSWORD: 'quest' },
|
|
201
|
-
},
|
|
202
|
-
)
|
|
203
|
-
|
|
204
|
-
if (dropResult.error) {
|
|
205
|
-
logDebug(
|
|
206
|
-
`Warning: Failed to drop table ${table}: ${dropResult.error.message}`,
|
|
207
|
-
)
|
|
208
|
-
} else if (dropResult.status !== 0) {
|
|
209
|
-
logDebug(
|
|
210
|
-
`Warning: DROP TABLE ${table} exited with code ${dropResult.status}`,
|
|
211
|
-
)
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
} else {
|
|
215
|
-
logDebug('No CREATE TABLE statements found in backup')
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
return new Promise((resolve, reject) => {
|
|
220
|
-
const proc = spawn(psqlPath!, args, {
|
|
221
|
-
stdio: ['ignore', 'pipe', 'pipe'],
|
|
222
|
-
env: { ...process.env, PGPASSWORD: 'quest' },
|
|
223
|
-
})
|
|
224
|
-
|
|
225
|
-
let stdout = ''
|
|
226
|
-
let stderr = ''
|
|
227
|
-
|
|
228
|
-
proc.stdout.on('data', (data: Buffer) => {
|
|
229
|
-
stdout += data.toString()
|
|
230
|
-
})
|
|
231
|
-
proc.stderr.on('data', (data: Buffer) => {
|
|
232
|
-
stderr += data.toString()
|
|
233
|
-
})
|
|
234
|
-
|
|
235
|
-
proc.on('close', (code) => {
|
|
236
|
-
if (code === 0) {
|
|
237
|
-
resolve({
|
|
238
|
-
format: format.format,
|
|
239
|
-
stdout,
|
|
240
|
-
stderr,
|
|
241
|
-
code: 0,
|
|
242
|
-
})
|
|
243
|
-
} else if (stderr.includes('already exists')) {
|
|
244
|
-
// Treat "already exists" as non-fatal (table recreation during restore)
|
|
245
|
-
resolve({
|
|
246
|
-
format: format.format,
|
|
247
|
-
stdout,
|
|
248
|
-
stderr,
|
|
249
|
-
code: code ?? 1,
|
|
250
|
-
})
|
|
251
|
-
} else {
|
|
252
|
-
reject(new Error(`Restore failed: ${stderr || `exit code ${code}`}`))
|
|
253
|
-
}
|
|
254
|
-
})
|
|
255
|
-
|
|
256
|
-
proc.on('error', (err) => {
|
|
257
|
-
reject(new Error(`Failed to execute psql: ${err.message}`))
|
|
258
|
-
})
|
|
259
|
-
})
|
|
260
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* QuestDB Version Maps
|
|
3
|
-
*
|
|
4
|
-
* IMPORTANT: Keep this in sync with hostdb databases.json:
|
|
5
|
-
* https://github.com/robertjbass/hostdb/blob/main/databases.json
|
|
6
|
-
*
|
|
7
|
-
* QuestDB uses standard semantic versioning (e.g., 9.2.3)
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
export const QUESTDB_VERSION_MAP: Record<string, string> = {
|
|
11
|
-
'9': '9.2.3',
|
|
12
|
-
'9.2': '9.2.3',
|
|
13
|
-
'9.2.3': '9.2.3',
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export const SUPPORTED_MAJOR_VERSIONS = ['9']
|
|
17
|
-
export const FALLBACK_VERSION_MAP = QUESTDB_VERSION_MAP
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Normalize a version string to a full version
|
|
21
|
-
* e.g., '9' -> '9.2.3'
|
|
22
|
-
*/
|
|
23
|
-
export function normalizeVersion(version: string): string {
|
|
24
|
-
// If already a full version, return as-is
|
|
25
|
-
if (/^\d+\.\d+\.\d+$/.test(version)) {
|
|
26
|
-
return version
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// Try to look up in version map
|
|
30
|
-
const fullVersion = QUESTDB_VERSION_MAP[version]
|
|
31
|
-
if (fullVersion) {
|
|
32
|
-
return fullVersion
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// Return as-is if not found
|
|
36
|
-
return version
|
|
37
|
-
}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* QuestDB Version Validator
|
|
3
|
-
*
|
|
4
|
-
* Provides version parsing, validation, and comparison utilities.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { SUPPORTED_MAJOR_VERSIONS, QUESTDB_VERSION_MAP } from './version-maps'
|
|
8
|
-
|
|
9
|
-
export type ParsedVersion = {
|
|
10
|
-
major: number
|
|
11
|
-
minor: number
|
|
12
|
-
patch: number
|
|
13
|
-
full: string
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Parse a version string into components
|
|
18
|
-
* @param version Version string (e.g., '9.2.3', '9.2', '9')
|
|
19
|
-
* @returns Parsed version or null if invalid
|
|
20
|
-
*/
|
|
21
|
-
export function parseVersion(version: string): ParsedVersion | null {
|
|
22
|
-
// Match version patterns: 9.2.3, 9.2, 9
|
|
23
|
-
const match = version.match(/^(\d+)(?:\.(\d+))?(?:\.(\d+))?$/)
|
|
24
|
-
if (!match) return null
|
|
25
|
-
|
|
26
|
-
const major = parseInt(match[1], 10)
|
|
27
|
-
const minor = match[2] ? parseInt(match[2], 10) : 0
|
|
28
|
-
const patch = match[3] ? parseInt(match[3], 10) : 0
|
|
29
|
-
|
|
30
|
-
return {
|
|
31
|
-
major,
|
|
32
|
-
minor,
|
|
33
|
-
patch,
|
|
34
|
-
full: `${major}.${minor}.${patch}`,
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Check if a version is supported
|
|
40
|
-
*/
|
|
41
|
-
export function isVersionSupported(version: string): boolean {
|
|
42
|
-
const parsed = parseVersion(version)
|
|
43
|
-
if (!parsed) return false
|
|
44
|
-
|
|
45
|
-
const majorStr = String(parsed.major)
|
|
46
|
-
return SUPPORTED_MAJOR_VERSIONS.includes(majorStr)
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Get the major version string from a version
|
|
51
|
-
*/
|
|
52
|
-
export function getMajorVersion(version: string): string | null {
|
|
53
|
-
const parsed = parseVersion(version)
|
|
54
|
-
if (!parsed) return null
|
|
55
|
-
return String(parsed.major)
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Compare two versions
|
|
60
|
-
* @returns -1 if a < b, 0 if a == b, 1 if a > b
|
|
61
|
-
*/
|
|
62
|
-
export function compareVersions(a: string, b: string): number {
|
|
63
|
-
const parsedA = parseVersion(a)
|
|
64
|
-
const parsedB = parseVersion(b)
|
|
65
|
-
|
|
66
|
-
if (!parsedA || !parsedB) {
|
|
67
|
-
// Fall back to string comparison if parsing fails
|
|
68
|
-
return a.localeCompare(b)
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
if (parsedA.major !== parsedB.major) {
|
|
72
|
-
return parsedA.major - parsedB.major
|
|
73
|
-
}
|
|
74
|
-
if (parsedA.minor !== parsedB.minor) {
|
|
75
|
-
return parsedA.minor - parsedB.minor
|
|
76
|
-
}
|
|
77
|
-
return parsedA.patch - parsedB.patch
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Check if two versions are compatible for backup/restore
|
|
82
|
-
* QuestDB allows restoring to same or newer major version
|
|
83
|
-
*/
|
|
84
|
-
export function isVersionCompatible(
|
|
85
|
-
sourceVersion: string,
|
|
86
|
-
targetVersion: string,
|
|
87
|
-
): boolean {
|
|
88
|
-
const sourceMajor = getMajorVersion(sourceVersion)
|
|
89
|
-
const targetMajor = getMajorVersion(targetVersion)
|
|
90
|
-
|
|
91
|
-
if (!sourceMajor || !targetMajor) return false
|
|
92
|
-
|
|
93
|
-
// Same major version is always compatible
|
|
94
|
-
if (sourceMajor === targetMajor) return true
|
|
95
|
-
|
|
96
|
-
// Target major must be >= source major
|
|
97
|
-
return parseInt(targetMajor, 10) >= parseInt(sourceMajor, 10)
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Resolve a version alias to full version
|
|
102
|
-
*/
|
|
103
|
-
export function resolveVersion(version: string): string {
|
|
104
|
-
// Check if it's already a full version in the map
|
|
105
|
-
if (QUESTDB_VERSION_MAP[version]) {
|
|
106
|
-
return QUESTDB_VERSION_MAP[version]
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
// If already a full version format, return as-is
|
|
110
|
-
if (/^\d+\.\d+\.\d+$/.test(version)) {
|
|
111
|
-
return version
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
// Try major version lookup
|
|
115
|
-
const majorVersion = getMajorVersion(version)
|
|
116
|
-
if (majorVersion && QUESTDB_VERSION_MAP[majorVersion]) {
|
|
117
|
-
return QUESTDB_VERSION_MAP[majorVersion]
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
return version
|
|
121
|
-
}
|
package/engines/redis/README.md
DELETED
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
# Redis Engine Implementation
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
Redis is an in-memory key-value store with persistence. SpinDB downloads Redis binaries from hostdb and manages them with `redis-server` and `redis-cli`.
|
|
6
|
-
|
|
7
|
-
## Platform Support
|
|
8
|
-
|
|
9
|
-
| Platform | Architecture | Status | Notes |
|
|
10
|
-
|----------|--------------|--------|-------|
|
|
11
|
-
| darwin | x64 | Supported | Uses hostdb binaries |
|
|
12
|
-
| darwin | arm64 | Supported | Uses hostdb binaries (Apple Silicon) |
|
|
13
|
-
| linux | x64 | Supported | Uses hostdb binaries |
|
|
14
|
-
| linux | arm64 | Supported | Uses hostdb binaries |
|
|
15
|
-
| win32 | x64 | Supported | Uses hostdb binaries |
|
|
16
|
-
|
|
17
|
-
## Binary Packaging
|
|
18
|
-
|
|
19
|
-
### Archive Format
|
|
20
|
-
- **Unix (macOS/Linux)**: `tar.gz`
|
|
21
|
-
- **Windows**: `zip`
|
|
22
|
-
|
|
23
|
-
### Archive Structure
|
|
24
|
-
```text
|
|
25
|
-
redis/
|
|
26
|
-
└── bin/
|
|
27
|
-
├── redis-server # Server binary
|
|
28
|
-
├── redis-cli # Client CLI
|
|
29
|
-
├── redis-benchmark # Benchmarking tool
|
|
30
|
-
└── redis-check-* # Diagnostic tools
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
### Version Map Sync
|
|
34
|
-
|
|
35
|
-
```typescript
|
|
36
|
-
export const REDIS_VERSION_MAP: Record<string, string> = {
|
|
37
|
-
'7': '7.4.7',
|
|
38
|
-
'8': '8.4.0',
|
|
39
|
-
}
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## Implementation Details
|
|
43
|
-
|
|
44
|
-
### Binary Manager
|
|
45
|
-
|
|
46
|
-
Redis uses `BaseBinaryManager` with standard key-value store configuration.
|
|
47
|
-
|
|
48
|
-
### Version Parsing
|
|
49
|
-
|
|
50
|
-
- **Version output format**: `Redis server v=7.4.7 sha=00000000:0 malloc=jemalloc-5.3.0...`
|
|
51
|
-
- **Parse pattern**: `/v=(\d+\.\d+\.\d+)/` then fallback to `/(\d+\.\d+\.\d+)/`
|
|
52
|
-
|
|
53
|
-
### Default Configuration
|
|
54
|
-
|
|
55
|
-
- **Default Port**: 6379 (auto-increments on conflict)
|
|
56
|
-
- **Databases**: 16 numbered databases (0-15)
|
|
57
|
-
- **PID File**: `redis.pid` in container directory
|
|
58
|
-
- **Persistence**: RDB snapshots enabled by default
|
|
59
|
-
|
|
60
|
-
### Generated Configuration
|
|
61
|
-
|
|
62
|
-
SpinDB generates `redis.conf` with:
|
|
63
|
-
```
|
|
64
|
-
port {port}
|
|
65
|
-
bind 127.0.0.1
|
|
66
|
-
dir {dataDir}
|
|
67
|
-
daemonize yes # Unix: uses native daemonization
|
|
68
|
-
logfile {logFile}
|
|
69
|
-
pidfile {pidFile}
|
|
70
|
-
|
|
71
|
-
# Persistence - RDB snapshots
|
|
72
|
-
save 900 1
|
|
73
|
-
save 300 10
|
|
74
|
-
save 60 10000
|
|
75
|
-
dbfilename dump.rdb
|
|
76
|
-
|
|
77
|
-
# AOF disabled for local dev
|
|
78
|
-
appendonly no
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
### Windows Daemonize Workaround
|
|
82
|
-
|
|
83
|
-
Redis on Windows doesn't support `daemonize yes`. SpinDB uses:
|
|
84
|
-
- `detached: true` spawn option
|
|
85
|
-
- `windowsHide: true` to hide console window
|
|
86
|
-
- Manual PID file management
|
|
87
|
-
|
|
88
|
-
### Connection String Format
|
|
89
|
-
|
|
90
|
-
```text
|
|
91
|
-
redis://127.0.0.1:{port}/{database}
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
Where `{database}` is 0-15.
|
|
95
|
-
|
|
96
|
-
## Backup & Restore
|
|
97
|
-
|
|
98
|
-
### Backup Formats
|
|
99
|
-
|
|
100
|
-
| Format | Extension | Tool | Notes |
|
|
101
|
-
|--------|-----------|------|-------|
|
|
102
|
-
| text | `.redis` | Custom RESP | Human-readable commands |
|
|
103
|
-
| rdb | `.rdb` | Native RDB | Binary snapshot |
|
|
104
|
-
|
|
105
|
-
### Text Format (Merge vs Replace)
|
|
106
|
-
|
|
107
|
-
The text backup format supports two restore modes:
|
|
108
|
-
- **Merge**: Adds keys without clearing existing data
|
|
109
|
-
- **Replace (flush)**: Clears database before restoring
|
|
110
|
-
|
|
111
|
-
### RDB Format
|
|
112
|
-
|
|
113
|
-
RDB backups are native Redis snapshots. Restore requires stopping Redis, replacing `dump.rdb`, and restarting.
|
|
114
|
-
|
|
115
|
-
## Database Model
|
|
116
|
-
|
|
117
|
-
Redis uses numbered databases (0-15) instead of named databases:
|
|
118
|
-
- `createDatabase()` is effectively a no-op (databases always exist)
|
|
119
|
-
- `dropDatabase()` uses `FLUSHDB` to clear all keys in that database
|
|
120
|
-
|
|
121
|
-
## Integration Test Notes
|
|
122
|
-
|
|
123
|
-
### Reserved Ports
|
|
124
|
-
|
|
125
|
-
Integration tests use reserved ports:
|
|
126
|
-
- **Test Ports**: 6399-6401 (NOT 6379)
|
|
127
|
-
|
|
128
|
-
### Test Fixtures
|
|
129
|
-
|
|
130
|
-
Located in `tests/fixtures/redis/seeds/`:
|
|
131
|
-
- Key-value pairs for testing
|
|
132
|
-
|
|
133
|
-
## Docker E2E Test Notes
|
|
134
|
-
|
|
135
|
-
Redis Docker E2E tests verify:
|
|
136
|
-
- Server lifecycle
|
|
137
|
-
- Key-value operations
|
|
138
|
-
- RDB and text backup/restore
|
|
139
|
-
- Database switching (SELECT)
|
|
140
|
-
|
|
141
|
-
## Known Issues & Gotchas
|
|
142
|
-
|
|
143
|
-
### 1. Windows Daemonization
|
|
144
|
-
|
|
145
|
-
Redis doesn't natively support `daemonize yes` on Windows. SpinDB spawns a detached process instead and manages the PID file manually.
|
|
146
|
-
|
|
147
|
-
### 2. Database Numbers
|
|
148
|
-
|
|
149
|
-
Redis databases are always 0-15. Attempting to use a number outside this range throws an error.
|
|
150
|
-
|
|
151
|
-
### 3. Memory-First Storage
|
|
152
|
-
|
|
153
|
-
Redis is primarily in-memory. Large datasets may consume significant RAM. RDB snapshots persist to disk.
|
|
154
|
-
|
|
155
|
-
### 4. AOF Disabled
|
|
156
|
-
|
|
157
|
-
Append-Only File (AOF) is disabled by default in SpinDB for simpler local development. Enable it manually in `redis.conf` for durability.
|
|
158
|
-
|
|
159
|
-
### 5. Graceful Shutdown
|
|
160
|
-
|
|
161
|
-
Redis uses `SHUTDOWN SAVE` command for graceful shutdown with data persistence. Falls back to SIGTERM if CLI fails.
|
|
162
|
-
|
|
163
|
-
## CI/CD Notes
|
|
164
|
-
|
|
165
|
-
### GitHub Actions Cache Step
|
|
166
|
-
|
|
167
|
-
```yaml
|
|
168
|
-
- name: Cache Redis binaries
|
|
169
|
-
uses: actions/cache@v4
|
|
170
|
-
with:
|
|
171
|
-
path: ~/.spindb/bin/redis-*
|
|
172
|
-
key: redis-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('engines/redis/version-maps.ts') }}
|
|
173
|
-
```
|