Guía de actualización manual de SMF 1.1.11 a SMF 2.0.7

Guía de actualización manual de SMF 1.1.11 a SMF 2.0.7

Fecha: 24-Mar-2014 | Autor: .
Guardado en: Aplicaciones Prefabricadas

Hoy quiero publicar un tutorial de cómo actualizar SMF a la última versión de forma manual, para esos casos en que falla la actualización automática (upgrade.php), algo común cuando son muchas las versiones de diferencia. Al principio no parecía complejo, pero luego hasta no acabé de entender exactamente como funcionaba y guardaba los datos el sistema de foros se hizo complejo, es por eso que decidí compartirlo para salvar de varios dolores de cabeza a los que vayan a intentarlo y se encuentren en la misma situación:

Pasos para actualizar manualmente SMF:

  1. Genera un respaldo completo de lo que tienes ahora (archivos, bbdd, etc).
  2. Instala de cero (en otro o el mismo directorio) un SMF 2.0.7 (o la correspondiente última versión)
  3. Re importa manualmente las bases de datos viejas sobre las del SMF 2.0.7 (se desarrolla en detalle debajo).
  4. En Administración > Mantenimiento del Foro, ejecuta las opciones de vaciado de cache, logs y recuento de totales y estadísticas.
  5. Prueba que todo funcione bien.
  6. En caso de haberlo hecho en otro directorio, puedes moverlo al directorio anterior (te sugiero la guía para cambiar el directorio de un foro SMF).

 


¿Por qué este anuncio?

Re importación manual de las Bases de Datos SMF

En sí no tiene demasiada ciencia, simplemente debes conectarte a la BBDD MySQL y ejecutar las siguientes consultas SQL, asegurándote de que devuelvan con éxito. En los casos de las tablas que ya contengan algún registro te recomiendo vaciarlas previo a ejecutar las distintas consultas. En todos los casos debes cambiar nueva_bbdd por el nombre de la base de datos del SMF 2.0.7, y antigua_bbdd por la base de datos original de tu anterior foro.

# smf_categories
INSERT INTO `nueva_bbdd`.`smf_categories` (id_cat, cat_order, name, can_collapse)
SELECT ID_CAT, catOrder, name, canCollapse FROM `antigua_bbdd`.`smf_categories`

# smf_boards
INSERT INTO `nueva_bbdd`.`smf_boards` (id_board, id_cat, child_level, id_parent, board_order, id_last_msg, id_msg_updated, member_groups, id_profile, name, description, num_topics, num_posts, count_posts, id_theme, override_theme, unapproved_posts, unapproved_topics, redirect)
SELECT ID_BOARD, ID_CAT, childLevel, ID_PARENT, boardOrder, ID_LAST_MSG, ID_MSG_UPDATED, memberGroups, 1, name, description, numTopics, numPosts, countPosts, ID_THEME, override_theme, 0, 0, '' FROM `antigua_bbdd`.`smf_boards`

# smf_board_permissions
INSERT INTO `nueva_bbdd`.`smf_board_permissions` (id_group, id_profile, permission, add_deny)
SELECT ID_GROUP, ID_BOARD, permission, addDeny FROM `antigua_bbdd`.`smf_board_permissions`

# smf_attachments
INSERT INTO `nueva_bbdd`.`smf_attachments` (id_attach, id_thumb, id_msg, id_member, id_folder, attachment_type, filename, file_hash, fileext, size, downloads, width, height, mime_type, approved)
SELECT ID_ATTACH, ID_THUMB, ID_MSG, ID_MEMBER, 0, attachmentType, filename, file_hash, "png", size, downloads, width, height, "image/png", 1 FROM `antigua_bbdd`.`smf_attachments`

# smf_membergroups
INSERT INTO `nueva_bbdd`.`smf_membergroups` (id_group, group_name, description, online_color, min_posts, max_messages, stars, group_type, hidden, id_parent)
SELECT ID_GROUP, groupName, '', onlineColor, minPosts, maxMessages, stars, 0, 0, -2 FROM `antigua_bbdd`.`smf_membergroups`

# smf_members
INSERT INTO `nueva_bbdd`.`smf_members` (member_name, date_registered, posts, id_group, lngfile, last_login, real_name, instant_messages, unread_messages, new_pm, buddy_list, pm_ignore_list, pm_prefs, mod_prefs, message_labels, passwd, openid_uri, email_address, personal_text, gender, birthdate, website_title, website_url, location, icq, aim, yim, msn, hide_email, show_online, time_format, signature, time_offset, avatar, pm_email_notify, karma_bad, karma_good, usertitle, notify_announcements, notify_regularity, notify_send_body, notify_types, member_ip, member_ip2, secret_question, secret_answer, id_theme, is_activated, validation_code, id_msg_last_visit, additional_groups, smiley_set, id_post_group, total_time_logged_in, password_salt, ignore_boards, warning, passwd_flood, pm_receive_from, id_member)
SELECT memberName, dateRegistered, posts, ID_GROUP, lngfile, lastLogin, realName, instantMessages, unreadMessages, 0, buddy_list, pm_ignore_list, 0, '', messageLabels, passwd, '', emailAddress, personalText, gender, birthdate, websiteTitle, websiteUrl, location, ICQ, AIM, YIM, MSN, hideEmail, showOnline, timeFormat, signature, timeOffset, avatar, pm_email_notify, karmaBad, karmaGood, usertitle, notifyAnnouncements, notifyOnce, notifySendBody, notifyTypes, memberIP, memberIP2, secretQuestion, secretAnswer, ID_THEME, is_activated, validation_code, ID_MSG_LAST_VISIT, additionalGroups, smileySet, ID_POST_GROUP, totalTimeLoggedIn, passwordSalt, '', 0, '', 1, ID_MEMBER FROM `antigua_bbdd`.`smf_members`

# smf_topics
INSERT INTO `nueva_bbdd`.`smf_topics` (is_sticky, id_board, id_first_msg, id_last_msg, id_member_started, id_member_updated, id_poll, id_previous_board, id_previous_topic, num_replies, num_views, locked, unapproved_posts, approved, id_topic)
SELECT isSticky, ID_BOARD, ID_FIRST_MSG, ID_LAST_MSG, ID_MEMBER_STARTED, ID_MEMBER_UPDATED, ID_POLL, 0, 0, numReplies, numViews, 0, 0, 1, ID_TOPIC FROM `antigua_bbdd`.`smf_topics`

# smf_messages
INSERT INTO `nueva_bbdd`.`smf_messages` (id_topic, id_board, poster_time, id_member, id_msg_modified, subject, poster_name, poster_email, poster_ip, id_msg, smileys_enabled, modified_time, modified_name, body, icon, approved)
SELECT ID_TOPIC, ID_BOARD, posterTime, ID_MEMBER, ID_MSG_MODIFIED, subject, posterName, posterEmail, posterIP, ID_MSG, smileysEnabled, modifiedTime, modifiedName, body, icon, 1 FROM `antigua_bbdd`.`smf_messages`

# smf_personal_messages
INSERT INTO `enremoli_smf2014`.`smf_personal_messages` (id_pm, id_pm_head, id_member_from, delete_by_sender, from_name, msgtime, subject, body)
SELECT ID_PM, '', ID_MEMBER_FROM, deleteBySender, fromName, msgtime, subject, body FROM `enremoli_forum`.`smf_personal_messages`

# smf_pm_recipients
INSERT INTO `enremoli_smf2014`.`smf_pm_recipients` (id_pm, id_member, labels, bcc, is_read, is_new, deleted)
SELECT ID_PM, ID_MEMBER, labels, bcc, is_read, 0, deleted FROM `enremoli_forum`.`smf_pm_recipients`

# smf_polls
INSERT INTO `enremoli_smf2014`.`smf_polls` (id_poll, question, voting_locked, max_votes, expire_time, hide_results, change_vote, guest_vote, num_guest_voters, reset_poll, id_member, poster_name)
SELECT ID_POLL, question, votingLocked, maxVotes, expireTime, hideResults, changeVote, 0, 0, 0, ID_MEMBER, posterName FROM `enremoli_forum`.`smf_polls`

# smf_poll_choices
INSERT INTO `enremoli_smf2014`.`smf_poll_choices` (id_poll, id_choice, label, votes)
SELECT ID_POLL, ID_CHOICE, label, votes FROM `enremoli_forum`.`smf_poll_choices`

#  smf_log_polls
INSERT INTO `nueva_bbdd`.`smf_log_polls` (id_poll, id_member, id_choice)
SELECT ID_POLL, ID_MEMBER, ID_CHOICE FROM `antigua_bbdd`.`smf_log_polls`

Por si te resultara más cómodo aquí puedes descargar un archivo de texto con todas las consultas SQL.


Si te gustó, comparte:
Y si fue de ayuda, puedes comprarme un café:
...ó la cena si quieres! ;)

Etiquetado como: , , , , , ,


Gravatar

Marcelo


Desarrollador web, trabajando desde Montevideo, Uruguay para todo el mundo. Me especializo en Diseño web, Maquetación HTML5 & CSS3, jQuery y Programación PHP & MySQL, e intento aprender un poco más cada día.

1 comentario, anímate y deja otro tú!

  1. Hola, muchas gracias por la guía, me sirvió mucho para aprender como hacer la actualización manual, muy bueno el blog, saludos

Deja tu opinión