在服务端数据库的方案中,文档需要进一步说明避免用户落到坑里 #3062
-
📦 部署环境Vercel 📌 软件版本1.1.6 💻 系统环境macOS 🌐 浏览器Edge 🐛 问题描述在尝试现在的服务端数据库的方案时,遇到了好几个坑文档里面都没有提及。需要自己摸索(以及从 repo 里搜到相关的其他人的问题)才能解决。
总之,感谢团队这次的服务端数据库的更新,但是在文档上还需要一些加强,否则对于像我们不熟悉代码结构的用户来说还是难免会出现各种问题。 📷 复现步骤No response 🚦 期望结果完善文档。 📝 补充信息No response |
Beta Was this translation helpful? Give feedback.
Replies: 49 comments
-
📦 Deployment environmentVercel 📌 Software version1.1.6 💻 System environmentmacOS 🌐 BrowserEdge 🐛 Problem descriptionWhen trying the current server-side database solution, I encountered several pitfalls that were not mentioned in the documentation. You need to explore it yourself (and search related problems of other people from the repo) to solve it.
In short, thank you to the team for this update of the server database, but the documentation still needs some improvement, otherwise various problems will inevitably arise for users like us who are not familiar with the code structure. 📷 Steps to reproduceNo response 🚦 Expected resultsImprove documentation. 📝 Supplementary informationNo response |
Beta Was this translation helpful? Give feedback.
-
Thank you for raising an issue. We will investigate into the matter and get back to you as soon as possible. |
Beta Was this translation helpful? Give feedback.
-
3.1. 这一点你不完全按照文档指示,自己瞎搞为啥还要赖文档没写清楚… 如果没用,为啥我要把这个变量写上?😅 本身服务端数据库就是一个比较复杂的部署方案。我问过好几个玩 self-hosting 的用户,他们甚至觉得现在的文档写的过于详细了。所以目前应该应该没什么需要再修改的。 如果有用户觉得现在这个文档还是过于简略,出了问题不知道该怎么解决,那我还是推荐用我们 hosting 的版本吧,省心一些🥲 |
Beta Was this translation helpful? Give feedback.
-
The server-side database itself is a relatively complex deployment solution. I have asked several users who are playing with self-hosting, and they even think that the current documentation is too detailed. So there should be nothing that needs to be modified at the moment. If some users feel that the current document is too simple and they don’t know how to solve problems if they arise, then I still recommend using our hosting version to save worry🥲 |
Beta Was this translation helpful? Give feedback.
-
关于第一点。。。懒得再切换了,太折腾。。。
我根本就没有设置 NEXT_PUBLIC_SERVICE_MODE=server 这个变量,部署时实际上就进入了数据库的迁移逻辑。 |
Beta Was this translation helpful? Give feedback.
-
Regarding the first point. . . I'm too lazy to switch again, it's too much trouble. . . Serverless Postgres DB UrlDATABASE_URL= Specify service mode as server, otherwise the server database will not be enteredNEXT_PUBLIC_SERVICE_MODE=server |
Beta Was this translation helpful? Give feedback.
-
可能这一部分是需要补充说明下。刚看了下文档里关于 S3 图片的使用在这里一笔带过了: 在客户端 db 的情况下是都通过 base64 传输的,但是在服务端 db 模式中是直接传图片 url。其实后者才是 OpenAI 最推荐的方案(文档),可以大大降低请求传输的流量开销,响应速度也会更快。只是之前在没有服务端 db 的情况下,只能用 base64 编码。现在有 server db 了,自然走图片 URL 更好。
数据库迁移和应用是两个不同的逻辑。数据库迁移就只依赖 DATABASE_URL 的,而且只在构建时执行,这个逻辑没问题。如果你没配置 NEXT_PUBLIC_SERVICE_MODE ,构建出来的应用就还是 client db 的。 |
Beta Was this translation helpful? Give feedback.
-
Maybe this part needs additional explanation. The use of S3 images in the document is briefly mentioned here: In the case of client db, it is transmitted through base64, but in server db mode, the image url is transmitted directly. In fact, the latter is the most recommended solution by OpenAI (Document), which can greatly reduce the traffic overhead of request transmission and improve the response speed. Faster. It’s just that before there was no server db, base64 encoding could only be used. Now that there is a server db, it is naturally better to use the image URL.
Database migration and application are two different logics. Database migration only relies on DATABASE_URL and is only executed at build time. This logic is no problem. If you do not configure NEXT_PUBLIC_SERVICE_MODE, the built application will still be client db. |
Beta Was this translation helpful? Give feedback.
-
感觉目前文档确实有点 conflicted. 我昨晚刚从 0.x 操作升级到 1.x 的有服务端 persistence 的配置。 文档的一些问题:
至于 ACCESS_CODE 还要不要,现在也不明白。。 |
Beta Was this translation helpful? Give feedback.
-
I feel that the current documentation is indeed a bit conflicted. I just upgraded from 0.x operation to 1.x configuration with server persistence last night. Some issues with the documentation:
As for whether ACCESS_CODE is still needed, I don’t know yet. . |
Beta Was this translation helpful? Give feedback.
-
docker部署需要自己修改dockerfile然后build,官方目前的docker镜像由于next环境变量和构建问题不支持db版 |
Beta Was this translation helpful? Give feedback.
-
Docker deployment requires you to modify the dockerfile and then build it. The official current docker image does not support the db version due to next environment variables and build issues. |
Beta Was this translation helpful? Give feedback.
-
是吧... 对我来说,有点失望但也无所谓,我不急,就自己用而已。但文档是不是没提?或者这个 "env variables and build issues" 要咋解决? |
Beta Was this translation helpful? Give feedback.
-
Right... For me, it's a bit disappointing but it doesn't matter. I'm not in a hurry, I just use it for myself. But does the document not mention it? Or how to solve this "env variables and build issues"? |
Beta Was this translation helpful? Give feedback.
-
文档开头就说了不支持 Docker ,你是没看到么… |
Beta Was this translation helpful? Give feedback.
-
@utccnu 我最近也构建不成功,直接 heap out of memory 了 |
Beta Was this translation helpful? Give feedback.
-
@utccnu I also failed to build recently and it directly heap out of memory. |
Beta Was this translation helpful? Give feedback.
-
刚在自己电脑上build成功了,用时6分钟。🫠 |
Beta Was this translation helpful? Give feedback.
-
I just built it successfully on my computer and it took 6 minutes. 🫠 |
Beta Was this translation helpful? Give feedback.
-
我在 m1 pro 上也几分钟完成了。。但没法用,跑起来就出错,还是说找不到 SECRET 啥的,但实际上 env 已经设置了。算了算了放弃了。。等你啊! |
Beta Was this translation helpful? Give feedback.
-
I also did it in a few minutes on my m1 pro. . But it doesn't work. It gives an error when running. It still says that SECRET cannot be found, but in fact env has been set. Forget it, give up. . Wait for you! |
Beta Was this translation helpful? Give feedback.
-
@utccnu 不如加入 discord,试试使用 NextAuth 的后端数据库版本。 |
Beta Was this translation helpful? Give feedback.
-
@utccnu Why not join discord and try using the backend database version of NextAuth. |
Beta Was this translation helpful? Give feedback.
-
构建的话也不一定非要用自己的机器吧,用容器镜像服务就行了。 |
Beta Was this translation helpful? Give feedback.
-
You don’t have to use your own machine to build, just use a container image service. |
Beta Was this translation helpful? Give feedback.
-
使用Node Postgres的时候,还需要注意自签名证书的问题 此时如果使用服务方提供的URL的话,就会出现自签名证书问题:
原因在于,node-postgres在解析 早在2年前便已经有人提出了修复pr使行为对齐官方文档,但至今未合并。brianc/node-postgres#2709 太长不看:node-postgres实现跟官方不一致,将URL中的 |
Beta Was this translation helpful? Give feedback.
-
我昨天用 heroku 也不成功,开始也以为是证书问题,刚改成了 no-verify 还是错误,仔细看 log 是这样 这个 pg url 我在本机用 python 是可以连上的。。不熟悉 pg, 怎么冒出来个 wss:// 链接,而且尝试 443 去了 |
Beta Was this translation helpful? Give feedback.
-
刚才我也试了 aiven, 同样是我上面提到的 443 访问错误。。你 aiven build 能通过? |
Beta Was this translation helpful? Give feedback.
-
非serverless的postgres实例需要添加环境变量更改driver,参见官方文档(现在访问不了服务端数据库的页面?)
|
Beta Was this translation helpful? Give feedback.
-
https://lobehub.com/docs/self-hosting/server-database 目前初步调整完毕服务端数据库的部署文档框架,相关内容正在陆续补充中。有任何问题欢迎在 #3391 回复 |
Beta Was this translation helpful? Give feedback.
https://lobehub.com/docs/self-hosting/server-database 目前初步调整完毕服务端数据库的部署文档框架,相关内容正在陆续补充中。有任何问题欢迎在 #3391 回复