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

除非文件非常大,否则使用 Windows 记事本将其转换为 UTF-8 非常简单,如果您仍有记事本的话。

我相信 Vanilla Porter 会给您一个 .txt.gz 格式的文件。您需要从该压缩格式中提取文件。将其保存为 .txt 文件后,您就可以转换它了。

  1. 在记事本中打开 .txt 文件。
  2. 转到“文件”>“另存为”,然后选择 UTF-8 作为编码选项。
  3. 点击“保存”。

如果您不再有记事本,或者文件太大无法在记事本中打开,正如 @pfaffman 所提到的,您可以搜索“将 txt 转换为 UTF-8”来查找适用于您可用机器和软件的说明。

4 个赞

好的,这奏效了。但现在我遇到了这个错误:

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]
                                                                       ^^^^^^^^^^

第一个用户是数据库中的管理员。

在我注意到需要从“源论坛类型”下拉列表中选择 Vanilla 2 之前,我遇到的错误正是这个。当保留选择 Vanilla 1 时,我的导出文件中的数据表是空的。如果你选择了 Vanilla 2,恐怕以我对 Vanilla 迁移有限的经验,也无法提供更多帮助了。也许其他人会有一些想法。

你目前的论坛运行的是哪个版本的 Vanilla?

5 个赞

Vanilla Higher Logic 是当前版本。我最近升级到了这个版本。我备份了我的 v2.6 vanilla 论坛。我尝试从旧数据库导入,但问题依旧。

您能确认管理员的用户角色条目吗?

@ddeveloper,我认为答案是 16,但不确定你问的是什么!
如果对你查看表结构有帮助,我已从我的导出文件中添加了一些示例数据。

导出数据

这是导出文件为 UserRole 表列出的内容,仅针对 System 用户和我(用户 2):

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

这是我的导出文件为 Role 表列出的内容:
Table: Role

RoleID:int,Name:varchar(100),Description:varchar(500),Sort:int,Deletable:tinyint,CanSession:tinyint,PersonalInfo:tinyint
"2","Guest","Guests can only view content. Anyone browsing the site who is not signed in is considered to be a \"Guest\".","2","0","0","0"
"3","Unconfirmed","Users must confirm their emails before becoming full members. They get assigned to this role.","3","0","1","0"
"4","Applicant","Users who have applied for membership, but have not yet been accepted. They have the same permissions as guests.","4","0","1","0"
"8","Member","Members can participate in discussions.","5","1","1","0"
"16","Administrator","Administrators have permission to do anything.","7","1","1","0"
"32","Moderator","Moderators have permission to edit most content.","6","1","1","0"
"33","Ambassador","Former Ambassador in the original Community","1","1","1","0"

这是它为 User 表列出的内容 - 仅 System 条目和我。(一些信息已被隐藏,但仍应能让你了解表结构。)

Table: 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 个赞

我发现唯一的区别是“大小写”。vanilla.rb 脚本不接受角色名称中的小写字母。
出于某种原因,我的导出文件中的角色名称包含小写字母。
现在这个错误已经修复了,但是还有很多其他错误需要我处理才能完全迁移 :smiley:

现在我需要修复日期格式:

script/import_scripts/vanilla.rb:281:in `strptime': invalid date (Date::Error)

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

2 个赞