- 如果我在 database.js 中运行 sqlite,Strapi 会在本地工作,但如果我正在运行 postgres,则不会/我在网上发现我可以指定
npm run develop
使用 sqlite,并且生产应该使用 postgres。
对于 REF - 我在这里找到了这个答案:https://github.com/strapi/strapi/discussions/6832
任何人都可以告诉我如何设置它,因为我真的很难阅读这个问题的文档。
当前在文件结构中:
config/database.js
我有这两个设置(针对本地和 heroku)- 我注释掉了 postgres
setup for heroku to work locally
module.exports = ({ env }) => ({
defaultConnection: 'default',
connections: {
default: {
connector: 'bookshelf',
settings: {
client: 'sqlite',
filename: env('DATABASE_FILENAME', '.tmp/data.db'),
},
options: {
useNullAsDefault: true,
},
},
},
});
module.exports = ({ env }) => ({
defaultConnection: 'default',
connections: {
default: {
connector: 'bookshelf',
settings: {
client: 'postgres',
host: env('DATABASE_HOST', '127.0.0.1'),
port: env.int('DATABASE_PORT', 27017),
database: env('DATABASE_NAME', 'strapi'),
username: env('DATABASE_USERNAME', ''),
password: env('DATABASE_PASSWORD', ''),
},
options: {
ssl: false,
},
},
},
});
- 当我将我的 strapi 项目推送到 Heroku 时,那里有正确的结构,即文章名称(如下图所示)- 但没有任何内容:即帖子、图片等
我想发生的事情是因为本地 strapi 是使用 sqlite 构建的,heroku 要求我使用 postgres 作为数据库,数据库不一样,所以数据没有被正确读取?
(我可能是错的......)
在这种情况下:如何将本地开发人员(推荐的快速启动设置)移动到您的生产站点?
你会 npm run build 吗?然后在您的常规前端站点上托管 strapi?
有没有办法将数据从一个数据库移动到另一个数据库?
很抱歉在这里问了很多小问题 - 我可能错过了一个将它们联系在一起的概念。
在此先感谢您的帮助, 沃利
最佳答案
我发现了一个非常有用的 Youtube 视频,它实际上解释了步骤 1) 的这个过程
如何根据开发或生产使用不同的数据库来运行它。
简短的回答是在 database.js 文件中你写一个 if 语句来查看你使用的是开发还是生产:
一旦我实现了这个,我会写一个完整的答案:)
视频链接:https://www.youtube.com/watch?v=xNE0TrI5OKk
第 2 部分:您能否将您在 strapi 中完成的工作迁移到生产数据库,例如 Heroku......?
简单的回答是可悲的(而且非常令人沮丧)- 不!
这是来自 Strapis 网站:
Strapi 是否处理内容的部署或迁移? Strapi 目前不提供任何工具来在不同环境之间(即从开发到生产)迁移或部署您的数据更改。除了 Content-Manager 设置外,要了解有关此选项的更多信息,请参阅以下 CLI 文档。
在这里找到:https://strapi.io/documentation/v3.x/getting-started/troubleshooting.html#frequently-asked-questions
我还在 Strapi Slack 页面上与一位非常乐于助人的代表交谈,以找出 WTF 我做错了什么(结果分配......)。
无论如何:
- 在本地 strapi 中创建您的内容类型
- 将它们推送到您的在线 strapi (Heroku)
- 在线添加所有内容而不是本地.....
一线希望?
我还没有这样做,但显然您可以手动传输数据并将其从 sqlite 转换为 postgres,方法是:
您必须使用一些本地数据库客户端(DBeaver 支持 SQLite)进行数据转储,然后将该数据导入 PG 服务器(您也可以在那里使用 DBeaver) Strapi 目前没有任何用于在环境之间迁移内容的工具或建议。
好吧,我希望这能帮助像我一样遇到这个问题的其他人....
沃利:)
关于postgresql - strapi database.js/多个数据库配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63340269/