Error importing from vanilla: invalid byte sequence in UTF-8

A menos que el archivo sea enorme, es bastante sencillo convertirlo a UTF-8 usando el Bloc de notas de Windows, si todavía lo tienes.

Creo que Vanilla Porter te da un archivo en formato .txt.gz. Necesitarás extraer el archivo de ese formato comprimido. Una vez que lo tengas guardado como un archivo .txt, puedes convertirlo.

  1. Abre el archivo .txt en el Bloc de notas.
  2. Ve a Archivo > Guardar como y selecciona UTF-8 como la opción de codificación.
  3. Haz clic en Guardar.

Si ya no tienes el Bloc de notas, o si el archivo es demasiado grande para el Bloc de notas, como mencionó @pfaffman, puedes buscar en Google “convertir txt a UTF-8” para encontrar algunas instrucciones que funcionarán con las máquinas y el software que tengas disponibles.

4 Me gusta

Okay, esto funcionó. Pero ahora estoy recibiendo este error:

script/import_scripts/vanilla.rb:98:in `import_users': undefined method `[]' for nil:NilClass (NoMethodError)

admin_role_id = @roles.select { |r| r[:name] == "Administrator" }.first[:role_id]
                                                                       ^^^^^^^^^^

El primer usuario es Admin en la base de datos.

Este es exactamente el error que estaba recibiendo antes de darme cuenta de que necesitaba elegir Vanilla 2 en el menú desplegable Tipo de foro de origen. Al dejarlo con Vanilla 1 seleccionado, mi archivo de exportación tenía tablas de datos vacías. Si seleccionaste Vanilla 2, me temo que no tengo mucho más que pueda ofrecer desde mi limitada experiencia con una migración de Vanilla. Quizás alguien más tenga algunas ideas.

¿Qué versión de Vanilla está ejecutando tu foro actual?

5 Me gusta

Vanilla Higher Logic es la versión actual. Me actualicé a esta versión recientemente. Tengo una copia de seguridad de mi foro Vanilla v2.6. Intenté importar desde la base de datos antigua pero sigo teniendo el mismo problema.

¿Puedes confirmar la entrada UserRole para Admin?

@ddeveloper, creo que la respuesta es 16, ¡pero no estoy seguro de lo que estás preguntando!
He agregado algunos datos de ejemplo de mi archivo de exportación a continuación, en caso de que te sea útil ver las estructuras de las tablas.

Datos de exportación

Esto es lo que enumera el archivo de exportación para la tabla UserRole, solo para el usuario System y para mí (usuario 2):

Tabla: UserRole
UserID:int,RoleID:int
"1","16"
"2","2"
"2","8"
"2","16"
"2","32"
"2","33"

Esto es lo que enumera mi archivo de exportación para la tabla Role:
Tabla: Role

RoleID:int,Name:varchar(100),Description:varchar(500),Sort:int,Deletable:tinyint,CanSession:tinyint,PersonalInfo:tinyint
"2","Guest","Los invitados solo pueden ver contenido. Cualquiera que navegue por el sitio y no haya iniciado sesión se considera un \"Invitado\".","2","0","0","0"
"3","Unconfirmed","Los usuarios deben confirmar sus correos electrónicos antes de convertirse en miembros plenos. Se les asigna a este rol.","3","0","1","0"
"4","Applicant","Usuarios que han solicitado membresía, pero aún no han sido aceptados. Tienen los mismos permisos que los invitados.","4","0","1","0"
"8","Member","Los miembros pueden participar en discusiones.","5","1","1","0"
"16","Administrator","Los administradores tienen permiso para hacer cualquier cosa.","7","1","1","0"
"32","Moderator","Los moderadores tienen permiso para editar la mayoría del contenido.","6","1","1","0"
"33","Ambassador","Ex Embajador en la Comunidad original","1","1","1","0"

Esto es lo que enumera para la tabla User, solo la entrada System y yo. (Se ha omitido parte de la información, pero aún así debería darte una idea de la estructura de la tabla).

Tabla: User
UserID:int,Name:varchar(50),Password:varbinary(100),HashMethod:varchar(10),Photo:varchar(255),Title:varchar(100),Location:varchar(100),About:text,Email:varchar(200),ShowEmail:tinyint,CountVisits:int,CountInvitations:int,CountNotifications:int,InviteUserID:int,DiscoveryText:text,Preferences:text,Permissions:text,Attributes:text,DateSetInvitations:datetime,DateOfBirth:datetime,DateFirstVisit:datetime,DateLastActive:datetime,LastIPAddress:varchar(15),DateInserted:datetime,InsertIPAddress:varchar(15),DateUpdated:datetime,UpdateIPAddress:varchar(15),HourOffset:int,Score:float,Admin:tinyint,Confirmed:tinyint,Verified:tinyint,Banned:tinyint,Deleted:tinyint,Points:int,CountUnreadConversations:int,CountDiscussions:int,CountUnreadDiscussions:int,CountComments:int,CountDrafts:int,CountBookmarks:int
"1","System","XXX","Random","https://XXX.com/applications/dashboard/design/images/usericon.png",\N,\N,\N,"system@stub.vanillacommunity.example","0","0","0","4",\N,\N,\N,"",\N,\N,\N,\N,\N,\N,"2022-11-18 03:39:35",\N,\N,\N,"0",\N,"2","1","0","0","0","0",\N,"1",\N,\N,\N,\N
"2","southpaw","XXX","Vanilla","userpics/QOZBY6BY3J3T/O8C563H2DWZV.jpg",\N,\N,\N,"XXX@gmail.com","0","258","0","24",\N,\N,"{\"DashboardNav.DashboardLandingPage\":\"Settings\"\, \"DashboardNav.SectionLandingPages\":{\"Settings\":\"/dashboard/settings/layout\"\, \"Moderation\":\"/dashboard/user\"}\,, \"DashboardNav.Collapsed\":[]\, \"Popup.WallComment\":\"1\"\, \"Popup.ActivityComment\":\"1\"\, \"Email.AnswerAccepted\":\"1\"\, \"Popup.AnswerAccepted\":\"1\"\, \"Email.QuestionAnswered\":\"1\"\, \"Popup.QuestionAnswered\":\"1\"\, \"Email.ConversationMessage\":\"1\"\, \"Popup.ConversationMessage\":\"1\"\, \"Email.BookmarkComment\":\"1\"\, \"Email.Mention\":\"1\"\, \"Email.ParticipateComment\":\"1\"\, \"Popup.DiscussionComment\":\"1\"\, \"Popup.BookmarkComment\":\"1\"\, \"Popup.Mention\":\"1\"\, \"Popup.ParticipateComment\":\"1\"}", "{\"0\":\"Garden.Email.View\"\, \"1\":\"Garden.Settings.Manage\"\, \"2\":\"Garden.Settings.View\"\, \"3\":\"Garden.SignIn.Allow\"\, \"4\":\"Garden.Users.Add\"\, \"5\":\"Garden.Users.Edit\"\, \"6\":\"Garden.Users.Delete\"\, \"7\":\"Garden.Users.Approve\"\, \"8\":\"Garden.Activity.Delete\"\, \"9\":\"Garden.Activity.View\"\, \"10\":\"Garden.Profiles.View\"\, \"11\":\"Garden.Profiles.Edit\"\, \"12\":\"Garden.Curation.Manage\"\, \"13\":\"Garden.Moderation.Manage\"\, \"14\":\"Garden.PersonalInfo.View\"\, \"15\":\"Garden.AdvancedNotifications.Allow\"\, \"16\":\"Garden.Community.Manage\"\, \"17\":\"Garden.Uploads.Add\"\, \"18\":\"Vanilla.Tagging.Add\"\, \"19\":\"Conversations.Conversations.Add\"\, \"20\":\"Plugins.Attachments.Upload.Allow\"\, \"21\":\"Reactions.Positive.Add\"\, \"22\":\"Reactions.Negative.Add\"\, \"23\":\"Reactions.Flag.Add\"\, \"24\":\"Vanilla.Discussions.View\"\, \"25\":\"Vanilla.Discussions.Add\"\, \"26\":\"Vanilla.Discussions.Edit\"\, \"27\":\"Vanilla.Discussions.Announce\"\, \"28\":\"Vanilla.Discussions.Sink\"\, \"29\":\"Vanilla.Discussions.Close\"\, \"30\":\"Vanilla.Discussions.Delete\"\, \"31\":\"Vanilla.Comments.Add\"\, \"32\":\"Vanilla.Comments.Edit\"\, \"33\":\"Vanilla.Comments.Delete\"\, \"Vanilla.Discussions.View\":[1\,2\,3\,4\,5\,6\,7\,8\,9]\, \"Vanilla.Discussions.Add\":[1\,2\,4\,5\,6\,7\,8\,9]\, \"Vanilla.Discussions.Edit\":[1\,2\,4\,5\,6\,7\,8\,9]\, \"Vanilla.Discussions.Announce\":[1\,2\,4\,5\,6\,7\,8\,9]\, \"Vanilla.Discussions.Sink\":[1\,2\,4\,5\,6\,7\,8\,9]\, \"Vanilla.Discussions.Close\":[1\,2\,4\,5\,6\,7\,8\,9]\, \"Vanilla.Discussions.Delete\":[1\,2\,4\,5\,6\,7\,8\,9]\, \"Vanilla.Comments.Add\":[1\,2\,4\,5\,6\,7\,8\,9]\, \"Vanilla.Comments.Edit\":[1\,2\,4\,5\,6\,7\,8\,9]\, \"Vanilla.Comments.Delete\":[1\,2\,4\,5\,6\,7\,8\,9]}", "{\"TimeZone\":\"America/New_York\"\, \"LastLoginAttempt\":1687373198\, \"LoginRate\":1\, \"CheckedComments\":[]\, \"floodcontrol.profilecontroller.2.currentpostcount\":1\, \"\": \"2022-12-04 02:28:17\"\, \"CheckedDiscussions\":[]}",\N,"1975-09-16 00:00:00","2022-11-18 03:39:35","2023-07-17 01:06:51","A¾’²","2022-11-18 03:39:35","A¾’²","2023-07-11 03:36:17","A¾’²","-4",\N,"1","1","1","0","0","182","3","14",\N,"83","0",\N
3 Me gusta

La única diferencia que encontré fue la “Capitalización”. El script vanilla.rb no acepta letras minúsculas en los nombres de los roles.
Por alguna razón, mi archivo de exportación tenía letras minúsculas en los nombres de los roles.
Ahora este error está solucionado, pero hay muchos otros errores con los que tengo que lidiar antes de poder migrar completamente :smiley:

Ahora tengo que arreglar el formato de la fecha:

script/import_scripts/vanilla.rb:281:in `strptime': fecha inválida (Date::Error)

    DateTime.strptime(date, "%Y-%m-%d %H:%M:%S")

2 Me gusta