TypeORM 是一个强大的 TypeScript ORM 框架,它支持多种数据库(MySQL,PostgreSQL,SQLite,SQL Server 等)和 Deno 运行时环境。TypeORM 支持自动生成数据库表格,只需要简单的配置即可。本文将介绍如何在 Deno 中使用 TypeORM 自动创建数据库表格。
安装必要的依赖
在开始使用 TypeORM 之前,需要先安装 Deno 和相关依赖。首先需要安装最新版本的 Deno:
$ curl -fsSL https://deno.land/x/install/install.sh | sh
然后,需要在项目中安装 TypeORM 和相关驱动程序。例如,如果要连接 MySQL 数据库,则需要安装以下依赖:
$ deno install --allow-run --allow-read https://deno.land/x/mysql_install/mysql_install.ts $ deno install --allow-env --allow-net --allow-read --allow-run https://deno.land/x/mysql/mod.ts $ deno install --allow-write https://deno.land/x/dotenv/dotenv.ts $ deno install --allow-net https://deno.land/x/typeorm/cli.ts
配置 TypeORM
TypeORM 需要一些配置来连接数据库和自动生成表格。可以将这些配置保存在 .env
文件中。以下是一些配置示例:
DB_HOST=localhost DB_PORT=3306 DB_USERNAME=root DB_PASSWORD=123456 DB_DATABASE=test
在这里,我们使用 MySQL 作为示例数据库,使用用户名和密码进行连接,数据库名称为 test
。请根据实际需求进行修改。
在项目中创建 ormconfig.ts
文件,可以使用以下代码:
-- -------------------- ---- ------- ------ - ----------------- - ---- ---------- ----- ------- ----------------- - - ----- -------- ----- ------------------------ ----- ------------------------- --------- ---------------------------- --------- ---------------------------- --------- ---------------------------- ------------ ----- --------- ----------------------- -- ------ ------- -------
此配置使用 .env
文件指定连接数据库的详细信息,并指定了要同步数据库中的表格。每当应用程序启动时,TypeORM 将自动检查代码中的实体定义,与数据库中的表格进行比较,并创建缺少的表格。
此配置中,entities
指定了项目中实体定义的路径。例如,如果实体文件位于 src/entity/User.ts
中,则应该设置为 ['scr/entity/**/*.ts']
。
创建实体
在 TypeORM 中,实体是映射到数据库表格的 JavaScript 类。要定义一个实体,需要创建一个继承于 BaseEntity
的类,并使用装饰器指定实体和数据库中的表格的属性和行为。
以下是一个用户实体的示例:
-- -------------------- ---- ------- ------ - ------- ------- ---------------------- - ---- ---------- --------- ------ ----- ---- - ------------------------- --- ------- --------- ----- ------- --------- ------ ------- --------- --------- ------- -
此实体定义了一个名为 users
的表格,包含 id
、name
、email
和 password
列。其中,@PrimaryGeneratedColumn()
指定 id
列作为自增标识符。
运行自动生成表格
当所有配置和实体定义准备就绪后,可以使用 TypeORM 命令行工具来运行自动生成表格的操作:
$ deno run --allow-env --allow-net --allow-read --allow-run https://deno.land/x/typeorm/cli.ts migration:generate -n create-users $ deno run --allow-env --allow-net --allow-read --allow-run https://deno.land/x/typeorm/cli.ts migration:run
以上命令将:
- 根据实体定义生成一个名为
create-users
的迁移文件,用于后续获取并更新数据库表格的结构。 - 运行 migrations 并在数据库中创建表格。
现在,可以使用以下代码获取生成的表格:
import { createConnection } from 'typeorm'; import config from './ormconfig.ts'; await createConnection(config); const users = await connection.manager.find(User); console.log(users);
此代码将连接到数据库,获取用户列表并打印到控制台。如果所有东西都设置正确,将输出刚刚创建的 users
表格的内容。
结论
使用 TypeORM 自动生成表格,可以大大简化表格创建和定义的过程。只要定义好实体类和数据库配置,使用 TypeORM CLI 即可自动创建匹配实体结构的表格。
在实际开发中,需要根据实际情况对代码进行优化和安全性检查,例如在连接数据库时附加安全选项,使用专业的加密和哈希函数来存储密码等。
这里仅提供最基本的操作,希望能帮助读者理解如何在 Deno 中使用 TypeORM 自动生成数据库表格。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/672430982e7021665e129181