【问题标题】:Issue with creating data to sqlite database using typeorm ionic 3使用 typeorm ionic 3 创建数据到 sqlite 数据库的问题
【发布时间】:2018-10-09 23:36:55
【问题描述】:

我正在尝试使用 typeorm 将数据发布到实体中,并收到此错误:

错误错误:未捕获(承诺中):AlreadyHasActiveConnectionError:无法创建名为“default”的新连接,因为具有该名称的连接已经存在并且它现在具有活动的连接会话。

我正在连接到 app.component.ts 中的数据库并且它运行良好,然后在另一个页面 ts 文件中我试图将数据从表单发布到实体,这就是我的问题所在一直告诉我它已经有活动连接,那么我应该怎么做才能使用 typeorm 将数据发布到数据库?

TS:

import { createConnection } from "ionic-orm";

onAddEquipment() {
let options: ConnectionOptions = {
  autoSchemaSync: true,
  driver: {
    type: "websql",
    database: "bexel"
  },
  entities: [
    Equipments
  ]
  }
   createConnection(options).then(async connection => {
   let equipment = new Equipments();
   equipment = this.equipment;
  await connection.entityManager.persist(equipment);
  console.log("equipment has been saved");
});
}

我关注了this 文档。

我们怎样才能写出正确的陈述? 请注意,它可以在没有 typeorm 的情况下使用原生 sqlite 查询,所以表单没有问题,只是我不知道如何正确编写语句。

【问题讨论】:

  • 如果我在服务器应用程序中使用 typeorm,您将在应用程序初始化期间连接并使用连接将设备实例作为事件的一部分持久化(用户单击添加设备按钮)。我想知道是否在示例中以这种方式创建连接,因为它是一个示例(而不是这样做的方式)。
  • 确实有效,查看我发布的答案

标签: database sqlite ionic-framework ionic3 typeorm


【解决方案1】:

对于遇到此问题的任何人,我向选项对象添加了一个名称属性,并且它起作用了:

 let options: ConnectionOptions = {
  autoSchemaSync: true,
  name: 'postEquipments',
  driver: {
    type: "websql",
    database: "bexel"
  },
  entities: [
    Equipments
  ]
  }

【讨论】:

    猜你喜欢
    • 2019-01-28
    • 2021-07-19
    • 2014-06-13
    • 1970-01-01
    • 2015-11-24
    • 2010-10-28
    • 2021-04-29
    • 1970-01-01
    • 2018-09-09
    相关资源
    最近更新 更多