Closed whaleyr closed 3 months ago
I can replicate the error log in a different way (came here to open another issue, but saw this). I initially thought this had something to do with a modified core I am running, yet even a "minimal" installation returns the error.
Here are my steps to end up with a similar error log:
cd
into an empty directoryghost install --local --no-start
– this successfully installs Ghost v5.79.5 (as of today) without errorsghost run -D -V
for verbose error outputhttp://localhost:2368/ghost
(no errors)When entering post content, the following logs appear:
[2024-02-26 16:53:27] INFO "GET /ghost/api/admin/posts/?formats=mobiledoc%2Clexical&limit=30&page=1&filter=status%3A%5Bdraft%2Cscheduled%2Cpublished%2Csent%5D" 200 91ms
[2024-02-26 16:53:27] INFO "GET /ghost/api/admin/tags/?limit=all" 200 42ms
[2024-02-26 16:53:27] INFO "GET /ghost/api/admin/users/?limit=all&include=roles" 200 31ms
[2024-02-26 16:53:28] INFO "GET /ghost/api/admin/snippets/?formats=mobiledoc%2Clexical&limit=all" 200 26ms
[2024-02-26 16:53:30] INFO "GET /ghost/api/admin/slugs/post/test/" 200 19ms
CodeBlockNode must implement static "getType" method
CodeBlockNode must implement static "clone" method
CodeBlockNode must implement "decorate" method
CodeBlockNode should implement "importJSON" method to ensure JSON and default HTML serialization works as expected
CodeBlockNode should implement "exportJSON" method to ensure JSON and default HTML serialization works as expected
ImageNode must implement static "getType" method
ImageNode must implement static "clone" method
ImageNode must implement "decorate" method
ImageNode should implement "importJSON" method to ensure JSON and default HTML serialization works as expected
MarkdownNode must implement static "getType" method
MarkdownNode must implement static "clone" method
MarkdownNode must implement "decorate" method
MarkdownNode should implement "importJSON" method to ensure JSON and default HTML serialization works as expected
MarkdownNode should implement "exportJSON" method to ensure JSON and default HTML serialization works as expected
VideoNode must implement static "getType" method
VideoNode must implement static "clone" method
VideoNode must implement "decorate" method
VideoNode should implement "importJSON" method to ensure JSON and default HTML serialization works as expected
AudioNode must implement static "getType" method
AudioNode must implement static "clone" method
AudioNode must implement "decorate" method
AudioNode should implement "importJSON" method to ensure JSON and default HTML serialization works as expected
AudioNode should implement "exportJSON" method to ensure JSON and default HTML serialization works as expected
CalloutNode must implement static "getType" method
CalloutNode must implement static "clone" method
CalloutNode must implement "decorate" method
CalloutNode should implement "importJSON" method to ensure JSON and default HTML serialization works as expected
CalloutNode should implement "exportJSON" method to ensure JSON and default HTML serialization works as expected
HorizontalRuleNode must implement static "getType" method
HorizontalRuleNode must implement static "clone" method
HorizontalRuleNode must implement "decorate" method
HorizontalRuleNode should implement "importJSON" method to ensure JSON and default HTML serialization works as expected
HorizontalRuleNode should implement "exportJSON" method to ensure JSON and default HTML serialization works as expected
HtmlNode must implement static "getType" method
HtmlNode must implement static "clone" method
HtmlNode must implement "decorate" method
HtmlNode should implement "importJSON" method to ensure JSON and default HTML serialization works as expected
HtmlNode should implement "exportJSON" method to ensure JSON and default HTML serialization works as expected
FileNode must implement static "getType" method
FileNode must implement static "clone" method
FileNode must implement "decorate" method
FileNode should implement "importJSON" method to ensure JSON and default HTML serialization works as expected
ToggleNode must implement static "getType" method
ToggleNode must implement static "clone" method
ToggleNode must implement "decorate" method
ToggleNode should implement "importJSON" method to ensure JSON and default HTML serialization works as expected
ToggleNode should implement "exportJSON" method to ensure JSON and default HTML serialization works as expected
ButtonNode must implement static "getType" method
ButtonNode must implement static "clone" method
ButtonNode must implement "decorate" method
ButtonNode should implement "importJSON" method to ensure JSON and default HTML serialization works as expected
ButtonNode should implement "exportJSON" method to ensure JSON and default HTML serialization works as expected
HeaderNode must implement static "getType" method
HeaderNode must implement static "clone" method
HeaderNode must implement "decorate" method
HeaderNode should implement "importJSON" method to ensure JSON and default HTML serialization works as expected
HeaderNode should implement "exportJSON" method to ensure JSON and default HTML serialization works as expected
BookmarkNode must implement static "getType" method
BookmarkNode must implement static "clone" method
BookmarkNode must implement "decorate" method
PaywallNode must implement static "getType" method
PaywallNode must implement static "clone" method
PaywallNode must implement "decorate" method
PaywallNode should implement "importJSON" method to ensure JSON and default HTML serialization works as expected
PaywallNode should implement "exportJSON" method to ensure JSON and default HTML serialization works as expected
ProductNode must implement static "getType" method
ProductNode must implement static "clone" method
ProductNode must implement "decorate" method
ProductNode should implement "importJSON" method to ensure JSON and default HTML serialization works as expected
EmbedNode must implement static "getType" method
EmbedNode must implement static "clone" method
EmbedNode must implement "decorate" method
EmbedNode should implement "importJSON" method to ensure JSON and default HTML serialization works as expected
EmbedNode should implement "exportJSON" method to ensure JSON and default HTML serialization works as expected
EmailNode must implement static "getType" method
EmailNode must implement static "clone" method
EmailNode must implement "decorate" method
EmailNode should implement "importJSON" method to ensure JSON and default HTML serialization works as expected
EmailNode should implement "exportJSON" method to ensure JSON and default HTML serialization works as expected
GalleryNode must implement static "getType" method
GalleryNode must implement static "clone" method
GalleryNode must implement "decorate" method
GalleryNode should implement "importJSON" method to ensure JSON and default HTML serialization works as expected
GalleryNode should implement "exportJSON" method to ensure JSON and default HTML serialization works as expected
EmailCtaNode must implement static "getType" method
EmailCtaNode must implement static "clone" method
EmailCtaNode must implement "decorate" method
EmailCtaNode should implement "importJSON" method to ensure JSON and default HTML serialization works as expected
EmailCtaNode should implement "exportJSON" method to ensure JSON and default HTML serialization works as expected
SignupNode must implement static "getType" method
SignupNode must implement static "clone" method
SignupNode must implement "decorate" method
SignupNode should implement "importJSON" method to ensure JSON and default HTML serialization works as expected
SignupNode should implement "exportJSON" method to ensure JSON and default HTML serialization works as expected
CollectionNode must implement static "getType" method
CollectionNode must implement static "clone" method
CollectionNode must implement "decorate" method
CollectionNode should implement "importJSON" method to ensure JSON and default HTML serialization works as expected
CollectionNode should implement "exportJSON" method to ensure JSON and default HTML serialization works as expected
Thanks for pointing that out! I can see the same thing when I start a brand new post, fill in a title, then focus in the empty post body area.
So it looks like these errors are not tied to exclusively to the import process. Good to know. But now to figure out why it's otherwise failing to import any posts and failing to log any explanation why.
FYI the *Node must/should implement
warnings are from the underlying Lexical framework that our editor is built on. They occur because it contains some basic checks that don't account for our use of class inheritance so are just noise.
They aren't errors and don't affect the import process, they also only occur when Ghost is run in development/against a development build of Koenig so shouldn't appear anywhere on a production site.
Our bot has automatically marked this issue as stale because there has not been any activity here in some time.
The issue will be closed soon if there are no further updates, however we ask that you do not post comments to keep the issue open if you are not actively working on a PR.
We keep the issue list minimal so we can keep focus on the most pressing issues. Closed issues can always be reopened if a new contributor is found. Thank you for understanding 🙂
Issue Summary
I am trying to migrate content from Blogger to my self-hosted Ghost instance (running in a Docker container). I'm following the instructions in your docs (https://ghost.org/docs/migration/custom/) for a "custom" migration. I've created my own import JSON file following the docs.
When I go into the ghost settings panel Advanced > Import/Export > Migration Tools > Universal import and then drop in the JSON file I see hundreds of lines of errors (a subset of which is pasted below).
Steps to Reproduce
Ghost Version
5.79.4
Node.js Version
18.19.1
How did you install Ghost?
Docker image ghost:5-alpine
Database type
MySQL 8
Browser & OS version
No response
Relevant log / error output
Code of Conduct