@scandipwa/magento-scripts 2.0.3 → 2.0.5
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/.eslintrc +6 -1
- package/exec.js +75 -39
- package/index.js +87 -46
- package/lib/commands/cleanup.js +18 -21
- package/lib/commands/cli.js +138 -73
- package/lib/commands/execute.js +5 -5
- package/lib/commands/import-db.js +21 -24
- package/lib/commands/link.js +17 -20
- package/lib/commands/logs.js +91 -91
- package/lib/commands/start.js +229 -191
- package/lib/commands/status.js +64 -50
- package/lib/commands/stop.js +14 -11
- package/lib/config/check-configuration-file.js +33 -28
- package/lib/config/cma-config.js +4 -4
- package/lib/config/config.js +40 -18
- package/lib/config/dependencies-for-platforms.js +33 -3
- package/lib/config/docker.js +259 -160
- package/lib/config/get-magento-version-config.js +45 -38
- package/lib/config/get-port-config.js +30 -44
- package/lib/config/get-project-configuration.js +8 -8
- package/lib/config/index.js +51 -42
- package/lib/config/magento/required-php-extensions/index.js +33 -19
- package/lib/config/magento/required-php-extensions/magento-2.3.js +2 -2
- package/lib/config/magento/required-php-extensions/magento-2.4.js +2 -2
- package/lib/config/magento-config.js +4 -4
- package/lib/config/php-config.js +8 -6
- package/lib/config/port-config.js +62 -43
- package/lib/config/save-config.js +6 -6
- package/lib/config/scandipwa-versions.js +2 -2
- package/lib/config/services/composer/versions/composer-1.js +2 -2
- package/lib/config/services/composer/versions/composer-2.js +2 -2
- package/lib/config/services/composer/versions/index.js +1 -1
- package/lib/config/services/elasticsearch/base-repo.js +1 -1
- package/lib/config/services/elasticsearch/default-es-env.js +4 -1
- package/lib/config/services/elasticsearch/versions/elasticsearch-6.8.js +17 -14
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.10.js +4 -4
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.12.js +4 -4
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.16.js +4 -4
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.17.js +4 -4
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.6.js +4 -4
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.7.js +4 -4
- package/lib/config/services/elasticsearch/versions/elasticsearch-7.9.js +4 -4
- package/lib/config/services/elasticsearch/versions/index.js +9 -9
- package/lib/config/services/maildev/index.js +5 -2
- package/lib/config/services/mariadb/versions/index.js +1 -1
- package/lib/config/services/mariadb/versions/mariadb-10.2.js +5 -4
- package/lib/config/services/mariadb/versions/mariadb-10.3.js +5 -4
- package/lib/config/services/mariadb/versions/mariadb-10.4.js +5 -4
- package/lib/config/services/nginx/versions/index.js +1 -1
- package/lib/config/services/nginx/versions/nginx-1.18.js +5 -4
- package/lib/config/services/php/base-repo.js +1 -1
- package/lib/config/services/php/extensions/apcu.js +3 -3
- package/lib/config/services/php/extensions/bcmath.js +2 -2
- package/lib/config/services/php/extensions/curl.js +3 -6
- package/lib/config/services/php/extensions/gd.js +4 -3
- package/lib/config/services/php/extensions/index.js +9 -8
- package/lib/config/services/php/extensions/intl.js +3 -5
- package/lib/config/services/php/extensions/opcache.js +3 -5
- package/lib/config/services/php/extensions/pdo_mysql.js +2 -2
- package/lib/config/services/php/extensions/soap.js +3 -5
- package/lib/config/services/php/extensions/sodium.js +3 -5
- package/lib/config/services/php/extensions/xdebug.js +5 -3
- package/lib/config/services/php/extensions/xsl.js +3 -5
- package/lib/config/services/php/extensions/zip.js +3 -5
- package/lib/config/services/php/versions/index.js +1 -1
- package/lib/config/services/php/versions/php-7.2.js +13 -9
- package/lib/config/services/php/versions/php-7.3.js +13 -9
- package/lib/config/services/php/versions/php-7.4.js +13 -9
- package/lib/config/services/php/versions/php-8.1.js +13 -9
- package/lib/config/services/redis/index.js +1 -1
- package/lib/config/services/redis/redis-5.0.js +2 -2
- package/lib/config/services/redis/redis-6.0.js +2 -2
- package/lib/config/services/redis/redis-6.2.js +2 -2
- package/lib/config/services/ssl-terminator/index.js +6 -5
- package/lib/config/services/varnish/index.js +1 -1
- package/lib/config/services/varnish/varnish-6-0.js +7 -5
- package/lib/config/services/varnish/varnish-6-6.js +7 -5
- package/lib/config/services/varnish/varnish-7-0.js +7 -5
- package/lib/config/system-config.js +55 -32
- package/lib/config/templates/mariadb.template.cnf +8 -0
- package/lib/config/versions/index.js +48 -27
- package/lib/config/versions/magento-2.2.10.js +22 -15
- package/lib/config/versions/magento-2.3.0.js +22 -15
- package/lib/config/versions/magento-2.3.1.js +22 -15
- package/lib/config/versions/magento-2.3.2-p1.js +22 -15
- package/lib/config/versions/magento-2.3.2-p2.js +22 -15
- package/lib/config/versions/magento-2.3.2.js +22 -15
- package/lib/config/versions/magento-2.3.3-p1.js +22 -15
- package/lib/config/versions/magento-2.3.3.js +22 -15
- package/lib/config/versions/magento-2.3.4-p1.js +22 -15
- package/lib/config/versions/magento-2.3.4-p2.js +22 -15
- package/lib/config/versions/magento-2.3.4.js +22 -15
- package/lib/config/versions/magento-2.3.5-p1.js +22 -15
- package/lib/config/versions/magento-2.3.5-p2.js +22 -15
- package/lib/config/versions/magento-2.3.5.js +27 -15
- package/lib/config/versions/magento-2.3.6-p1.js +22 -15
- package/lib/config/versions/magento-2.3.6.js +22 -15
- package/lib/config/versions/magento-2.3.7-p1.js +22 -15
- package/lib/config/versions/magento-2.3.7-p2.js +22 -15
- package/lib/config/versions/magento-2.3.7-p3.js +22 -15
- package/lib/config/versions/magento-2.3.7-p4.js +22 -15
- package/lib/config/versions/magento-2.3.7.js +22 -15
- package/lib/config/versions/magento-2.4.0-p1.js +22 -15
- package/lib/config/versions/magento-2.4.0.js +22 -15
- package/lib/config/versions/magento-2.4.1-p1.js +23 -16
- package/lib/config/versions/magento-2.4.1.js +23 -16
- package/lib/config/versions/magento-2.4.2-p1.js +23 -16
- package/lib/config/versions/magento-2.4.2-p2.js +23 -16
- package/lib/config/versions/magento-2.4.2.js +23 -16
- package/lib/config/versions/magento-2.4.3-p1.js +23 -16
- package/lib/config/versions/magento-2.4.3-p2.js +23 -16
- package/lib/config/versions/magento-2.4.3-p3.js +23 -16
- package/lib/config/versions/magento-2.4.3.js +23 -16
- package/lib/config/versions/magento-2.4.4-p1.js +23 -16
- package/lib/config/versions/magento-2.4.4-p2.js +23 -16
- package/lib/config/versions/magento-2.4.4.js +23 -16
- package/lib/config/versions/magento-2.4.5-p1.js +23 -16
- package/lib/config/versions/magento-2.4.5.js +23 -17
- package/lib/config/xml-parser.js +21 -20
- package/lib/errors/known-error.js +8 -6
- package/lib/errors/unknown-error.js +8 -6
- package/lib/tasks/cache/create-cache-folder.js +10 -10
- package/lib/tasks/cache/index.js +1 -1
- package/lib/tasks/cache/remove-cache-folder.js +9 -9
- package/lib/tasks/cleanup.js +22 -24
- package/lib/tasks/cli/create-bashrc-config.js +19 -11
- package/lib/tasks/cli/index.js +10 -13
- package/lib/tasks/composer/index.js +20 -15
- package/lib/tasks/composer/local-auth-json.js +32 -18
- package/lib/tasks/database/connect-to-database.js +71 -51
- package/lib/tasks/database/create-magento-database.js +7 -7
- package/lib/tasks/database/create-magento-user.js +33 -20
- package/lib/tasks/database/default-magento-database.js +1 -1
- package/lib/tasks/database/default-magento-user.js +2 -2
- package/lib/tasks/database/dump-theme-config.js +16 -12
- package/lib/tasks/database/fix-db.js +62 -52
- package/lib/tasks/database/import-dump-to-database.js +122 -85
- package/lib/tasks/database/import-remote-db/index.js +16 -18
- package/lib/tasks/database/import-remote-db/ssh/database-dump-command.js +2 -2
- package/lib/tasks/database/import-remote-db/ssh/index.js +34 -35
- package/lib/tasks/database/import-remote-db/ssh/readymage.js +41 -38
- package/lib/tasks/database/import-remote-db/ssh/regular-server.js +44 -46
- package/lib/tasks/database/index.js +1 -1
- package/lib/tasks/database/magento-tables.js +3 -3
- package/lib/tasks/database/restore-theme-config.js +26 -19
- package/lib/tasks/docker/api.d.ts +1 -1
- package/lib/tasks/docker/api.js +31 -33
- package/lib/tasks/docker/containers/container-api.d.ts +49 -14
- package/lib/tasks/docker/containers/container-api.js +112 -83
- package/lib/tasks/docker/containers/index.js +3 -3
- package/lib/tasks/docker/containers/tasks.js +171 -99
- package/lib/tasks/docker/convert-composer-home-to-composer-cache-volume.js +34 -25
- package/lib/tasks/docker/convert-legacy-volumes.js +91 -55
- package/lib/tasks/docker/convert-mysql-to-mariadb.js +178 -147
- package/lib/tasks/docker/image/image-api.d.ts +2 -3
- package/lib/tasks/docker/image/image-api.js +41 -34
- package/lib/tasks/docker/image/index.js +2 -2
- package/lib/tasks/docker/index.js +26 -21
- package/lib/tasks/docker/network/index.js +3 -3
- package/lib/tasks/docker/network/network-api.d.ts +11 -8
- package/lib/tasks/docker/network/network-api.js +53 -61
- package/lib/tasks/docker/network/tasks.js +41 -31
- package/lib/tasks/docker/project-image-builder.js +175 -92
- package/lib/tasks/docker/system/index.js +2 -2
- package/lib/tasks/docker/system/system-api.d.ts +2 -2
- package/lib/tasks/docker/system/system-api.js +16 -19
- package/lib/tasks/docker/volume/index.js +3 -3
- package/lib/tasks/docker/volume/tasks.js +63 -46
- package/lib/tasks/docker/volume/volume-api.d.ts +8 -5
- package/lib/tasks/docker/volume/volume-api.js +59 -76
- package/lib/tasks/execute.js +91 -55
- package/lib/tasks/file-system/create-mariadb-config.js +26 -11
- package/lib/tasks/file-system/create-nginx-config.js +18 -19
- package/lib/tasks/file-system/create-php-config.js +12 -8
- package/lib/tasks/file-system/create-php-debug-config.js +23 -18
- package/lib/tasks/file-system/create-php-fpm-config.js +14 -9
- package/lib/tasks/file-system/create-phpstorm-config/database-config.js +144 -112
- package/lib/tasks/file-system/create-phpstorm-config/eslint-config.js +69 -45
- package/lib/tasks/file-system/create-phpstorm-config/exclude-folder-config.js +69 -70
- package/lib/tasks/file-system/create-phpstorm-config/index.js +28 -24
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/coding-standard-config.js +9 -9
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/config.js +23 -23
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/custom-ruleset-path-config.js +22 -19
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/default-properties-config.js +26 -16
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/eslint-inspection-config.js +14 -15
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/index.js +43 -34
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/inspection-tools-config.js +14 -6
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/magento-coding-standard-config.js +9 -9
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/mess-detector-validation-inspection-config.js +53 -47
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/paths.js +41 -12
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/php-cs-fixer-validation-inspection-config.js +33 -30
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/php-cs-validation-inspection-config.js +35 -38
- package/lib/tasks/file-system/create-phpstorm-config/inspection-tools-config/stylelint-inspection-config.js +14 -15
- package/lib/tasks/file-system/create-phpstorm-config/keys.js +10 -10
- package/lib/tasks/file-system/create-phpstorm-config/php-config/index.js +33 -25
- package/lib/tasks/file-system/create-phpstorm-config/php-config/mess-detector-config.js +28 -25
- package/lib/tasks/file-system/create-phpstorm-config/php-config/php-code-sniffer-config.js +53 -32
- package/lib/tasks/file-system/create-phpstorm-config/php-config/php-config.js +7 -7
- package/lib/tasks/file-system/create-phpstorm-config/php-config/php-cs-fixer-config.js +37 -27
- package/lib/tasks/file-system/create-phpstorm-config/php-config/php-interpreters-config.js +53 -31
- package/lib/tasks/file-system/create-phpstorm-config/php-config/php-project-shared-configuration-config.js +42 -30
- package/lib/tasks/file-system/create-phpstorm-config/php-docker-settings-config/index.js +33 -20
- package/lib/tasks/file-system/create-phpstorm-config/php-docker-settings-config/php-docker-settings-config.js +3 -3
- package/lib/tasks/file-system/create-phpstorm-config/php-docker-settings-config/setup-php-docker-container-settings-config.js +27 -16
- package/lib/tasks/file-system/create-phpstorm-config/setup-xml-structure.js +14 -13
- package/lib/tasks/file-system/create-phpstorm-config/stylelint-config.js +52 -34
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/composer-settings-config.js +41 -33
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/format-setting-config.js +39 -27
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/index.js +34 -30
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/mess-detector-project-configuration-config.js +32 -22
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-code-sniffer-project-configuration-config.js +32 -22
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-cs-fixer-project-configuration-config.js +32 -22
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-debug-general-config.js +42 -31
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-server-config.js +45 -33
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-stan-project-configuration-config.js.js +32 -22
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/php-workspace-project-configuration-config.js +22 -19
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/properties-component-config.js +35 -21
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/psalm-project-configuration-config.js.js +31 -22
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/run-manager-config.js +38 -28
- package/lib/tasks/file-system/create-phpstorm-config/workspace-config/workspace-config.js +5 -5
- package/lib/tasks/file-system/create-phpstorm-config/xml-utils.js +3 -2
- package/lib/tasks/file-system/create-ssl-terminator-config.js +46 -34
- package/lib/tasks/file-system/create-varnish-config.js +20 -23
- package/lib/tasks/file-system/create-vscode-config.js +66 -49
- package/lib/tasks/file-system/index.js +29 -25
- package/lib/tasks/import-dump.js +54 -45
- package/lib/tasks/link.js +24 -23
- package/lib/tasks/magento/enable-magento-composer-plugins.js +213 -149
- package/lib/tasks/magento/index.js +1 -1
- package/lib/tasks/magento/install-magento-project.js +158 -97
- package/lib/tasks/magento/remove-magento.js +30 -24
- package/lib/tasks/magento/setup-magento/adjust-full-page-cache.js +27 -15
- package/lib/tasks/magento/setup-magento/configure-elasticsearch.js +23 -10
- package/lib/tasks/magento/setup-magento/create-admin.js +21 -13
- package/lib/tasks/magento/setup-magento/delete-admin-users.js +5 -5
- package/lib/tasks/magento/setup-magento/delete-customers.js +16 -10
- package/lib/tasks/magento/setup-magento/delete-orders.js +16 -10
- package/lib/tasks/magento/setup-magento/disable-2fa.js +11 -8
- package/lib/tasks/magento/setup-magento/disable-maintenance-mode.js +7 -7
- package/lib/tasks/magento/setup-magento/disable-page-builder.js +5 -4
- package/lib/tasks/magento/setup-magento/flush-redis-config.js +14 -8
- package/lib/tasks/magento/setup-magento/increase-admin-session-lifetime.js +21 -17
- package/lib/tasks/magento/setup-magento/index-products.js +4 -6
- package/lib/tasks/magento/setup-magento/index.js +54 -47
- package/lib/tasks/magento/setup-magento/install-magento.js +112 -79
- package/lib/tasks/magento/setup-magento/migrate-database.js +115 -96
- package/lib/tasks/magento/setup-magento/set-base-url.js +35 -21
- package/lib/tasks/magento/setup-magento/set-deployment-mode.js +15 -13
- package/lib/tasks/magento/setup-magento/set-mail-config.js +20 -14
- package/lib/tasks/magento/setup-magento/set-url-rewrite.js +13 -9
- package/lib/tasks/magento/setup-magento/upgrade-magento.js +30 -22
- package/lib/tasks/magento/setup-magento/urn-highlighter.js +11 -11
- package/lib/tasks/magento/setup-magento/varnish-config.js +42 -32
- package/lib/tasks/magento/setup-magento/waiting-for-redis.js +6 -8
- package/lib/tasks/magento/setup-magento/waiting-for-varnish.js +108 -65
- package/lib/tasks/magento/uninstall-magento.js +19 -16
- package/lib/tasks/php/php-container.d.ts +19 -0
- package/lib/tasks/php/php-container.js +50 -46
- package/lib/tasks/php/update-env-php.js +50 -30
- package/lib/tasks/project-config/index.js +12 -8
- package/lib/tasks/requirements/composer-credentials.js +215 -112
- package/lib/tasks/requirements/docker/context.js +49 -37
- package/lib/tasks/requirements/docker/index.js +123 -89
- package/lib/tasks/requirements/docker/install-on-mac.js +21 -14
- package/lib/tasks/requirements/docker/install.js +63 -52
- package/lib/tasks/requirements/docker/performance.js +39 -24
- package/lib/tasks/requirements/docker/permissions.js +27 -17
- package/lib/tasks/requirements/docker/running-status.js +79 -66
- package/lib/tasks/requirements/docker/version.js +15 -11
- package/lib/tasks/requirements/index.js +33 -29
- package/lib/tasks/requirements/node-version.js +8 -8
- package/lib/tasks/requirements/php-version.js +14 -11
- package/lib/tasks/requirements/platform.js +42 -26
- package/lib/tasks/requirements/rosetta.js +15 -12
- package/lib/tasks/start.js +172 -148
- package/lib/tasks/status/index.js +155 -88
- package/lib/tasks/stop.js +22 -18
- package/lib/tasks/theme/build-theme.js +50 -33
- package/lib/tasks/theme/install-theme.js +31 -18
- package/lib/tasks/theme/link-theme.js +27 -21
- package/lib/tasks/theme/retrieve-theme-data.js +24 -18
- package/lib/tasks/theme/setup-themes.js +87 -59
- package/lib/tasks/theme/symlink-theme.js +44 -22
- package/lib/util/CSA-theme.js +23 -21
- package/lib/util/analytics.js +130 -75
- package/lib/util/arch.js +22 -18
- package/lib/util/clean-object.js +15 -10
- package/lib/util/config-file-validator.js +74 -55
- package/lib/util/config-php-json.js +34 -16
- package/lib/util/connection-string.js +41 -27
- package/lib/util/console-block.js +112 -65
- package/lib/util/database.js +56 -33
- package/lib/util/deepmerge.d.ts +1 -1
- package/lib/util/deepmerge.js +19 -28
- package/lib/util/dockerfile-builder/build-instructions.js +159 -143
- package/lib/util/dockerfile-builder/index.js +47 -73
- package/lib/util/dockerfile-builder/types.d.ts +2 -1
- package/lib/util/download-file.js +28 -16
- package/lib/util/env-php-json.js +42 -16
- package/lib/util/exec-async-command.d.ts +9 -9
- package/lib/util/exec-async-command.js +82 -59
- package/lib/util/exec-async.d.ts +2 -0
- package/lib/util/exec-async.js +12 -5
- package/lib/util/execute-in-container.js +22 -27
- package/lib/util/execute-sudo-command.js +11 -15
- package/lib/util/get-brew-bin-path.js +27 -23
- package/lib/util/get-installed-magento-version.js +22 -16
- package/lib/util/get-jsonfile-data.js +14 -9
- package/lib/util/install-dependencies-task.js +53 -41
- package/lib/util/instance-metadata.js +44 -29
- package/lib/util/ip.js +16 -12
- package/lib/util/is-running-root.js +6 -3
- package/lib/util/is-wsl.js +10 -10
- package/lib/util/macos-version.js +12 -11
- package/lib/util/magento-task.js +14 -9
- package/lib/util/match-filesystem.js +22 -16
- package/lib/util/move-file.js +40 -25
- package/lib/util/nginx-logs-parser.js +50 -39
- package/lib/util/open-browser.js +10 -5
- package/lib/util/os-platform.js +40 -32
- package/lib/util/path-exists-sync.js +10 -6
- package/lib/util/path-exists.js +6 -6
- package/lib/util/php-task.js +11 -10
- package/lib/util/portscanner.js +97 -85
- package/lib/util/prefix.js +31 -22
- package/lib/util/resolve-configuration-with-overrides.js +30 -15
- package/lib/util/rmdir-safe.js +15 -11
- package/lib/util/run-composer.js +16 -16
- package/lib/util/run-container-image.js +9 -4
- package/lib/util/run-magento.js +16 -17
- package/lib/util/run-php.js +16 -21
- package/lib/util/safe-regex-extract.js +8 -12
- package/lib/util/set-config.js +24 -15
- package/lib/util/sleep.js +7 -2
- package/lib/util/systemctl.js +62 -44
- package/lib/util/wait-for-it.js +42 -33
- package/lib/util/wait-for-logs.js +42 -35
- package/lib/util/xdg-open-exists.js +19 -19
- package/package.json +7 -3
- package/tsconfig.json +24 -0
- package/typings/context.d.ts +76 -34
- package/typings/index.d.ts +54 -20
- package/typings/override.d.ts +14 -0
- package/typings/phpstorm.d.ts +19 -19
- package/.prettierrc +0 -3
- package/lib/util/get-php-for-phpbrew.js +0 -30
- package/lib/util/request.js +0 -0
|
@@ -1,90 +1,126 @@
|
|
|
1
1
|
/* eslint-disable no-param-reassign */
|
|
2
2
|
/* eslint-disable max-len */
|
|
3
|
-
const { stopServices } = require('./index')
|
|
4
|
-
const { getBaseConfig, getConfigFromMagentoVersion } = require('../../config')
|
|
5
|
-
const getDockerConfig = require('../../config/docker')
|
|
6
|
-
const { execAsyncSpawn } = require('../../util/exec-async-command')
|
|
7
|
-
const { folderName, legacyFolderName } = require('../../util/prefix')
|
|
8
|
-
const { volumeApi } = require('./volume')
|
|
3
|
+
const { stopServices } = require('./index')
|
|
4
|
+
const { getBaseConfig, getConfigFromMagentoVersion } = require('../../config')
|
|
5
|
+
const getDockerConfig = require('../../config/docker')
|
|
6
|
+
const { execAsyncSpawn } = require('../../util/exec-async-command')
|
|
7
|
+
const { folderName, legacyFolderName } = require('../../util/prefix')
|
|
8
|
+
const { volumeApi } = require('./volume')
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
|
-
* @
|
|
11
|
+
* @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
|
|
12
12
|
*/
|
|
13
13
|
const convertLegacyVolumes = () => ({
|
|
14
14
|
task: async (ctx, task) => {
|
|
15
|
-
const {
|
|
16
|
-
|
|
15
|
+
const {
|
|
16
|
+
config: { overridenConfiguration }
|
|
17
|
+
} = ctx
|
|
18
|
+
const newDockerConfig = await getDockerConfig(
|
|
19
|
+
ctx,
|
|
20
|
+
overridenConfiguration,
|
|
21
|
+
getBaseConfig(process.cwd(), folderName)
|
|
22
|
+
)
|
|
17
23
|
|
|
18
|
-
const newVolumeNames = Object.values(newDockerConfig.volumes)
|
|
24
|
+
const newVolumeNames = Object.values(newDockerConfig.volumes)
|
|
25
|
+
.filter((v) => !v.opt)
|
|
26
|
+
.map(({ name }) => name)
|
|
19
27
|
|
|
20
|
-
const existingVolumes = await volumeApi.ls({ formatToJSON: true })
|
|
28
|
+
const existingVolumes = await volumeApi.ls({ formatToJSON: true })
|
|
21
29
|
|
|
22
30
|
if (newVolumeNames.every((v) => existingVolumes.includes(v))) {
|
|
23
|
-
return
|
|
31
|
+
return
|
|
24
32
|
}
|
|
25
33
|
|
|
26
|
-
const legacyDockerConfig = await getDockerConfig(
|
|
27
|
-
|
|
34
|
+
const legacyDockerConfig = await getDockerConfig(
|
|
35
|
+
ctx,
|
|
36
|
+
overridenConfiguration,
|
|
37
|
+
getBaseConfig(process.cwd(), legacyFolderName)
|
|
38
|
+
)
|
|
39
|
+
const legacyVolumeNames = Object.values(legacyDockerConfig.volumes)
|
|
40
|
+
.filter((v) => !v.opt)
|
|
41
|
+
.map(({ name }) => name)
|
|
28
42
|
|
|
29
43
|
if (
|
|
30
|
-
newVolumeNames.every(
|
|
31
|
-
|
|
44
|
+
newVolumeNames.every(
|
|
45
|
+
(name) => !existingVolumes.some((v) => v.Name === name)
|
|
46
|
+
) &&
|
|
47
|
+
legacyVolumeNames.every((name) =>
|
|
48
|
+
existingVolumes.some((v) => v.Name === name)
|
|
49
|
+
)
|
|
32
50
|
) {
|
|
33
51
|
ctx.config = await getConfigFromMagentoVersion(ctx, {
|
|
34
52
|
magentoVersion: ctx.magentoVersion,
|
|
35
53
|
projectPath: process.cwd(),
|
|
36
54
|
prefix: legacyFolderName
|
|
37
|
-
})
|
|
55
|
+
})
|
|
38
56
|
|
|
39
|
-
return task.newListr(
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
task
|
|
57
|
+
return task.newListr(
|
|
58
|
+
[
|
|
59
|
+
stopServices(),
|
|
60
|
+
{
|
|
61
|
+
title: 'Migrating data from legacy volumes to new ones',
|
|
62
|
+
task: async (subCtx, subTask) => {
|
|
63
|
+
task.title =
|
|
64
|
+
'Converting old volumes to new ones, this will take some time...'
|
|
45
65
|
|
|
46
|
-
|
|
47
|
-
|
|
66
|
+
for (const [
|
|
67
|
+
volumeName,
|
|
68
|
+
volumeConfig
|
|
69
|
+
] of Object.entries(newDockerConfig.volumes)) {
|
|
70
|
+
const legacyVolumeConfig =
|
|
71
|
+
legacyDockerConfig.volumes[volumeName]
|
|
48
72
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
73
|
+
subTask.output = `Creating volume ${volumeConfig.name}...`
|
|
74
|
+
await volumeApi.create(volumeConfig)
|
|
75
|
+
subTask.output = `Copying data from ${legacyVolumeConfig.name} to ${volumeConfig.name}...`
|
|
76
|
+
await execAsyncSpawn(
|
|
77
|
+
`docker run --rm -v ${legacyVolumeConfig.name}:/from:ro -v ${volumeConfig.name}:/to alpine ash -c "cd /from; cp -av . /to"`,
|
|
78
|
+
{
|
|
79
|
+
callback: (t) => {
|
|
80
|
+
task.output = t
|
|
81
|
+
}
|
|
56
82
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
83
|
+
)
|
|
84
|
+
}
|
|
60
85
|
|
|
61
|
-
|
|
86
|
+
subCtx.config = await getConfigFromMagentoVersion(
|
|
87
|
+
ctx.magentoVersion,
|
|
88
|
+
process.cwd()
|
|
89
|
+
)
|
|
62
90
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
91
|
+
const doDelete = await subTask.prompt({
|
|
92
|
+
type: 'Toggle',
|
|
93
|
+
message: `Good news! We successfully moved your data from legacy volumes ${legacyVolumeNames.join(
|
|
94
|
+
', '
|
|
95
|
+
)} to new ones!
|
|
66
96
|
But we have one last thing to do.
|
|
67
|
-
To free some space and avoid possible interference between docker volumes we strongly recommend you to delete legacy volumes ${legacyVolumeNames.join(
|
|
97
|
+
To free some space and avoid possible interference between docker volumes we strongly recommend you to delete legacy volumes ${legacyVolumeNames.join(
|
|
98
|
+
', '
|
|
99
|
+
)} now or when you are ready.
|
|
68
100
|
`,
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
101
|
+
disabled: 'Delete later myself',
|
|
102
|
+
enabled: 'Delete automatically now'
|
|
103
|
+
})
|
|
72
104
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
105
|
+
if (doDelete) {
|
|
106
|
+
await execAsyncSpawn(
|
|
107
|
+
`docker volume rm ${legacyVolumeNames.join(
|
|
108
|
+
' '
|
|
109
|
+
)}`
|
|
110
|
+
)
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
options: {
|
|
114
|
+
bottomBar: 10
|
|
77
115
|
}
|
|
78
|
-
},
|
|
79
|
-
options: {
|
|
80
|
-
bottomBar: 10
|
|
81
116
|
}
|
|
117
|
+
],
|
|
118
|
+
{
|
|
119
|
+
concurrent: false
|
|
82
120
|
}
|
|
83
|
-
|
|
84
|
-
concurrent: false
|
|
85
|
-
});
|
|
121
|
+
)
|
|
86
122
|
}
|
|
87
123
|
}
|
|
88
|
-
})
|
|
124
|
+
})
|
|
89
125
|
|
|
90
|
-
module.exports = convertLegacyVolumes
|
|
126
|
+
module.exports = convertLegacyVolumes
|
|
@@ -1,168 +1,192 @@
|
|
|
1
|
-
const path = require('path')
|
|
2
|
-
const fs = require('fs')
|
|
3
|
-
const logger = require('@scandipwa/scandipwa-dev-utils/logger')
|
|
4
|
-
const { volumeApi, createVolumes } = require('./volume')
|
|
5
|
-
const { execAsyncSpawn } = require('../../util/exec-async-command')
|
|
6
|
-
const { containerApi, stopContainers, pullImages } = require('./containers')
|
|
7
|
-
const { importDumpToDatabase, connectToDatabase } = require('../database')
|
|
8
|
-
const getProjectConfiguration = require('../../config/get-project-configuration')
|
|
9
|
-
const {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const {
|
|
14
|
-
const {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const {
|
|
21
|
-
const {
|
|
22
|
-
const
|
|
23
|
-
const {
|
|
1
|
+
const path = require('path')
|
|
2
|
+
const fs = require('fs')
|
|
3
|
+
const logger = require('@scandipwa/scandipwa-dev-utils/logger')
|
|
4
|
+
const { volumeApi, createVolumes } = require('./volume')
|
|
5
|
+
const { execAsyncSpawn } = require('../../util/exec-async-command')
|
|
6
|
+
const { containerApi, stopContainers, pullImages } = require('./containers')
|
|
7
|
+
const { importDumpToDatabase, connectToDatabase } = require('../database')
|
|
8
|
+
const getProjectConfiguration = require('../../config/get-project-configuration')
|
|
9
|
+
const {
|
|
10
|
+
getAvailablePorts,
|
|
11
|
+
getCachedPorts
|
|
12
|
+
} = require('../../config/get-port-config')
|
|
13
|
+
const { saveConfiguration } = require('../../config/save-config')
|
|
14
|
+
const {
|
|
15
|
+
buildProjectImage,
|
|
16
|
+
buildDebugProjectImage
|
|
17
|
+
} = require('./project-image-builder')
|
|
18
|
+
const checkPHPVersion = require('../requirements/php-version')
|
|
19
|
+
const { getComposerVersionTask } = require('../composer')
|
|
20
|
+
const { prepareFileSystem } = require('../file-system')
|
|
21
|
+
const { installMagentoProject } = require('../magento')
|
|
22
|
+
const enableMagentoComposerPlugins = require('../magento/enable-magento-composer-plugins')
|
|
23
|
+
const { startServices } = require('./index')
|
|
24
|
+
const dockerNetwork = require('./network')
|
|
25
|
+
const KnownError = require('../../errors/known-error')
|
|
26
|
+
const { createCacheFolder } = require('../cache')
|
|
27
|
+
const { getSystemConfigTask } = require('../../config/system-config')
|
|
28
|
+
const sleep = require('../../util/sleep')
|
|
29
|
+
const { setProjectConfigTask } = require('../project-config')
|
|
24
30
|
|
|
25
31
|
/**
|
|
26
|
-
* @
|
|
32
|
+
* @returns {import('listr2').ListrTask<import('../../../typings/context').ListrContext>}
|
|
27
33
|
*/
|
|
28
34
|
const convertMySQLDatabaseToMariaDB = () => ({
|
|
29
35
|
task: async (ctx, task) => {
|
|
30
|
-
const mysqlVolumeName = `${
|
|
31
|
-
const volumes = await volumeApi.ls({ formatToJSON: true })
|
|
36
|
+
const mysqlVolumeName = `${ctx.config.baseConfig.prefix}_mysql-data`
|
|
37
|
+
const volumes = await volumeApi.ls({ formatToJSON: true })
|
|
32
38
|
if (ctx.isArmMac) {
|
|
33
|
-
if (
|
|
34
|
-
(volume) => volume.Name === mysqlVolumeName
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
39
|
+
if (
|
|
40
|
+
volumes.some((volume) => volume.Name === mysqlVolumeName) &&
|
|
41
|
+
!volumes.some(
|
|
42
|
+
(volume) =>
|
|
43
|
+
volume.Name === ctx.config.docker.volumes.mariadb.name
|
|
44
|
+
)
|
|
38
45
|
) {
|
|
39
|
-
task.title = 'Converting MySQL database to MariaDB'
|
|
46
|
+
task.title = 'Converting MySQL database to MariaDB'
|
|
40
47
|
return task.newListr([
|
|
41
48
|
stopContainers(),
|
|
42
49
|
{
|
|
43
50
|
title: 'Converting MySQL volume to MariaDB',
|
|
44
51
|
task: async (subCtx, subTask) => {
|
|
45
|
-
subTask.output = `Creating volume ${subCtx.config.docker.volumes.mariadb.name}
|
|
46
|
-
await volumeApi.create(
|
|
47
|
-
|
|
52
|
+
subTask.output = `Creating volume ${subCtx.config.docker.volumes.mariadb.name}...`
|
|
53
|
+
await volumeApi.create(
|
|
54
|
+
subCtx.config.docker.volumes.mariadb
|
|
55
|
+
)
|
|
56
|
+
subTask.output = `Copying data from ${mysqlVolumeName} to ${subCtx.config.docker.volumes.mariadb.name}...`
|
|
48
57
|
await execAsyncSpawn(
|
|
49
|
-
|
|
50
|
-
|
|
58
|
+
`docker run --rm -v ${mysqlVolumeName}:/from:ro -v ${subCtx.config.docker.volumes.mariadb.name}:/to alpine ash -c "cd /from; cp -av . /to"`,
|
|
59
|
+
{
|
|
51
60
|
callback: (t) => {
|
|
52
|
-
subTask.output = t
|
|
61
|
+
subTask.output = t
|
|
53
62
|
}
|
|
54
63
|
}
|
|
55
|
-
)
|
|
56
|
-
subTask.output = 'Deleting old volume...'
|
|
57
|
-
await execAsyncSpawn(
|
|
64
|
+
)
|
|
65
|
+
subTask.output = 'Deleting old volume...'
|
|
66
|
+
await execAsyncSpawn(
|
|
67
|
+
`docker volume rm ${mysqlVolumeName}`
|
|
68
|
+
)
|
|
58
69
|
},
|
|
59
70
|
options: {
|
|
60
71
|
bottomBar: 10
|
|
61
72
|
}
|
|
62
73
|
}
|
|
63
|
-
])
|
|
74
|
+
])
|
|
64
75
|
}
|
|
65
76
|
|
|
66
|
-
return
|
|
77
|
+
return
|
|
67
78
|
}
|
|
68
79
|
|
|
69
|
-
if (
|
|
70
|
-
(volume) => volume.Name === mysqlVolumeName
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
80
|
+
if (
|
|
81
|
+
volumes.some((volume) => volume.Name === mysqlVolumeName) &&
|
|
82
|
+
!volumes.some(
|
|
83
|
+
(volume) =>
|
|
84
|
+
volume.Name === ctx.config.docker.volumes.mariadb.name
|
|
85
|
+
)
|
|
74
86
|
) {
|
|
75
|
-
task.title = 'Converting MySQL database to MariaDB'
|
|
87
|
+
task.title = 'Converting MySQL database to MariaDB'
|
|
76
88
|
const confirmConvert = await task.prompt({
|
|
77
89
|
type: 'Select',
|
|
78
90
|
message: `We see that you have old mysql-data volume in the project!
|
|
79
|
-
Since ${logger.style.code('magento-scripts@2.0.0')} ${logger.style.misc(
|
|
91
|
+
Since ${logger.style.code('magento-scripts@2.0.0')} ${logger.style.misc(
|
|
92
|
+
'MariaDB'
|
|
93
|
+
)} is used as database instead of MySQL.
|
|
80
94
|
|
|
81
95
|
To use MariaDB with data from MySQL we need to convert your database.
|
|
82
96
|
`,
|
|
83
97
|
choices: [
|
|
84
98
|
{
|
|
85
99
|
name: 'yes',
|
|
86
|
-
message:
|
|
100
|
+
message: "Okay, let's do that!"
|
|
87
101
|
},
|
|
88
102
|
{
|
|
89
103
|
name: 'no',
|
|
90
104
|
message: 'ABORT ABORT ABORT'
|
|
91
105
|
}
|
|
92
106
|
]
|
|
93
|
-
})
|
|
107
|
+
})
|
|
94
108
|
|
|
95
109
|
if (confirmConvert === 'yes') {
|
|
96
|
-
const pathToMySQLDumpFile = path.join(
|
|
97
|
-
|
|
98
|
-
|
|
110
|
+
const pathToMySQLDumpFile = path.join(
|
|
111
|
+
process.cwd(),
|
|
112
|
+
'mysql-database.sql'
|
|
113
|
+
)
|
|
114
|
+
const containerName = 'mysql-database'
|
|
115
|
+
task.output = 'Creating dump file from MySQL database...'
|
|
99
116
|
|
|
100
|
-
const existingContainers = await containerApi.ls({
|
|
117
|
+
const existingContainers = await containerApi.ls({
|
|
118
|
+
formatToJSON: true,
|
|
119
|
+
all: true
|
|
120
|
+
})
|
|
101
121
|
|
|
102
122
|
if (existingContainers.some((c) => c.Names === containerName)) {
|
|
103
|
-
await execAsyncSpawn(
|
|
104
|
-
|
|
123
|
+
await execAsyncSpawn(
|
|
124
|
+
`docker container stop ${containerName}`
|
|
125
|
+
)
|
|
126
|
+
await execAsyncSpawn(`docker container rm ${containerName}`)
|
|
105
127
|
}
|
|
106
128
|
|
|
107
|
-
task.output = 'Starting MySQL server...'
|
|
129
|
+
task.output = 'Starting MySQL server...'
|
|
108
130
|
|
|
109
|
-
await containerApi.run(
|
|
110
|
-
{
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
securityOptions: [
|
|
129
|
-
'seccomp=unconfined'
|
|
130
|
-
],
|
|
131
|
-
name: containerName,
|
|
132
|
-
image: `mysql:${ ctx.config.overridenConfiguration.configuration.mysql.version }`
|
|
133
|
-
}
|
|
134
|
-
);
|
|
131
|
+
await containerApi.run({
|
|
132
|
+
mounts: [`source=${mysqlVolumeName},target=/var/lib/mysql`],
|
|
133
|
+
env: {
|
|
134
|
+
MYSQL_PORT: 3306,
|
|
135
|
+
MYSQL_ROOT_PASSWORD: 'scandipwa',
|
|
136
|
+
MYSQL_USER: 'magento',
|
|
137
|
+
MYSQL_PASSWORD: 'magento',
|
|
138
|
+
MYSQL_DATABASE: 'magento'
|
|
139
|
+
},
|
|
140
|
+
command: [
|
|
141
|
+
'--log_bin_trust_function_creators=1',
|
|
142
|
+
'--default-authentication-plugin=mysql_native_password',
|
|
143
|
+
'--max_allowed_packet=1GB',
|
|
144
|
+
'--bind-address=0.0.0.0'
|
|
145
|
+
].join(' '),
|
|
146
|
+
securityOptions: ['seccomp=unconfined'],
|
|
147
|
+
name: containerName,
|
|
148
|
+
image: `mysql:${ctx.config.overridenConfiguration.configuration.mysql.version}`
|
|
149
|
+
})
|
|
135
150
|
|
|
136
|
-
task.output = 'Waiting for MySQL to initialize...'
|
|
151
|
+
task.output = 'Waiting for MySQL to initialize...'
|
|
137
152
|
|
|
138
|
-
let mysqlReadyForConnections = false
|
|
153
|
+
let mysqlReadyForConnections = false
|
|
139
154
|
|
|
140
155
|
while (!mysqlReadyForConnections) {
|
|
141
|
-
const mysqlOutput = await execAsyncSpawn(
|
|
156
|
+
const mysqlOutput = await execAsyncSpawn(
|
|
157
|
+
`docker logs ${containerName}`
|
|
158
|
+
)
|
|
142
159
|
if (mysqlOutput.includes('ready for connections')) {
|
|
143
|
-
mysqlReadyForConnections = true
|
|
144
|
-
task.output = 'MySQL is ready!'
|
|
145
|
-
break
|
|
146
|
-
} else if (
|
|
160
|
+
mysqlReadyForConnections = true
|
|
161
|
+
task.output = 'MySQL is ready!'
|
|
162
|
+
break
|
|
163
|
+
} else if (
|
|
164
|
+
mysqlOutput.includes('Initializing database files')
|
|
165
|
+
) {
|
|
147
166
|
task.output = `MySQL is initializing database files!
|
|
148
|
-
Please wait, this will take some time and do not restart the MySQL container until initialization is finished
|
|
167
|
+
Please wait, this will take some time and do not restart the MySQL container until initialization is finished!`
|
|
149
168
|
|
|
150
|
-
let mysqlFinishedInitialization = false
|
|
169
|
+
let mysqlFinishedInitialization = false
|
|
151
170
|
while (!mysqlFinishedInitialization) {
|
|
152
|
-
const mysqlOutput = await execAsyncSpawn(
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
171
|
+
const mysqlOutput = await execAsyncSpawn(
|
|
172
|
+
`docker logs ${containerName}`
|
|
173
|
+
)
|
|
174
|
+
if (
|
|
175
|
+
mysqlOutput.includes('init process done.') &&
|
|
176
|
+
!mysqlFinishedInitialization
|
|
177
|
+
) {
|
|
178
|
+
mysqlFinishedInitialization = true
|
|
179
|
+
task.output = 'MySQL is initialized!'
|
|
180
|
+
break
|
|
157
181
|
}
|
|
158
|
-
await sleep(2000)
|
|
182
|
+
await sleep(2000)
|
|
159
183
|
}
|
|
160
184
|
}
|
|
161
185
|
|
|
162
|
-
await sleep(2000)
|
|
186
|
+
await sleep(2000)
|
|
163
187
|
}
|
|
164
188
|
|
|
165
|
-
task.output = 'Dumping MySQL database to dump file...'
|
|
189
|
+
task.output = 'Dumping MySQL database to dump file...'
|
|
166
190
|
|
|
167
191
|
await containerApi.exec(
|
|
168
192
|
[
|
|
@@ -170,33 +194,31 @@ Please wait, this will take some time and do not restart the MySQL container unt
|
|
|
170
194
|
'--user=root',
|
|
171
195
|
'--password=scandipwa',
|
|
172
196
|
'magento',
|
|
173
|
-
`--result-file=${
|
|
197
|
+
`--result-file=${path.parse(pathToMySQLDumpFile).base}`
|
|
174
198
|
].join(' '),
|
|
175
199
|
containerName,
|
|
176
200
|
{},
|
|
177
201
|
{
|
|
178
202
|
callback: (t) => {
|
|
179
|
-
task.output = t
|
|
203
|
+
task.output = t
|
|
180
204
|
}
|
|
181
205
|
}
|
|
182
|
-
)
|
|
206
|
+
)
|
|
183
207
|
|
|
184
|
-
task.output = 'Copying dump file from container to system...'
|
|
208
|
+
task.output = 'Copying dump file from container to system...'
|
|
185
209
|
|
|
186
210
|
await execAsyncSpawn(
|
|
187
|
-
`docker cp ${containerName}:/${
|
|
188
|
-
|
|
211
|
+
`docker cp ${containerName}:/${
|
|
212
|
+
path.parse(pathToMySQLDumpFile).base
|
|
213
|
+
} ${pathToMySQLDumpFile}`
|
|
214
|
+
)
|
|
189
215
|
|
|
190
|
-
task.output = 'Removing migration container...'
|
|
216
|
+
task.output = 'Removing migration container...'
|
|
191
217
|
|
|
192
|
-
await execAsyncSpawn(
|
|
193
|
-
|
|
194
|
-
);
|
|
195
|
-
await execAsyncSpawn(
|
|
196
|
-
`docker container rm ${containerName}`
|
|
197
|
-
);
|
|
218
|
+
await execAsyncSpawn(`docker container stop ${containerName}`)
|
|
219
|
+
await execAsyncSpawn(`docker container rm ${containerName}`)
|
|
198
220
|
|
|
199
|
-
ctx.importDb = pathToMySQLDumpFile
|
|
221
|
+
ctx.importDb = pathToMySQLDumpFile
|
|
200
222
|
|
|
201
223
|
return task.newListr([
|
|
202
224
|
createCacheFolder(),
|
|
@@ -212,12 +234,13 @@ Please wait, this will take some time and do not restart the MySQL container unt
|
|
|
212
234
|
dockerNetwork.tasks.createNetwork(),
|
|
213
235
|
createVolumes(),
|
|
214
236
|
{
|
|
215
|
-
task: (ctx, task) =>
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
237
|
+
task: (ctx, task) =>
|
|
238
|
+
task.newListr(
|
|
239
|
+
[buildProjectImage(), buildDebugProjectImage()],
|
|
240
|
+
{
|
|
241
|
+
concurrent: true
|
|
242
|
+
}
|
|
243
|
+
)
|
|
221
244
|
},
|
|
222
245
|
checkPHPVersion(),
|
|
223
246
|
getComposerVersionTask(),
|
|
@@ -229,56 +252,64 @@ Please wait, this will take some time and do not restart the MySQL container unt
|
|
|
229
252
|
importDumpToDatabase(),
|
|
230
253
|
{
|
|
231
254
|
task: async (subCtx, subTask) => {
|
|
232
|
-
const confirmDeleteOldVolume = await subTask.prompt(
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
255
|
+
const confirmDeleteOldVolume = await subTask.prompt(
|
|
256
|
+
{
|
|
257
|
+
type: 'Select',
|
|
258
|
+
message:
|
|
259
|
+
'Okay, looks like conversion went well, do you want to delete old mysql-data volume?',
|
|
260
|
+
choices: [
|
|
261
|
+
{
|
|
262
|
+
name: 'yes',
|
|
263
|
+
message: 'Sure'
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
name: 'no',
|
|
267
|
+
message: 'No, I want to keep it'
|
|
268
|
+
}
|
|
269
|
+
]
|
|
270
|
+
}
|
|
271
|
+
)
|
|
246
272
|
|
|
247
273
|
if (confirmDeleteOldVolume === 'yes') {
|
|
248
|
-
await execAsyncSpawn(
|
|
274
|
+
await execAsyncSpawn(
|
|
275
|
+
`docker volume rm ${mysqlVolumeName}`
|
|
276
|
+
)
|
|
249
277
|
|
|
250
278
|
const confirmDeleteDump = await subTask.prompt({
|
|
251
279
|
type: 'Select',
|
|
252
280
|
message: `Last question for today.
|
|
253
|
-
Do you want to keep database dump created during conversion process? (${logger.style.file(
|
|
281
|
+
Do you want to keep database dump created during conversion process? (${logger.style.file(
|
|
282
|
+
pathToMySQLDumpFile
|
|
283
|
+
)})`,
|
|
254
284
|
choices: [
|
|
255
285
|
{
|
|
256
286
|
name: 'yes',
|
|
257
|
-
message:
|
|
287
|
+
message: "I don't need it, thanks"
|
|
258
288
|
},
|
|
259
289
|
{
|
|
260
290
|
name: 'no',
|
|
261
|
-
message:
|
|
291
|
+
message:
|
|
292
|
+
'I would like to keep it, thanks'
|
|
262
293
|
}
|
|
263
294
|
]
|
|
264
|
-
})
|
|
295
|
+
})
|
|
265
296
|
|
|
266
297
|
if (confirmDeleteDump === 'yes') {
|
|
267
|
-
await fs.promises.rm(pathToMySQLDumpFile)
|
|
298
|
+
await fs.promises.rm(pathToMySQLDumpFile)
|
|
268
299
|
}
|
|
269
300
|
}
|
|
270
301
|
}
|
|
271
302
|
}
|
|
272
|
-
])
|
|
303
|
+
])
|
|
273
304
|
}
|
|
274
|
-
throw new KnownError('ABORTING')
|
|
305
|
+
throw new KnownError('ABORTING')
|
|
275
306
|
}
|
|
276
307
|
|
|
277
|
-
task.skip()
|
|
308
|
+
task.skip()
|
|
278
309
|
},
|
|
279
310
|
options: {
|
|
280
311
|
bottomBar: 10
|
|
281
312
|
}
|
|
282
|
-
})
|
|
313
|
+
})
|
|
283
314
|
|
|
284
|
-
module.exports = convertMySQLDatabaseToMariaDB
|
|
315
|
+
module.exports = convertMySQLDatabaseToMariaDB
|