使用种子文件将数据从 JSON 文件添加到 Prisma 数据库

     2023-03-08     156

关键词:

【中文标题】使用种子文件将数据从 JSON 文件添加到 Prisma 数据库【英文标题】:Add data from a JSON file to the Prisma database with a seed file 【发布时间】:2019-06-22 07:21:18 【问题描述】:

我想用 JSON 文件中的一些数据来为我的数据库播种

//continent-data.json
[
  
    "continent": "far east",
    "imageURL": "#"
  ,
  
    "continent": "ASIA",
    "imageURL": "#"
  ,
]

这是我的 seed.js 文件

//seed.js
const dotenv = require('dotenv');
const  Prisma  = require('./src/generated/prisma-client');
const continentData = require('./continent-data.json');

dotenv.config();

const db = new Prisma(
  secret: process.env.PRISMA_SECRET,
  endpoint: process.env.PRISMA_ENDPOINT
);

const seedContinents = () => 
  // adding continents to the data
  Promise.all(
    continentData.map(async continentItem => 
      const  imageURL, continent  = continentItem;
      const response = await db.createContinent(
        data: 
          name: continent || 'default name',
          imageURL,
        
      );
      return response;
    )
  );
;

seedContinents();

当我运行node seed.js 它失败并抛出以下错误

UnhandledPromiseRejectionWarning:错误:“ContinentCreateInput!”类型的变量“$data”预期值但得到:"data":"name":"far east","imageURL":"#","destinations":[]。原因:'name' 预期的非空值,发现为空。

我相信我正在以正确的格式传递正确的数据。但它说名称字段有一个空值。但是错误消息本身说名称字段有一个字符串值“远东”

我也提供了 Prisma 架构的必要部分。

【问题讨论】:

【参考方案1】:

尝试更改将数据提供给 db.createContinent 函数的方式。

 const response = await db.createContinent(
          name: continent || 'default name',
          imageURL,
      );

只需传递数据而不是创建包装数据对象。

【讨论】:

【参考方案2】:

您可以将在顶部导入的 Prisma 对象(Prisma 客户端)视为辅助类。在您实例化它之后,您就可以访问大部分反映 Prisma Server CRUD 函数的 javascript 函数,这些函数是根据您的 datamodel.graphql 文件为您生成的。

如果您查看 Prisma 客户端页面上的示例文档,您会发现pass data to get the same result 有两种方法。一方面你可以调用javascript函数:

db.createContinent(
      name: continent || 'default name',
      imageURL,
  );

另一方面,您可以直接在 Prisma 端点上运行 GraphQL 查询,

mutation 
  createContinent(data: 
    name: continent || 'default name',
    imageURL
  ) 
    name
    continent
  
 

您可以在 GraphQL 游乐场中执行的第二种方式是直接与数据交互。使用 Prisma 客户端自动生成的 javascript 函数的第一个示例是一个包装器,它只需要输入数据而不需要数据:对象包装器。所以没有

data: ContinentCreateInput object shape

文档并没有真正详细介绍它,我也花了一段时间才想知道为什么它不适合您在 GraphQL 类型中指定的形状。

第一种方法是从原始数据库 CRUD 方法中抽象出来并保护您的应用程序层的推荐方法。见Prisma client

【讨论】:

使用 COPY 命令将数据从 JSON 文件复制到 Redshift

】使用COPY命令将数据从JSON文件复制到Redshift【英文标题】:CopydatafromaJSONfiletoRedshiftusingtheCOPYcommand【发布时间】:2014-12-0510:08:13【问题描述】:我正在尝试使用COPY命令和JSONPath将JSON文件加载到Redshift。据我了解,对于JSON文件中... 查看详情

使用 pyinstaller 将 .json 文件添加到 exe 文件

】使用pyinstaller将.json文件添加到exe文件【英文标题】:adding.jsonfilestoanexefileusingpyinstaller【发布时间】:2020-09-1223:24:26【问题描述】:我正在使用pyinstaleer从python文件创建一个.exe文件,我必须向其中添加一个.json文件。我以多种... 查看详情

如何在使用多处理时将数据添加到 json 文件?

】如何在使用多处理时将数据添加到json文件?【英文标题】:Howtoadddatatoajsonfilewhilemakinguseofmultiproccesing?【发布时间】:2021-07-1207:50:10【问题描述】:我正在使用一个用户友好的基于json的面向文档的数据库,名为TinyDB。但是我无... 查看详情

将数据添加到现有 JSON 文件而不覆盖它

】将数据添加到现有JSON文件而不覆盖它【英文标题】:AddingdatatoanexistingJSONfilewithoutoverwritingit【发布时间】:2022-01-2218:42:26【问题描述】:想法:我想将JSON对象添加到现有JSON文件,但不覆盖文件中的现有数据。uid-003对象应该在... 查看详情

如何使用 Python 或其他语言将数据从 cassandra 导出到 Json 文件?

】如何使用Python或其他语言将数据从cassandra导出到Json文件?【英文标题】:HowtoexportdatafromcassandratoJsonfileusingPythonorotherlanguage?【发布时间】:2018-01-1807:47:23【问题描述】:我想将数据从Cassandra导出到Json文件,因为Pentaho不支持我... 查看详情

使用databricks中的pyspark将多个json文件从blob存储读取到数据帧

】使用databricks中的pyspark将多个json文件从blob存储读取到数据帧【英文标题】:Readmultiplejsonfilesfromblobstoragetodataframeusingpysparkindatabricks【发布时间】:2021-12-1711:18:36【问题描述】:我正在尝试将所有json文件存储在blob存储的子文件... 查看详情

无法将完整数据从 json 文件加载到数据框中

...间】:2017-05-0317:07:57【问题描述】:我是python新手。尝试使用此link为我的案例构建代码我有200kjson文件,需要将其放入数据框中。为了实现这一点,我为我的问题制作了示例案例,如下所示。我在子目录中有一个包含json文件的... 查看详情

我将如何将 JSON 文件从 web 服务保存到本地 JSON 文件?

...【发布时间】:2013-09-0509:23:11【问题描述】:我目前正在使用来自远程Web服务的JSON数据(NSArray格式)填充UITableView。我想通过调用web服务并将JSON数据存储到本地文件来加速应用程序。另外,这是一 查看详情

Laravel将变量从一个种子文件传递到另一个?

】Laravel将变量从一个种子文件传递到另一个?【英文标题】:Laravelpassingvariablesfromoneseedfiletoanother?【发布时间】:2015-11-2707:41:22【问题描述】:我创建了多个种子文件,我的主DatabaseSeeder文件如下所示:<?phpuseIlluminate\\Database\\... 查看详情

将 CSV 文件从 JSON 数据上传到 S3 存储桶

...ONdata【发布时间】:2018-06-0822:35:13【问题描述】:我正在使用节点js,我正在尝试将CSV文件上传到AmazonS3存储桶,它应该给我csv的url作为响应。我有以下格式的JSON数据:-["a","b","c","d"]我怎样才能达到同样的效果?【问题讨论】:... 查看详情

是否可以使用 Xcode 构建脚本将 JSON 文件下载到应用程序包?

】是否可以使用Xcode构建脚本将JSON文件下载到应用程序包?【英文标题】:IsitpossibletouseanXcodebuildscripttodownloadJSONfilestotheappbundle?【发布时间】:2014-09-0616:36:23【问题描述】:我有一个本地运行的Web服务器,它从多个端点提供JSON... 查看详情

将数据从雪花卸载到 s3 时,如何将日期时间戳添加到 zip 文件?

...在写入s3的文件名添加时间戳。到目前为止,我已经能够使用下面的示例将文件写入AWSS3。有人可以指导我如何在文件名中添加日期时间戳吗?copyinto@s3 查看详情

如何将表单数据添加到 JSON 文件?

】如何将表单数据添加到JSON文件?【英文标题】:HowtoaddformdatatoaJSONfile?【发布时间】:2016-01-1622:54:32【问题描述】:现在我有这个表格:<formname=\'steampaypalinfo\'action=\'profile.php\'method=\'post\'>PayPalEmail:<br><inputtype=\'email\'... 查看详情

将 JSON 文件中的项目数据动态加载到 React

】将JSON文件中的项目数据动态加载到React【英文标题】:DynamicallyLoadProjectDatafromJSONfileintoReact【发布时间】:2018-07-1103:34:52【问题描述】:我正在尝试从JSON文件加载项目列表并将它们显示为具有可以选择的li的列表。注释部分是... 查看详情

如何将项目添加到 json 文件格式化数组

...ttedarray【发布时间】:2013-04-1712:50:48【问题描述】:我只使用1个数据插入到我的json文件中。$data=$_POST[\'myusernamer\'];$inp=file_get_contents(\'7players.json\');$tempArray=json_decode($inp); 查看详情

我如何通过 json 将数据从我的设备发送到我的 php 文件

...我无法将数据从我的设备发送到我的php文件。我正在尝试使用json从设备发送数据。这是我的php代码$cevap=$_POST["cevap"];echo$cevap;和我的客户代码:NSString*postBod 查看详情

JavaScript:如何将数据添加到 JSON 文件中的数组

】JavaScript:如何将数据添加到JSON文件中的数组【英文标题】:JavaScript:howtoadddatatoanarrayinsideJSONfile【发布时间】:2018-08-2515:17:04【问题描述】:我正在尝试构建一个简单的Discord.js机器人,但在将用户输入添加到存储在json文件中... 查看详情

从命令行界面将命名空间添加到 composer.json 文件中的 PSR-4-Section

】从命令行界面将命名空间添加到composer.json文件中的PSR-4-Section【英文标题】:AddnamespacetoPSR-4-Sectionincomposer.jsonfilefromcommandlineinterface【发布时间】:2018-01-2006:26:46【问题描述】:我正在寻找一种从命令行界面将命名空间添加到我... 查看详情