Skip to content

Instantly share code, notes, and snippets.

@memuller
Created September 22, 2014 22:59
Show Gist options
  • Save memuller/db3b11f855b9360df856 to your computer and use it in GitHub Desktop.
Save memuller/db3b11f855b9360df856 to your computer and use it in GitHub Desktop.
Wordpress - Migração de Endereço
-- Atualiza o endereço de uma instalação do Wordpress.
-- Útil para migrar um site do Wordpress usando dumps/exportações de SQL ao invés das ferramentas do próprio WP.
-- Não funciona em instalações com múltiplos sites (WP Network).
-- 1. Exporte o banco de dados do seu site em Wordpress - por exemplo, usando o "export" do phpmyadmin.
-- 2. Carregue-o no banco de dados de destino - por exemplo, usando o "import" do phpmyadmin.
-- 3. Na janela "query" do phpmyadmin (ou similar), cole o código completo deste arquivo.
-- 4. Note um endereço na última linha, entre aspas. Altere-o para o endereço do site novo.
-- - o endereço deve começar 'http://' ou similar.
-- - o endereço NÃO deve ter uma barra no final.
-- 5. Execute o código.
drop procedure if exists wp_update_home;
DELIMITER ;;
CREATE PROCEDURE wp_update_home(in new_home varchar(255), in wp_prefix varchar(255) )
BEGIN
declare wp_options_table varchar(255) ;
declare wp_posts_table varchar(255);
declare wp_postmeta_table varchar(255);
IF wp_prefix IS NULL THEN
SET wp_prefix = 'wp' ;
END IF;
SET wp_options_table = concat_ws('_', wp_prefix, 'options');
SET wp_posts_table = concat_ws('_', wp_prefix, 'posts');
SET wp_postmeta_table = concat_ws('_', wp_prefix, 'postmeta');
SET @q = CONCAT("SELECT option_value FROM ", wp_options_table, " WHERE option_name = 'home' LIMIT 1 INTO @old_home;");
PREPARE statement FROM @q;
EXECUTE statement;
SET @q = CONCAT('UPDATE ', wp_options_table, " SET option_value = REPLACE(option_value, '", @old_home, "', '", new_home, "');");
PREPARE statement FROM @q;
EXECUTE statement;
SET @q = CONCAT('UPDATE ', wp_posts_table, " SET post_content = REPLACE(post_content, '", @old_home, "', '", new_home, "');");
PREPARE statement FROM @q;
EXECUTE statement;
SET @q = CONCAT('UPDATE ', wp_posts_table, " SET guid = REPLACE(guid, '", @old_home, "', '", new_home, "');");
PREPARE statement FROM @q;
EXECUTE statement;
SET @q = CONCAT('UPDATE ', wp_postmeta_table, " SET meta_value = REPLACE(meta_value, '", @old_home, "', '", new_home, "');");
PREPARE statement FROM @q;
EXECUTE statement;
END;;
DELIMITER ;
CALL wp_update_home('http://grcruzeiro.com', NULL);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment