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,170 +0,0 @@
|
|
|
1
|
-
# CockroachDB Engine Implementation
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
CockroachDB is a distributed SQL database with PostgreSQL wire protocol compatibility. It uses a single `cockroach` binary for all operations.
|
|
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
|
-
```
|
|
25
|
-
cockroachdb/
|
|
26
|
-
└── bin/
|
|
27
|
-
└── cockroach # Unified binary
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
### Version Format - YY.MM
|
|
31
|
-
|
|
32
|
-
Like ClickHouse, CockroachDB uses **year-based versioning**:
|
|
33
|
-
- `25.4.2` means 2025, release 4, patch 2
|
|
34
|
-
- **NOT** semver
|
|
35
|
-
|
|
36
|
-
### Version Map Sync
|
|
37
|
-
|
|
38
|
-
```typescript
|
|
39
|
-
export const COCKROACHDB_VERSION_MAP: Record<string, string> = {
|
|
40
|
-
'25': '25.4.2',
|
|
41
|
-
}
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## Implementation Details
|
|
45
|
-
|
|
46
|
-
### Binary Manager
|
|
47
|
-
|
|
48
|
-
CockroachDB uses `BaseBinaryManager` with standard configuration.
|
|
49
|
-
|
|
50
|
-
### Version Parsing
|
|
51
|
-
|
|
52
|
-
- **Version output format**: `Build Tag: v25.4.2` or `CockroachDB CCL v25.4.2`
|
|
53
|
-
- **Parse pattern**: `/v?(\d+\.\d+\.\d+)/`
|
|
54
|
-
|
|
55
|
-
### Default Configuration
|
|
56
|
-
|
|
57
|
-
- **Default Port**: 26257 (auto-increments on conflict)
|
|
58
|
-
- **HTTP Port**: 8080 (Admin UI)
|
|
59
|
-
- **PID File**: `cockroach.pid` in container directory
|
|
60
|
-
|
|
61
|
-
### PostgreSQL Wire Protocol
|
|
62
|
-
|
|
63
|
-
CockroachDB is PostgreSQL-compatible:
|
|
64
|
-
- Use `psql` for connections
|
|
65
|
-
- Standard PostgreSQL connection strings work
|
|
66
|
-
- PostgreSQL drivers work
|
|
67
|
-
|
|
68
|
-
### Connection String Format
|
|
69
|
-
|
|
70
|
-
```
|
|
71
|
-
postgresql://root@127.0.0.1:{port}/{database}
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
### Critical: Background Process Stdio
|
|
75
|
-
|
|
76
|
-
**MUST use `stdio: ['ignore', 'ignore', 'ignore']`** for spawning detached server:
|
|
77
|
-
|
|
78
|
-
```typescript
|
|
79
|
-
const proc = spawn(cockroachBinary, args, {
|
|
80
|
-
stdio: ['ignore', 'ignore', 'ignore'], // NOT 'pipe'
|
|
81
|
-
detached: true,
|
|
82
|
-
windowsHide: true,
|
|
83
|
-
})
|
|
84
|
-
proc.unref()
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
Using `'pipe'` for stdout/stderr keeps file descriptors open that prevent Node.js from exiting, causing `spindb start` to hang indefinitely in Docker/CI environments.
|
|
88
|
-
|
|
89
|
-
This is documented in CLAUDE.md as a major gotcha.
|
|
90
|
-
|
|
91
|
-
### Startup Command
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
cockroach start-single-node \
|
|
95
|
-
--insecure \
|
|
96
|
-
--store={dataDir} \
|
|
97
|
-
--listen-addr=127.0.0.1:{port} \
|
|
98
|
-
--http-addr=127.0.0.1:{httpPort} \
|
|
99
|
-
--background
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
## Backup & Restore
|
|
103
|
-
|
|
104
|
-
CockroachDB supports SQL-based backup/restore compatible with PostgreSQL tools.
|
|
105
|
-
|
|
106
|
-
## Integration Test Notes
|
|
107
|
-
|
|
108
|
-
### PostgreSQL Tools
|
|
109
|
-
|
|
110
|
-
Integration tests can use `psql` for CockroachDB operations.
|
|
111
|
-
|
|
112
|
-
### Test Fixtures
|
|
113
|
-
|
|
114
|
-
Located in `tests/fixtures/cockroachdb/seeds/`:
|
|
115
|
-
- SQL data for testing
|
|
116
|
-
|
|
117
|
-
## Docker E2E Test Notes
|
|
118
|
-
|
|
119
|
-
CockroachDB Docker E2E tests verify:
|
|
120
|
-
- Single-node cluster startup
|
|
121
|
-
- PostgreSQL wire protocol operations
|
|
122
|
-
- Database creation/deletion
|
|
123
|
-
- Data operations
|
|
124
|
-
|
|
125
|
-
## Known Issues & Gotchas
|
|
126
|
-
|
|
127
|
-
### 1. stdio Must Be 'ignore'
|
|
128
|
-
|
|
129
|
-
**Critical**: Using `stdio: 'pipe'` causes Node.js to hang. Always use `['ignore', 'ignore', 'ignore']` for detached spawn. This is the most important gotcha for CockroachDB.
|
|
130
|
-
|
|
131
|
-
### 2. YY.MM Version Format
|
|
132
|
-
|
|
133
|
-
Version `25.4.2` is year 2025, not semver version 25.
|
|
134
|
-
|
|
135
|
-
### 3. Single-Node Mode
|
|
136
|
-
|
|
137
|
-
SpinDB runs CockroachDB in single-node mode (`--insecure`) for local development. Not suitable for production.
|
|
138
|
-
|
|
139
|
-
### 4. Admin UI Port
|
|
140
|
-
|
|
141
|
-
CockroachDB has a web Admin UI on a separate HTTP port (default 8080). This is in addition to the SQL port.
|
|
142
|
-
|
|
143
|
-
### 5. Slow Initial Startup
|
|
144
|
-
|
|
145
|
-
First startup can be slow as CockroachDB initializes its distributed storage layer.
|
|
146
|
-
|
|
147
|
-
### 6. Memory Usage
|
|
148
|
-
|
|
149
|
-
CockroachDB is designed for distributed systems and may use more memory than simpler databases.
|
|
150
|
-
|
|
151
|
-
## CI/CD Notes
|
|
152
|
-
|
|
153
|
-
### GitHub Actions Cache Step
|
|
154
|
-
|
|
155
|
-
```yaml
|
|
156
|
-
- name: Cache CockroachDB binaries
|
|
157
|
-
uses: actions/cache@v4
|
|
158
|
-
with:
|
|
159
|
-
path: ~/.spindb/bin/cockroachdb-*
|
|
160
|
-
key: cockroachdb-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('engines/cockroachdb/version-maps.ts') }}
|
|
161
|
-
```
|
|
162
|
-
|
|
163
|
-
## PostgreSQL Compatibility Notes
|
|
164
|
-
|
|
165
|
-
CockroachDB is largely PostgreSQL-compatible but has some differences:
|
|
166
|
-
- Not all PostgreSQL features are supported
|
|
167
|
-
- Some SQL syntax differences
|
|
168
|
-
- Different system tables
|
|
169
|
-
|
|
170
|
-
For most common operations, PostgreSQL tools and drivers work correctly.
|
|
@@ -1,376 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CockroachDB backup module
|
|
3
|
-
* Supports SQL-based backups using cockroach sql
|
|
4
|
-
*
|
|
5
|
-
* CockroachDB backup formats:
|
|
6
|
-
* - SQL: DDL + INSERT statements (portable, human-readable)
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { spawn } from 'child_process'
|
|
10
|
-
import { stat, mkdir, writeFile } from 'fs/promises'
|
|
11
|
-
import { existsSync } from 'fs'
|
|
12
|
-
import { dirname } from 'path'
|
|
13
|
-
import { logDebug, logWarning } from '../../core/error-handler'
|
|
14
|
-
import {
|
|
15
|
-
requireCockroachPath,
|
|
16
|
-
validateCockroachIdentifier,
|
|
17
|
-
escapeCockroachIdentifier,
|
|
18
|
-
} from './cli-utils'
|
|
19
|
-
import type { ContainerConfig, BackupOptions, BackupResult } from '../../types'
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Execute a CockroachDB query and return the result
|
|
23
|
-
*/
|
|
24
|
-
async function execCockroachQuery(
|
|
25
|
-
cockroachPath: string,
|
|
26
|
-
port: number,
|
|
27
|
-
database: string,
|
|
28
|
-
query: string,
|
|
29
|
-
): Promise<string> {
|
|
30
|
-
return new Promise((resolve, reject) => {
|
|
31
|
-
const args = [
|
|
32
|
-
'sql',
|
|
33
|
-
'--insecure',
|
|
34
|
-
'--host',
|
|
35
|
-
`127.0.0.1:${port}`,
|
|
36
|
-
'--database',
|
|
37
|
-
database,
|
|
38
|
-
'--execute',
|
|
39
|
-
query,
|
|
40
|
-
'--format=csv',
|
|
41
|
-
]
|
|
42
|
-
|
|
43
|
-
const proc = spawn(cockroachPath, args, {
|
|
44
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
45
|
-
})
|
|
46
|
-
|
|
47
|
-
let stdout = ''
|
|
48
|
-
let stderr = ''
|
|
49
|
-
|
|
50
|
-
proc.stdout.on('data', (data: Buffer) => {
|
|
51
|
-
stdout += data.toString()
|
|
52
|
-
})
|
|
53
|
-
proc.stderr.on('data', (data: Buffer) => {
|
|
54
|
-
stderr += data.toString()
|
|
55
|
-
})
|
|
56
|
-
|
|
57
|
-
proc.on('error', reject)
|
|
58
|
-
|
|
59
|
-
proc.on('close', (code) => {
|
|
60
|
-
if (code === 0 || code === null) {
|
|
61
|
-
resolve(stdout)
|
|
62
|
-
} else {
|
|
63
|
-
reject(new Error(stderr || `cockroach sql exited with code ${code}`))
|
|
64
|
-
}
|
|
65
|
-
})
|
|
66
|
-
})
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Get list of tables in a database
|
|
71
|
-
*/
|
|
72
|
-
async function getTables(
|
|
73
|
-
cockroachPath: string,
|
|
74
|
-
port: number,
|
|
75
|
-
database: string,
|
|
76
|
-
): Promise<string[]> {
|
|
77
|
-
// Validate database identifier to prevent SQL injection
|
|
78
|
-
validateCockroachIdentifier(database, 'database')
|
|
79
|
-
|
|
80
|
-
const result = await execCockroachQuery(
|
|
81
|
-
cockroachPath,
|
|
82
|
-
port,
|
|
83
|
-
database,
|
|
84
|
-
`SELECT table_name FROM information_schema.tables WHERE table_schema = 'public' AND table_type = 'BASE TABLE' ORDER BY table_name`,
|
|
85
|
-
)
|
|
86
|
-
|
|
87
|
-
// Parse CSV output (skip header row)
|
|
88
|
-
const lines = result.trim().split('\n')
|
|
89
|
-
if (lines.length <= 1) return []
|
|
90
|
-
|
|
91
|
-
return lines
|
|
92
|
-
.slice(1) // Skip header
|
|
93
|
-
.map((line) => line.trim())
|
|
94
|
-
.filter((t) => t)
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Get CREATE TABLE statement for a table
|
|
99
|
-
*/
|
|
100
|
-
async function getCreateTableStatement(
|
|
101
|
-
cockroachPath: string,
|
|
102
|
-
port: number,
|
|
103
|
-
database: string,
|
|
104
|
-
table: string,
|
|
105
|
-
): Promise<string> {
|
|
106
|
-
// Validate identifiers to prevent SQL injection
|
|
107
|
-
validateCockroachIdentifier(database, 'database')
|
|
108
|
-
validateCockroachIdentifier(table, 'table')
|
|
109
|
-
const escapedTable = escapeCockroachIdentifier(table)
|
|
110
|
-
|
|
111
|
-
const result = await execCockroachQuery(
|
|
112
|
-
cockroachPath,
|
|
113
|
-
port,
|
|
114
|
-
database,
|
|
115
|
-
`SHOW CREATE TABLE ${escapedTable}`,
|
|
116
|
-
)
|
|
117
|
-
|
|
118
|
-
// Parse CSV output - format is: table_name,create_statement
|
|
119
|
-
const lines = result.trim().split('\n')
|
|
120
|
-
if (lines.length < 2) {
|
|
121
|
-
throw new Error(`Could not get CREATE TABLE for ${table}`)
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
// The create statement may span multiple lines, so join everything after the header
|
|
125
|
-
// and extract the statement part
|
|
126
|
-
const dataLines = lines.slice(1).join('\n')
|
|
127
|
-
|
|
128
|
-
// CockroachDB CSV output has the create statement in the second column
|
|
129
|
-
// Format: "table_name","CREATE TABLE..."
|
|
130
|
-
const match = dataLines.match(/^"?[^"]*"?,\s*"?(CREATE TABLE[\s\S]*)"?$/i)
|
|
131
|
-
if (match) {
|
|
132
|
-
// Remove surrounding quotes and unescape double quotes
|
|
133
|
-
return match[1].replace(/^"|"$/g, '').replace(/""/g, '"')
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
// Fallback: return everything after the first comma
|
|
137
|
-
const commaIdx = dataLines.indexOf(',')
|
|
138
|
-
if (commaIdx !== -1) {
|
|
139
|
-
return dataLines
|
|
140
|
-
.slice(commaIdx + 1)
|
|
141
|
-
.trim()
|
|
142
|
-
.replace(/^"|"$/g, '')
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
return dataLines
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* Get INSERT statements for a table's data
|
|
150
|
-
*/
|
|
151
|
-
async function getTableData(
|
|
152
|
-
cockroachPath: string,
|
|
153
|
-
port: number,
|
|
154
|
-
database: string,
|
|
155
|
-
table: string,
|
|
156
|
-
): Promise<string[]> {
|
|
157
|
-
validateCockroachIdentifier(table, 'table')
|
|
158
|
-
const escapedTable = escapeCockroachIdentifier(table)
|
|
159
|
-
|
|
160
|
-
// Get column names
|
|
161
|
-
const columnsResult = await execCockroachQuery(
|
|
162
|
-
cockroachPath,
|
|
163
|
-
port,
|
|
164
|
-
database,
|
|
165
|
-
`SELECT column_name FROM information_schema.columns WHERE table_schema = 'public' AND table_name = '${table.replace(/'/g, "''")}' ORDER BY ordinal_position`,
|
|
166
|
-
)
|
|
167
|
-
|
|
168
|
-
const columns = columnsResult
|
|
169
|
-
.trim()
|
|
170
|
-
.split('\n')
|
|
171
|
-
.slice(1) // Skip header
|
|
172
|
-
.map((line) => line.trim())
|
|
173
|
-
.filter((c) => c)
|
|
174
|
-
|
|
175
|
-
if (columns.length === 0) {
|
|
176
|
-
return []
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
// Get data
|
|
180
|
-
const dataResult = await execCockroachQuery(
|
|
181
|
-
cockroachPath,
|
|
182
|
-
port,
|
|
183
|
-
database,
|
|
184
|
-
`SELECT * FROM ${escapedTable}`,
|
|
185
|
-
)
|
|
186
|
-
|
|
187
|
-
const lines = dataResult.trim().split('\n')
|
|
188
|
-
if (lines.length <= 1) {
|
|
189
|
-
return [] // No data rows
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
const inserts: string[] = []
|
|
193
|
-
|
|
194
|
-
// Parse CSV data rows
|
|
195
|
-
for (const line of lines.slice(1)) {
|
|
196
|
-
if (!line.trim()) continue
|
|
197
|
-
|
|
198
|
-
// Simple CSV parsing (handles basic cases)
|
|
199
|
-
const fields = parseCSVLine(line)
|
|
200
|
-
if (fields.length !== columns.length) {
|
|
201
|
-
logWarning(
|
|
202
|
-
`Column count mismatch for table ${table}: expected ${columns.length}, got ${fields.length}`,
|
|
203
|
-
)
|
|
204
|
-
continue
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
const escapedValues = fields.map((field) => {
|
|
208
|
-
// Unquoted empty string or unquoted literal 'NULL' becomes SQL NULL
|
|
209
|
-
if (!field.wasQuoted && (field.value === '' || field.value === 'NULL')) {
|
|
210
|
-
return 'NULL'
|
|
211
|
-
}
|
|
212
|
-
// Quoted empty string stays as empty string, all other values get escaped
|
|
213
|
-
return `'${field.value.replace(/'/g, "''")}'`
|
|
214
|
-
})
|
|
215
|
-
|
|
216
|
-
const columnList = columns
|
|
217
|
-
.map((c) => escapeCockroachIdentifier(c))
|
|
218
|
-
.join(', ')
|
|
219
|
-
inserts.push(
|
|
220
|
-
`INSERT INTO ${escapedTable} (${columnList}) VALUES (${escapedValues.join(', ')});`,
|
|
221
|
-
)
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
return inserts
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
/**
|
|
228
|
-
* Parsed CSV field with value and whether it was quoted
|
|
229
|
-
*/
|
|
230
|
-
type CSVField = {
|
|
231
|
-
value: string
|
|
232
|
-
wasQuoted: boolean
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* Parse a CSV line (basic implementation)
|
|
237
|
-
* Returns both the value and whether the field was quoted,
|
|
238
|
-
* which is important for distinguishing empty strings from NULL
|
|
239
|
-
*/
|
|
240
|
-
function parseCSVLine(line: string): CSVField[] {
|
|
241
|
-
const fields: CSVField[] = []
|
|
242
|
-
let current = ''
|
|
243
|
-
let inQuotes = false
|
|
244
|
-
let fieldWasQuoted = false
|
|
245
|
-
|
|
246
|
-
for (let i = 0; i < line.length; i++) {
|
|
247
|
-
const char = line[i]
|
|
248
|
-
|
|
249
|
-
if (char === '"') {
|
|
250
|
-
if (inQuotes && line[i + 1] === '"') {
|
|
251
|
-
// Escaped quote
|
|
252
|
-
current += '"'
|
|
253
|
-
i++
|
|
254
|
-
} else {
|
|
255
|
-
// Toggle quote state
|
|
256
|
-
if (!inQuotes) {
|
|
257
|
-
fieldWasQuoted = true
|
|
258
|
-
}
|
|
259
|
-
inQuotes = !inQuotes
|
|
260
|
-
}
|
|
261
|
-
} else if (char === ',' && !inQuotes) {
|
|
262
|
-
fields.push({ value: current, wasQuoted: fieldWasQuoted })
|
|
263
|
-
current = ''
|
|
264
|
-
fieldWasQuoted = false
|
|
265
|
-
} else {
|
|
266
|
-
current += char
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
fields.push({ value: current, wasQuoted: fieldWasQuoted })
|
|
271
|
-
return fields
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
/**
|
|
275
|
-
* Create a SQL backup (DDL + INSERT statements)
|
|
276
|
-
*/
|
|
277
|
-
async function createSqlBackup(
|
|
278
|
-
container: ContainerConfig,
|
|
279
|
-
outputPath: string,
|
|
280
|
-
database: string,
|
|
281
|
-
): Promise<BackupResult> {
|
|
282
|
-
const { port, version } = container
|
|
283
|
-
|
|
284
|
-
const cockroachPath = await requireCockroachPath(version)
|
|
285
|
-
|
|
286
|
-
const lines: string[] = []
|
|
287
|
-
lines.push('-- CockroachDB backup generated by SpinDB')
|
|
288
|
-
lines.push(`-- Date: ${new Date().toISOString()}`)
|
|
289
|
-
lines.push(`-- Database: ${database}`)
|
|
290
|
-
lines.push('')
|
|
291
|
-
|
|
292
|
-
// Get list of tables
|
|
293
|
-
const tables = await getTables(cockroachPath, port, database)
|
|
294
|
-
logDebug(`Found ${tables.length} tables to backup`)
|
|
295
|
-
|
|
296
|
-
for (const table of tables) {
|
|
297
|
-
lines.push(`-- Table: ${table}`)
|
|
298
|
-
lines.push('')
|
|
299
|
-
|
|
300
|
-
// Get CREATE TABLE statement
|
|
301
|
-
try {
|
|
302
|
-
const createStmt = await getCreateTableStatement(
|
|
303
|
-
cockroachPath,
|
|
304
|
-
port,
|
|
305
|
-
database,
|
|
306
|
-
table,
|
|
307
|
-
)
|
|
308
|
-
lines.push(createStmt + ';')
|
|
309
|
-
lines.push('')
|
|
310
|
-
} catch (error) {
|
|
311
|
-
logWarning(`Could not get CREATE TABLE for ${table}: ${error}`)
|
|
312
|
-
continue
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
// Export data
|
|
316
|
-
try {
|
|
317
|
-
const inserts = await getTableData(cockroachPath, port, database, table)
|
|
318
|
-
if (inserts.length > 0) {
|
|
319
|
-
lines.push(...inserts)
|
|
320
|
-
lines.push('')
|
|
321
|
-
}
|
|
322
|
-
} catch (error) {
|
|
323
|
-
logWarning(`Could not export data for ${table}: ${error}`)
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
|
|
327
|
-
// Ensure output directory exists
|
|
328
|
-
const outputDir = dirname(outputPath)
|
|
329
|
-
if (!existsSync(outputDir)) {
|
|
330
|
-
await mkdir(outputDir, { recursive: true })
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
// Write to file
|
|
334
|
-
const content = lines.join('\n')
|
|
335
|
-
await writeFile(outputPath, content, 'utf-8')
|
|
336
|
-
|
|
337
|
-
const stats = await stat(outputPath)
|
|
338
|
-
|
|
339
|
-
return {
|
|
340
|
-
path: outputPath,
|
|
341
|
-
format: 'sql',
|
|
342
|
-
size: stats.size,
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
/**
|
|
347
|
-
* Create a backup
|
|
348
|
-
*
|
|
349
|
-
* @param container - Container configuration
|
|
350
|
-
* @param outputPath - Path to write backup file
|
|
351
|
-
* @param options - Backup options
|
|
352
|
-
*/
|
|
353
|
-
export async function createBackup(
|
|
354
|
-
container: ContainerConfig,
|
|
355
|
-
outputPath: string,
|
|
356
|
-
options: BackupOptions,
|
|
357
|
-
): Promise<BackupResult> {
|
|
358
|
-
const database = options.database || container.database || 'defaultdb'
|
|
359
|
-
|
|
360
|
-
return createSqlBackup(container, outputPath, database)
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
/**
|
|
364
|
-
* Create a backup for cloning purposes
|
|
365
|
-
* Uses SQL format for reliability
|
|
366
|
-
*/
|
|
367
|
-
export async function createCloneBackup(
|
|
368
|
-
container: ContainerConfig,
|
|
369
|
-
outputPath: string,
|
|
370
|
-
): Promise<BackupResult> {
|
|
371
|
-
return createSqlBackup(
|
|
372
|
-
container,
|
|
373
|
-
outputPath,
|
|
374
|
-
container.database || 'defaultdb',
|
|
375
|
-
)
|
|
376
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CockroachDB Binary Manager
|
|
3
|
-
*
|
|
4
|
-
* Handles downloading, extracting, and managing CockroachDB binaries from hostdb.
|
|
5
|
-
* Extends BaseBinaryManager for shared download/extraction logic.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import {
|
|
9
|
-
BaseBinaryManager,
|
|
10
|
-
type BinaryManagerConfig,
|
|
11
|
-
} from '../../core/base-binary-manager'
|
|
12
|
-
import { getBinaryUrl } from './binary-urls'
|
|
13
|
-
import { normalizeVersion } from './version-maps'
|
|
14
|
-
import { Engine, type Platform, type Arch } from '../../types'
|
|
15
|
-
|
|
16
|
-
class CockroachDBBinaryManager extends BaseBinaryManager {
|
|
17
|
-
protected readonly config: BinaryManagerConfig = {
|
|
18
|
-
engine: Engine.CockroachDB,
|
|
19
|
-
engineName: 'cockroachdb',
|
|
20
|
-
displayName: 'CockroachDB',
|
|
21
|
-
serverBinary: 'cockroach',
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
protected getBinaryUrlFromModule(
|
|
25
|
-
version: string,
|
|
26
|
-
platform: Platform,
|
|
27
|
-
arch: Arch,
|
|
28
|
-
): string {
|
|
29
|
-
return getBinaryUrl(version, platform, arch)
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
protected normalizeVersionFromModule(version: string): string {
|
|
33
|
-
return normalizeVersion(version)
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
protected parseVersionFromOutput(stdout: string): string | null {
|
|
37
|
-
// Extract version from output like:
|
|
38
|
-
// "Build Tag: v25.4.2"
|
|
39
|
-
// or "CockroachDB CCL v25.4.2"
|
|
40
|
-
const match = stdout.match(/v?(\d+\.\d+\.\d+)/)
|
|
41
|
-
return match?.[1] ?? null
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export const cockroachdbBinaryManager = new CockroachDBBinaryManager()
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CockroachDB binary URL generation
|
|
3
|
-
*
|
|
4
|
-
* Generates download URLs for CockroachDB binaries from the layerbase registry.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { type Platform, type Arch, Engine } from '../../types'
|
|
8
|
-
import { normalizeVersion } from './version-maps'
|
|
9
|
-
import { buildHostdbUrl } from '../../core/hostdb-client'
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Get the binary download URL for a specific version and platform
|
|
13
|
-
*
|
|
14
|
-
* URL format: https://registry.layerbase.host/cockroachdb-{version}/cockroachdb-{version}-{platform}-{arch}.{ext}
|
|
15
|
-
*
|
|
16
|
-
* @param version - CockroachDB version (e.g., '25.4.2' or '25')
|
|
17
|
-
* @param platform - Target platform (darwin, linux, win32)
|
|
18
|
-
* @param arch - Target architecture (x64, arm64)
|
|
19
|
-
*/
|
|
20
|
-
export function getBinaryUrl(
|
|
21
|
-
version: string,
|
|
22
|
-
platform: Platform,
|
|
23
|
-
arch: Arch,
|
|
24
|
-
): string {
|
|
25
|
-
const fullVersion = normalizeVersion(version)
|
|
26
|
-
const ext = platform === 'win32' ? 'zip' : 'tar.gz'
|
|
27
|
-
|
|
28
|
-
return buildHostdbUrl(Engine.CockroachDB, {
|
|
29
|
-
version: fullVersion,
|
|
30
|
-
hostdbPlatform: `${platform}-${arch}`,
|
|
31
|
-
extension: ext,
|
|
32
|
-
})
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Get the archive extension for a platform
|
|
37
|
-
*/
|
|
38
|
-
export function getArchiveExtension(platform: Platform): string {
|
|
39
|
-
return platform === 'win32' ? 'zip' : 'tar.gz'
|
|
40
|
-
}
|