From 9022f732975ba5d920812d61ac8d874fb57f200f Mon Sep 17 00:00:00 2001 From: Ueda Naoaki Date: Sun, 7 May 2023 18:55:10 +0900 Subject: Use wp-cli to replace texts in the database --- .gitignore | 1 + Makefile | 20 ++++++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index cd19962..fe89c27 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ containers do-deploy deploy-with-skipping-confirm +db-replaced diff --git a/Makefile b/Makefile index 2436254..2e8b85a 100644 --- a/Makefile +++ b/Makefile @@ -94,12 +94,11 @@ deploy: guard-sync s|$(REMOTE_DOCROOT_PATH)|$(LOCAL_DOCROOT)|g; \ " $< > $@ -%.replaced.sql.imported: %.replaced.sql | wait-db-start +%.sql.imported: %.sql | wait-db-start cat "$^" | $(DOCKER_COMPOSE) exec -T -- db sh -c 'mysql --user $$MYSQL_USER -p$$MYSQL_PASSWORD $$MYSQL_DATABASE' touch $@ -replaced-sql-files = $(addsuffix .replaced.sql,$(basename $(filter-out %.replaced.sql,$(wildcard $(SQL_DIR)/*.sql)))) -imported-sql-files = $(addsuffix .imported,$(replaced-sql-files)) +imported-sql-files = $(addsuffix .imported,$(wildcard $(SQL_DIR)/*.sql)) .PHONY: import-sql import-sql: $(imported-sql-files) @@ -123,6 +122,19 @@ init-conf: .db.env s/define\\(\\s*'DB_PASSWORD',\\s*'[^']*'\\s*\\)/define('DB_PASSWORD', '$(MYSQL_PASSWORD)')/; \ " $(WP_CONF) +ifneq ($(and $(SITE_URL_PATTERN),$(LOCAL_URL),$(REMOTE_DOCROOT_PATH),$(LOCAL_DOCROOT)),) +db-replaced: import-sql + $(DOCKER_COMPOSE) run --rm -- cli wp search-replace '$(SITE_URL_PATTERN)' '$(LOCAL_URL)' + $(DOCKER_COMPOSE) run --rm -- cli wp search-replace '$(REMOTE_DOCROOT_PATH)' '$(LOCAL_DOCROOT)' + touch $@ +else +db-replaced: + $(error You must set variables all of SITE_URL_PATTERN, LOCAL_URL, REMOTE_DOCROOT_PATH, LOCAL_DOCROOT) +endif + +.PHONY: db-import +db-import: db-replaced + .PHONY: dump-remote-db dump-remote-db: WP_CONF = $(shell $(SSH) $(SSH_REMOTE_HOST) -- find $(REMOTE_DOCROOT_PATH) -type f -name $(WP_CONFIG_FILENAME) | head -n 1) dump-remote-db: get-val = $(shell $(SSH) $(SSH_REMOTE_HOST) -- 'perl -nle "/\\(\\s*'"'"'$1'"'"'\\s*,\\s*'"'"'(.+)'"'"'\\s*\\)/ and print \$$1" $(WP_CONF)') @@ -137,7 +149,7 @@ dump-remote-db: .PHONY: clean-imported clean-imported: - rm -f $(SQL_DIR)/*.imported + rm -f $(SQL_DIR)/*.imported db-replaced .PHONY: purge-db purge-db: -- cgit v1.2.3-54-g00ecf