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

A meno che il file non sia enorme, è piuttosto semplice convertirlo in UTF-8 usando il Blocco note di Windows, se lo hai ancora.

Credo che Vanilla Porter ti fornisca un file in formato .txt.gz. Dovrai estrarre il file da quel formato compresso. Una volta salvato come file .txt, puoi convertirlo.

  1. Apri il file .txt nel Blocco note.
  2. Vai su File > Salva con nome e seleziona UTF-8 come opzione di codifica.
  3. Fai clic su Salva.

Se non hai più il Blocco note, o se il file è troppo grande per il Blocco note, come menzionato da @pfaffman, puoi cercare su Google “convert txt to UTF-8” per trovare alcune istruzioni che funzioneranno con le macchine e il software che hai a disposizione.

4 Mi Piace

Okay, This worked. But now I’m getting this 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]
                                                                       ^^^^^^^^^^

First user is Admin in database

Questo è esattamente l’errore che stavo ricevendo prima di notare che dovevo scegliere Vanilla 2 dal menu a discesa Tipo di forum di origine. Lasciando selezionato Vanilla 1, il mio file di esportazione aveva tabelle dati vuote. Se hai selezionato Vanilla 2, temo di non poter offrire molto altro dalla mia limitata esperienza con una migrazione Vanilla. Forse qualcun altro ha qualche idea.

Quale versione di Vanilla sta eseguendo il tuo forum attuale?

5 Mi Piace

Vanilla Higher Logic è la versione attuale. Ho effettuato l’aggiornamento a questa versione di recente. Ho un backup del mio forum Vanilla v2.6. Ho provato a importare dal vecchio database ma il problema persiste.

Puoi confermare la voce UserRole per Admin?

@ddeveloper, penso che la risposta sia 16, ma non sono sicuro di cosa stai chiedendo!
Ho aggiunto alcuni dati di esempio dal mio file di esportazione di seguito, nel caso ti sia utile vedere le strutture delle tabelle.

Dati di esportazione

Questo è ciò che il file di esportazione elenca per la tabella UserRole, solo per l’utente System e per me (utente 2):

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

Questo è ciò che il mio file di esportazione elenca per la tabella Role:
Tabella: Role

RoleID:int,Name:varchar(100),Description:varchar(500),Sort:int,Deletable:tinyint,CanSession:tinyint,PersonalInfo:tinyint
"2","Guest","Gli ospiti possono solo visualizzare contenuti. Chiunque navighi nel sito che non è connesso è considerato un \"Ospite\".","2","0","0","0"
"3","Unconfirmed","Gli utenti devono confermare le proprie email prima di diventare membri a pieno titolo. Vengono assegnati a questo ruolo.","3","0","1","0"
"4","Applicant","Utenti che hanno richiesto l'iscrizione, ma non sono ancora stati accettati. Hanno le stesse autorizzazioni degli ospiti.","4","0","1","0"
"8","Member","I membri possono partecipare alle discussioni.","5","1","1","0"
"16","Administrator","Gli amministratori hanno il permesso di fare qualsiasi cosa.","7","1","1","0"
"32","Moderator","I moderatori hanno il permesso di modificare la maggior parte dei contenuti.","6","1","1","0"
"33","Ambassador","Ex ambasciatore nella community originale","1","1","1","0"

Questo è ciò che elenca per la tabella User - solo la voce System e me. (Alcune informazioni sono state omesse, ma dovrebbero comunque darti un’idea della struttura della tabella.)

Tabella: 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 Mi Piace

L’unica differenza che ho trovato è stata la “Capitalizzazione”. Lo script vanilla.rb non accetta lettere minuscole nei nomi dei ruoli.
Per qualche motivo, il mio file di esportazione conteneva lettere minuscole nei nomi dei ruoli.
Ora questo errore è risolto, ma ci sono molti altri errori con cui devo fare i conti prima di poter migrare completamente :smiley:

Ora devo correggere la formattazione della data:

script/import_scripts/vanilla.rb:281:in `strptime': data non valida (Date::Error)

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

2 Mi Piace