连接类型的实体的声明

时间:2019-01-05 15:57:52

标签: typeorm

我在脚本中尝试了很多将实体导入到创建连接TypeORM中的操作,但是没有正确运行。这样,我就没有准备好将实体与代码一起使用的存储库。

处理typeOrm库的文件:

import * as fs from 'fs'
import * as typeorm from 'typeorm'
import {Public} from './../entity/Public'

export default class ConnectionManager
{
    async createConnection()
    {
        this.connection = await this.connectionManager.create({
            type: 'sqlite',
            database: './src/data/mydb.sql',
            synchronize: true,
            entities: [
                Public,
                './../entity/Public.js',
                './../entity/Public.ts',
                './../entity/Public',
                './../entity/*.js',
                './../entity/*.ts',
                "./../entity/Public.js",
                "./../entity/Public.ts",
                "./../entity/Public",
                "./../entity/*.js",
                "./../entity/*.ts",
                "src/entity/*.ts",
                "src/entity/*.js",
                'src/entity/*.ts',
                'src/entity/*.js',
            ],
        })
    }
  • 公共文件似乎已正确导入脚本中
  • 连接似乎已正确创建(但没有实体)

为什么以及如何正确地将实体声明为typeOrm的连接创建?

2 个答案:

答案 0 :(得分:0)

似乎不是在最新版本的typeorm中创建实体。因此,请使用以下命令使用“ typeorm-model-generator”包生成实体。

npx typeorm-model-generator -d "Database path or Host" -e DatabaseName -o "Path of Entity folder"

这将帮助您生成实体架构。 谢谢。

答案 1 :(得分:0)

您应该在./../entity/中创建一个index.ts文件,并以如下方式导入所有实体类:

import {Public1} from "./public1";
import {Public2} from "./public2";

export default [
   Public1,
   Public2
]

并导入创建连接的文件,如下所示:

import * as fs from 'fs';
import * as typeorm from 'typeorm';
import entities from './../entity';

export default class ConnectionManager
{
    async createConnection()
    {
        this.connection = await this.connectionManager.create({
            type: 'sqlite',
            database: './src/data/mydb.sql',
            synchronize: true,
            entities,
        })
    }

阅读和组织起来会更好。