mirror of
https://github.com/frappe/frappe_docker.git
synced 2026-06-17 13:55:08 +00:00
feat(easy-docker): add migrate site now action
This commit is contained in:
parent
db93991774
commit
502caaefea
2 changed files with 135 additions and 0 deletions
|
|
@ -1,5 +1,64 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
migrate_configured_stack_site() {
|
||||
local stack_dir="${1}"
|
||||
local site_name=""
|
||||
local current_site_apps_lines=""
|
||||
local created_at=""
|
||||
local updated_at=""
|
||||
local backend_status=0
|
||||
|
||||
reset_easy_docker_site_error_state
|
||||
|
||||
if ! stack_supports_single_site_management "${stack_dir}"; then
|
||||
return 52
|
||||
fi
|
||||
|
||||
site_name="$(get_stack_site_name "${stack_dir}" || true)"
|
||||
if ! is_safe_stack_site_cleanup_name "${site_name}"; then
|
||||
return 53
|
||||
fi
|
||||
|
||||
if stack_backend_service_is_running "${stack_dir}"; then
|
||||
:
|
||||
else
|
||||
backend_status=$?
|
||||
case "${backend_status}" in
|
||||
54)
|
||||
return 54
|
||||
;;
|
||||
52)
|
||||
return 52
|
||||
;;
|
||||
*)
|
||||
return 51
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if ! run_stack_site_migrate "${stack_dir}" "${site_name}"; then
|
||||
return $?
|
||||
fi
|
||||
|
||||
current_site_apps_lines="$(get_stack_site_apps_installed_lines "${stack_dir}" || true)"
|
||||
created_at="$(get_stack_site_created_at "${stack_dir}" || true)"
|
||||
updated_at="$(get_current_utc_timestamp)"
|
||||
if ! persist_stack_site_metadata \
|
||||
"${stack_dir}" \
|
||||
"single-site" \
|
||||
"${site_name}" \
|
||||
"${current_site_apps_lines}" \
|
||||
"migrate-site" \
|
||||
"" \
|
||||
"" \
|
||||
"${created_at}" \
|
||||
"${updated_at}"; then
|
||||
return 65
|
||||
fi
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
handle_manage_stack_site_flow() {
|
||||
local stack_name="${1}"
|
||||
local stack_dir="${2}"
|
||||
|
|
@ -15,6 +74,7 @@ handle_manage_stack_site_flow() {
|
|||
local existing_site_last_backup_at=""
|
||||
local existing_site_details_action=""
|
||||
local existing_site_apps_action=""
|
||||
local existing_site_migrate_confirm=""
|
||||
local existing_site_app_lines=""
|
||||
local existing_site_app_selection=""
|
||||
local existing_site_app_confirmation=""
|
||||
|
|
@ -346,6 +406,59 @@ handle_manage_stack_site_flow() {
|
|||
done
|
||||
continue
|
||||
;;
|
||||
"Migrate site now")
|
||||
existing_site_migrate_confirm="$(
|
||||
show_manage_stack_site_migrate_confirmation \
|
||||
"${stack_name}" \
|
||||
"${stack_dir}" \
|
||||
"${existing_site_name}" || true
|
||||
)"
|
||||
case "${existing_site_migrate_confirm}" in
|
||||
"Yes")
|
||||
show_warning_message "Migrating site for stack: ${stack_name}"
|
||||
if migrate_configured_stack_site "${stack_dir}"; then
|
||||
show_warning_and_wait "Site migrated successfully: ${existing_site_name}" 3
|
||||
continue
|
||||
fi
|
||||
|
||||
site_flow_status=$?
|
||||
case "${site_flow_status}" in
|
||||
51)
|
||||
show_warning_and_wait "Cannot migrate site: backend service is not running yet. Start the stack first." 4
|
||||
;;
|
||||
52)
|
||||
show_warning_and_wait "Cannot migrate site for this topology yet. Only single-host stacks are supported." 4
|
||||
;;
|
||||
53)
|
||||
show_warning_and_wait "Cannot migrate site because the configured site name was empty or unsafe for cleanup operations." 4
|
||||
;;
|
||||
54)
|
||||
show_warning_and_wait "Cannot migrate site because stack metadata, env, or compose inputs are incomplete." 4
|
||||
;;
|
||||
64)
|
||||
show_warning_and_wait "Site migration failed. ${EASY_DOCKER_SITE_ERROR_DETAIL:-Check the output above.} ${EASY_DOCKER_SITE_ERROR_LOG_PATH:+See ${stack_dir}/${EASY_DOCKER_SITE_ERROR_LOG_PATH}}" 6
|
||||
;;
|
||||
65)
|
||||
show_warning_and_wait "The migrate command finished, but the site metadata could not be written to metadata.json." 5
|
||||
;;
|
||||
*)
|
||||
show_warning_and_wait "Site migration failed (${site_flow_status})." 4
|
||||
;;
|
||||
esac
|
||||
continue
|
||||
;;
|
||||
"No" | "")
|
||||
continue
|
||||
;;
|
||||
"Exit and close easy-docker")
|
||||
return "${FLOW_EXIT_APP}"
|
||||
;;
|
||||
*)
|
||||
show_warning_and_wait "Unknown site migrate confirmation action: ${existing_site_migrate_confirm}" 2
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
"Backup site now")
|
||||
show_warning_message "Creating backup for site: ${existing_site_name}"
|
||||
if backup_configured_stack_site "${stack_dir}"; then
|
||||
|
|
|
|||
|
|
@ -212,6 +212,7 @@ show_manage_stack_site_details() {
|
|||
--cursor.foreground 63 \
|
||||
--selected.foreground 45 \
|
||||
"Manage apps on this site" \
|
||||
"Migrate site now" \
|
||||
"Backup site now" \
|
||||
"Delete site" \
|
||||
"Back" \
|
||||
|
|
@ -300,6 +301,27 @@ show_manage_stack_site_app_uninstall_confirmation() {
|
|||
"Exit and close easy-docker"
|
||||
}
|
||||
|
||||
show_manage_stack_site_migrate_confirmation() {
|
||||
local stack_name="${1}"
|
||||
local stack_dir="${2}"
|
||||
local site_name="${3}"
|
||||
local status_text=""
|
||||
|
||||
render_main_screen 1 >&2
|
||||
|
||||
status_text="$(printf "Migrate site\n\nStack: %s\nDirectory: %s\nSite: %s\n\nRun bench migrate for this existing site now?" "${stack_name}" "${stack_dir}" "${site_name}")"
|
||||
render_box_message "${status_text}" "0 2" >&2
|
||||
|
||||
gum choose \
|
||||
--height 8 \
|
||||
--header "Confirm migrate site" \
|
||||
--cursor.foreground 63 \
|
||||
--selected.foreground 45 \
|
||||
"Yes" \
|
||||
"No" \
|
||||
"Exit and close easy-docker"
|
||||
}
|
||||
|
||||
show_manage_stack_site_delete_confirmation() {
|
||||
local stack_name="${1}"
|
||||
local stack_dir="${2}"
|
||||
|
|
|
|||
Loading…
Reference in a new issue