能否将现有的数据库连接到Strapi CMS?

14

我正在尝试使用Strapi CMS创建API。我有一个现有的PostgreSQL + postgis数据库,我想在一个Strapi项目中连接和使用这个数据库。

您知道是否可以像这样做吗?


1
我从未接触过 Strapi,但如果我没错的话,您可以修改 Strapi 项目中的连接字符串以与现有的 Postgres 数据库匹配。 - Vivek S.
谢谢建议,我刚尝试使用连接字符串连接 Strapi,没有出现错误,但 Strapi 无法“看到”数据库中的现有表。有什么想法吗?谢谢。 - Elena Valari
你是否连接到了错误的数据库实例中的PostgreSQL? - Jim Jones
2
我有一个类似的挑战。这个稍微不同的问题似乎对我有所帮助 https://dev59.com/uqzka4cB1Zd3GeqP_qOg - Mark Collins
据我所知,你无法这样做。如果你正在寻找一个不依赖特定数据模式的无头 CMS,请尝试 Directus。此外,虽然我还没有尝试过,但你应该看看这个基于 PostgreSQL 的 Firebase 替代品 Supabase - Otoniel Guajardo
显示剩余2条评论
4个回答

9

我也在寻找答案,但似乎唯一的答案是否定的,因为Strapi不是无结构约束的:你必须采用他们的数据库结构才能使用Strapi。

如果我能找到一个方法询问Stack Overflow关于无结构约束的无头CMS……而不被标记为无效/主观问题……


2
尝试访问:https://softwarerecs.stackexchange.com/questions/tagged/cms - Shog9
你找到了无架构头部内容管理系统吗? - user257980
1
不,最终我还是自己写了一个...虽然这感觉像是一个巨大的倒退(“重复造轮子”)...但我从未找到一个好的替代方案。 - machineghost
5
你可以查看Directus CMS,它是模式无关的,并且不会像Strapi一样删除你所有的表格...哎呀。 - Rick Penabella
https://directus.io/ - leela
1
Directus在某种程度上是与模式无关的。它不会删除表格,而且你可以配置它使用现有的表格(一个痛苦的过程),但是当你设置关系字段时,很难让它使用你自己的交叉表格来处理多对多的关系,它总是试图创建自己的交叉表格。Directus也很难在没有UI点击或跨环境的情况下进行配置,所以...在各种项目中与@machineghost面临类似的困境。 - undefined

6
在创建 Strapi 应用程序时,您可以选择自定义并在那里设置数据库。要从该数据库导入现有表,请使用 Strapi 管理面板创建一个模拟表,在项目根文件夹的 /api 文件夹中复制并粘贴刚刚创建的表数据,并将该文件夹的名称更改为表名,然后对该文件夹中的文件执行相同操作。
在 api>(您的表文件夹)>config>routes.json 文件中更改表名,我将添加一个链接以帮助您更好地理解。
有关在 Strapi 中使用现有数据库配置的详细信息: configure-strapi-postgresql 我找不到设置现有数据库的教程,但这是针对 MySQL 的步骤是类似的。 strapi with sql

请注意 Strapi 页面上的警告:Strapi 应用程序不应连接到预先存在的数据库,也不应由 Strapi 应用程序创建,也不应连接到 Strapi v3 数据库。Strapi 团队不会支持此类尝试。尝试连接到不受支持的数据库可能会导致数据丢失。 https://docs.strapi.io/developer-docs/latest/setup-deployment-guides/configurations/required/databases.html#configuration-structure - Manuela

3
最好的方法是使用Strapi创建具有相同结构的新数据库,然后迁移数据。

0

您正在使用Strapi CMS创建API。

您的数据库没有必要是Strapi数据库。

只需使用Strapi构建您的API即可。

或者,您可以像@Augusto Rodriguez所说的那样使用此教程将Strapi集成到现有数据库中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接