Strapi database.js / 多个数据库配置

2024-01-14

  1. 如果我在 database.js 中运行 sqlite,则 Strapi 在本地工作,但如果我运行 postgres,则不行/我在网上发现我可以指定npm run develop使用 sqlite,生产应该使用 postgres。

对于参考 - 我在这里找到了这个答案:https://github.com/strapi/strapi/discussions/6832 https://github.com/strapi/strapi/discussions/6832

谁能告诉我如何设置这个,因为我真的很难阅读这个问题的文档。

目前的文件结构:

config/database.js

我有这两个设置(用于本地和heroku)-我注释掉postgres设置 Heroku 在本地工作

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,
      },
    },
  },
});

  1. 当我将我的 Strapi 项目推送到 Heroku 时,存在正确的结构,即文章名称(如下图所示) - 但没有任何内容:即帖子、图像等

我想象正在发生的事情是因为本地strapi是使用sqlite构建的,而heroku要求我使用postgres作为数据库,数据库不一样,所以数据没有被正确读取?

(我可能是错的......)

在这种情况下:如何将本地开发(推荐的快速启动设置)移动到生产站点?

  • 你 npm run build 吗?然后在您的正常前端站点上托管 Strapi?

  • 有没有一种方法可以将数据从一个数据库移动到另一个数据库?

很抱歉在这里问了很多小问题 - 我可能错过了一个将这一切联系在一起的概念。

预先感谢您的任何帮助, 沃利


我发现了一个非常有用的 Youtube 视频,它实际上解释了步骤 1 的这个过程)

如何运行不同的数据库,具体取决于开发或生产正在使用它。

简短的答案是在database.js文件中编写一个if语句来查看您是否使用dev或生产:

一旦我实现了这一点,我将写一个完整的答案:)

视频链接:https://www.youtube.com/watch?v=xNE0TrI5OKk 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 https://strapi.io/documentation/v3.x/getting-started/troubleshooting.html#frequently-asked-questions


我还在 Strapi Slack 页面上与一位非常乐于助人的代表交谈,以弄清楚我一直做错了什么(结果是分配......)。

Anyway:

  • 在本地 Strapi 中创建您的内容类型
  • 将它们推送到您的在线 Strapi (Heroku)
  • 在线添加所有内容而不是本地......

一线希望?

我还没有这样做,但显然你可以使用以下命令手动传输数据并将其从 sqlite 转换为 postgres:

您必须使用某些本地数据库客户端(DBeaver 支持 SQLite)进行数据转储,然后将该数据导入到 PG 服务器(您也可以在那里使用 DBeaver) Strapi 目前没有任何用于环境之间内容迁移的工具或建议。

好吧,我希望这可以帮助像我一样遇到这个问题的其他人......

Wally :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Strapi database.js / 多个数据库配置 的相关文章

随机推荐

  • FSM actor 在转到相同状态后不会触发 onTransition

    根据Akka FSM 文档 http doc akka io docs akka snapshot scala fsm html 笔记 可以使用 goto S 或stay 实现相同状态转换 当前处于状态 S 时 它们之间的区别在于 goto
  • Osmdroid - 自定义离线图块源更改位置

    我使用此代码来显示离线 Osmdroid 地图图块 问题是 我已将图块存储在位置 sdcard emulated0 0 中 有什么方法可以将它传递到 XYTileSource 中吗 Thx myMapView setTileSource n
  • jQuery iframe 模式关闭表单提交

    我有一个 jQuery 模态对话框 其中包含一个 iframe 该 iframe 包含一个表单 当用户提交表单时 我想关闭模式对话框 我怎样才能做到这一点 index php 上的 jquery 模态脚本
  • 如何修复客户端首选项不接受服务器选择的协议版本 TLS10 [TLS12]

    我想使用 sql server 数据库运行 spring boot 应用程序 但是当我运行它时 出现以下错误 com microsoft sqlserver jdbc SQLServerException The driver could
  • Webstorm 6 - 如何使 scss 文件观察器忽略文件

    我希望 SCSS 文件的文件观察器忽略文件名以下划线开头的文件 例如 buttons scss 我该怎么做呢 首先向您想要忽略的文件添加 完成 来自文档 http sass lang com docs yardoc file SASS RE
  • 尝试设置 Laravel 4 给出“无法打开流:没有这样的文件或目录”

    尝试在 Mac 上设置 Laravel 4 我已经安装了 Composer 但是当我通过 XAMPP 进入公共文件夹时 我得到以下信息 警告 require Applications XAMPP xamppfiles htdocs lara
  • 在 Python 脚本中使用 FFProbe

    我对 python 相当陌生 这是我的第一个真正的项目 我遇到了障碍 我这里有一个 wmv 文件 我使用 FFprobe 从 wmv 文件中提取持续时间 以秒为单位 当我在 CMD 中运行以下命令时 ffprobe i Video2 wmv
  • 多对多关联。数据不删除

    我有这个模型 Entity Table name candidate XmlRootElement name candidate public class Candidate ManyToMany mappedBy candidates f
  • 同一个构造函数是否可以有不同的行为?

    我正在写一个 SQL 解释器 我需要区分编译时格式错误的表达式和运行时错误 我将给您提供一个应该格式良好但可能在运行时失败的示例 SELECT ColumnName first name AS name FROM TABLE people
  • 将 OpenXML 中的文本支架替换为图像

    下面的代码使用 OpenXML 在 word 文档的末尾插入图像 我需要做的是尝试在文档中找到名为 Image Holder 的项目 并将其替换为我传递的图像 这是将其添加到文档末尾的当前代码 var element new Drawing
  • Salt Generation 和开源软件

    据我了解 生成盐的最佳实践是使用源代码中存储的一些神秘公式 甚至魔术常数 我正在开发一个计划作为开源发布的项目 但问题是源代码带来了生成盐的秘密公式 因此能够在我们的网站上运行彩虹表攻击 我认为很多人在我之前已经考虑过这个问题 我想知道最佳
  • 如何在Android应用程序中创建进度对话框?

    我正在开发应用程序以从互联网接收一些数据 同时接收我想要显示 进度对话框 的数据 我用了 异步任务 在我的应用程序中 问题是如何使用它以及如何显示百分比 如 100 请建议我并给我一些例子 谢谢你 对不起我的英语 要显示进度对话框 您可以使
  • 使用matlab保存函数

    是否可以在函数内使用 Matlab save 命令来存储工作区变量 考虑以下场景 我在 Matlab 工作区中有一堆变量 并且希望 mat 文件中所有以 a 和 b 开头的变量 当然这有效 save test mat a b 但我想要一个可
  • Vuejs:渲染后回调

    我有一个 Bootstrap 弹出窗口 我想将其附加到具有条件渲染的元素 因此 我必须在元素附加到 DOM 后触发 popover 有没有办法触发回调afterv if 语句将元素插入到 DOM 中 在 vuejs 2 中使用它 updat
  • 查找列表中 int 的索引

    有没有办法从列表中获取 int 的索引 寻找类似的东西list1 FindIndex 5 我想在列表中找到 5 的位置 Use the IndexOf 列表的方法 该方法的规范可以在MSDN http msdn microsoft com
  • Polars:在 read_csv 中一次指定所有列的数据类型

    In Polars https www pola rs 如何为中的所有列指定单一数据类型read csv 根据docs https pola rs github io polars py polars html reference api
  • Google 地图 API autocomplete.getPlace() 返回的几何图形不一致

    我在 AngularJS 应用程序中使用 GoogleMaps 自动完成功能 当我调用 autocomplete getPlace 当我尝试使用地方时 有一半的时间它说几何图形为空 一半的时间都有效 似乎无法弄清楚 我唯一的想法是我的代码在
  • 从 MCV2 视图中的模型集合中读取 DataAnnotations

    在我的 MVC2 AdminArea 中 我想为每个域模型创建一个概述表 我正在使用如下所示的 DataAnnotations 作为这些域模型对象的属性 DisplayName MyPropertyName public string Na
  • SQL 中聚合函数的除法行为不符合预期

    我正在尝试在 SQL Server 2008 R2 中做一些交叉表 这部分没问题 但是 如果我尝试获取每个单元格的百分比 我就会遇到问题 这是一个精炼的用例 一项调查 人们给出了他们最喜欢的颜色和最喜欢的水果 我想知道有多少人喜欢给定的水果
  • Strapi database.js / 多个数据库配置

    如果我在 database js 中运行 sqlite 则 Strapi 在本地工作 但如果我运行 postgres 则不行 我在网上发现我可以指定npm run develop使用 sqlite 生产应该使用 postgres 对于参考