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

ما لم يكن الملف ضخمًا، فمن السهل جدًا تحويله إلى UTF-8 باستخدام المفكرة في نظام Windows، إذا كنت لا تزال تمتلكها.

أعتقد أن Vanilla Porter يمنحك ملفًا بتنسيق .txt.gz. ستحتاج إلى استخراج الملف من هذا التنسيق المضغوط. بمجرد حفظه كملف .txt، يمكنك تحويله.

  1. افتح ملف .txt في المفكرة.
  2. انتقل إلى ملف > حفظ باسم وحدد UTF-8 كخيار الترميز.
  3. انقر فوق حفظ.

إذا لم تعد تمتلك المفكرة، أو إذا كان الملف كبيرًا جدًا بالنسبة للمفكرة، كما ذكر @pfaffman، يمكنك البحث في Google عن “تحويل 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 هو الإصدار الحالي. لقد قمت بالترقية إلى هذا الإصدار مؤخرًا. لدي نسخة احتياطية من منتديات Vanilla v2.6 الخاصة بي. حاولت الاستيراد من قاعدة البيانات القديمة ولكن لا تزال المشكلة كما هي.

هل يمكنك تأكيد إدخال UserRole للمسؤول؟

@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","يمكن للضيوف فقط عرض المحتوى. أي شخص يتصفح الموقع وهو غير مسجل الدخول يعتبر "ضيفًا".","2","0","0","0"
"3","Unconfirmed","يجب على المستخدمين تأكيد رسائل البريد الإلكتروني الخاصة بهم قبل أن يصبحوا أعضاء كاملين. يتم تعيينهم لهذا الدور.","3","0","1","0"
"4","Applicant","المستخدمون الذين تقدموا بطلب للحصول على عضوية، ولكن لم يتم قبولهم بعد. لديهم نفس أذونات الضيوف.","4","0","1","0"
"8","Member","يمكن للأعضاء المشاركة في المناقشات.","5","1","1","0"
"16","Administrator","يتمتع المسؤولون بصلاحية القيام بأي شيء.","7","1","1","0"
"32","Moderator","يتمتع المشرفون بصلاحية تعديل معظم المحتوى.","6","1","1","0"
"33","Ambassador","سفير سابق في المجتمع الأصلي","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)