【发布时间】:2021-02-24 13:51:39
【问题描述】:
我希望我的措辞正确。
据我了解,SQL 数据必须遵循严格的模式格式
例如
{
"id": 123,
"name": "Jesus",
"middleName": "H.",
"lastName": "Christ"
}
我导入 SQL 数据库的数据都必须遵循这种格式,对吗?要适应预定义的 SQL Schema?
我问是因为一家初创公司聘请我来修复他们的应用程序。它一直在使用GraphCool 获取数据,但该服务已关闭。
他们导出了所有数据并给了我包含所有数据的文件。
要将曾经在GraphCool中的数据迁移到Prisma 2,首先需要我将数据导入PostgreSQL。
数据位于几个非常大的文件中。而且它不遵循结构。
例如,在其中一个文件的开头,数据的结构如下:
{
{
"valueType": "nodes",
"values": [
{
"tagName": "etc",
"updatedAt": "etc",
"_typeName":"etc",
"id":"etc",
"createdAt":"etc"
},
{
"tagName": "etc",
"updatedAt": "etc",
"_typeName":"etc",
"id":"etc",
"createdAt":"etc"
},
{ ... }
..但后来,在同一个文件中,结构变成了令人费解的混乱:
{
"tagName":"etc",
"updatedAt":"etc",
"_typeName":"etc",
"id":"etc",
"createdAt":"etc"
},
{
"updatedAt":"etc",
"_typeName":"etc",
"data": {
"value": [
{
"form_1": {
"timestamp":"etc",
"model": {
"type":"etc",
"key":"etc",
"content": {
"text":"etc",
"smallKey":"etc",
"listText":"etc"
},
...
有没有办法将大块数据(无论结构如何)导入 PostreSQL 数据库?
【问题讨论】:
-
在考虑如何导入数据之前,您需要考虑如何使用数据。如果您要将它与特定工具一起使用,该工具需要/期望什么结构?如果您要在特定方面查询它,它们是什么?您需要能够根据这些“杂乱”数据进行查询,还是可以将其视为未处理的向用户显示的单个 blob?在一种极端情况下,您可以将整个数据作为单个文本字符串导入单个表的单个列中;但这不太可能有用。
-
我真的不确定。对于这项任务,我对此的理解可能没有达到它需要的水平。他们的应用程序有很多用户,并且托管服务消失了,因此应用程序被破坏了。我认为这只是将他们的数据提供给新的托管服务,并将应用程序(react-native)指向新服务的问题。
-
是的,听起来你可能超出了你的深度。您不会在 托管服务 之间移动 - 这意味着您在两个地方都使用相同的技术,而只是为服务器支付不同的公司费用;听起来正在发生的事情是您在 托管应用程序 之间移动,这些应用程序具有相同的目的,但工作方式不同。除非新服务有旧服务导出格式的导入器,和兼容的 API 可用于您的应用实际处理此数据的任何操作,否则您将需要花一些时间了解数据的含义意思是。
-
切换是从 GraphCool 到 Prisma 2。所以......不,它没有你提到的方便的东西。感谢您的评论,除非需要新的 SO 帖子,否则我将花时间处理此问题并返回此帖子进行更新或(可能提供更多帮助)。再次感谢!
标签: json reactjs database postgresql react-native