Wal*_*lly 2 sqlite postgresql heroku strapi headless-cms
npm run develop使用 sqlite,而生产应该使用 postgres。对于 REF - 我在这里找到了这个答案:https : //github.com/strapi/strapi/discussions/6832
谁能告诉我如何设置这个,因为我真的发现很难阅读这个问题的文档。
当前在文件结构中:
config/database.js
Run Code Online (Sandbox Code Playgroud)
我有这两个设置(用于本地和 heroku) - 我注释掉了postgresheroku 在本地工作的设置
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,
},
},
},
});
Run Code Online (Sandbox Code Playgroud)
我想象发生的事情是因为本地的 Strapi 是使用 sqlite 构建的,而 heroku 要求我使用 postgres 作为数据库,数据库不一样,所以数据没有被正确读取?
(我可能错了....)
在这种情况下:您如何将您的本地开发人员(推荐的快速启动设置)移动到您的生产站点?
你 npm 运行构建吗?然后在您的正常前端站点上托管trapi?
有没有办法将数据从一个数据库移动到另一个数据库?
很抱歉在这里问了很多小问题 - 我可能错过了一个将它们联系在一起的概念。
在此先感谢您的帮助,沃利
我发现了一个非常有用的 Youtube 视频,它实际上解释了第 1 步的这个过程)
如何运行不同的数据库取决于它是由开发者还是生产者使用。
简短的回答是在 database.js 文件中你写了一个 if 语句来看看你是使用开发还是生产:
一旦我实现了这个,我会写一个完整的答案:)
视频链接:https : //www.youtube.com/watch?v=xNE0TrI5OKk
第 2 部分:您能否将您在 Strapi 中所做的工作迁移到生产数据库,例如 Heroku....?
简单的答案是可悲的(并且令人沮丧)-不!
这是来自 Strapis 网站:
Strapi 是否处理内容的部署或迁移?Strapi 目前不提供任何工具来在不同环境(即从开发到生产)之间迁移或部署您的数据更改。除了内容管理器设置之外,要阅读有关此选项的更多信息,请参阅以下 CLI 文档。
在这里找到:https : //strapi.io/documentation/v3.x/getting-started/troubleshooting.html#frequently-asked-questions
我还在 Strapi Slack 页面上与一位非常有帮助的代表交谈,以找出我做错的 WTF(结果是分配.....)。
反正:
一线希望?
我还没有这样做,但显然您可以使用以下方法手动传输数据并将其从 sqlite 转换为 postgres:
您必须使用一些本地数据库客户端(DBeaver 支持 SQLite)进行数据转储,然后将该数据导入 PG 服务器(您也可以在那里使用 DBeaver) Strapi 目前没有任何工具或建议用于环境之间的内容迁移。
好吧,我希望这可以帮助像我一样遇到这个问题的其他人......
沃利:)
| 归档时间: |
|
| 查看次数: |
3691 次 |
| 最近记录: |