地图集提供者类型
使用 Atlas 与 类型ORM 以代码管理您的数据库计划。 通过连接您的 TypeORM 模型到 Atlas, 您可以直接用 TypeScript 或 JavaScript 定义和编辑您的计划。 然后阿特拉斯系统会自动规划和应用数据库的迁移计划, 不需要手动写入迁移.
Atlas将自动CI/CD工作流程带入您的数据库,同时提供内建支持 测试, (中文(简体) ), 线性, (中文(简体) ), 计划 漂移探测,以及 计划监测。它也允许您以高级程序扩展 TypeORM 数据库对象,如触发器、行级安全,以及自定义功能等,不以本地方式支持.
使用大小写
- 申报移徙 - 使用类似地表
atlas schema apply --env typeorm命令将您的 TypeORM 方案应用到数据库. - 自动移徙规划 - 使用( I)
atlas migrate diff --env typeorm以自动规划数据库的更改和生成 a 从当前数据库版本移到您 TypeORM schema 定义的想要的版本.
安装
通过运行从 macOS 或 Linux 安装 Atlas :
curl -sSf https://atlasgo.sh | sh
见 地图集.io 用于更多的安装选项.
通过运行安装提供者 :
npm i @ariga/atlas-provider-typeorm
通过运行确定您的所有节点依赖性 :
npm i
独立
如果您所有的 TypeORM 实体都存在于单个节点模块中, 您可以使用提供者直接将您的 TypeORM 计划加载到 Atlas.
在您的工程目录中创建新文件 atlas.hcl 内容如下:
data "external_schema" "typeorm" {
program = [
"npx",
"@ariga/atlas-provider-typeorm",
"load",
"--path", "./path/to/entities",
"--dialect", "mysql", // mariadb | postgres | sqlite | mssql
]
}
env "typeorm" {
src = data.external_schema.typeorm.url
dev = "docker://mysql/8/dev"
migration {
dir = "file://migrations"
}
format {
migrate {
diff = "{{ sql . \" \" }}"
}
}
}
作为图书馆
在 TS 脚本
想要使用提供者作为TS程序,可以使用提供者如下:
创建名为新文件 load.ts 内容如下:
#!/usr/bin/env ts-node-script
import { loadEntities } from "@ariga/atlas-provider-typeorm/build/load";
// import typeorm entities you want to load
import { User } from "./entities/User";
import { Blog } from "./entities/Blog";
loadEntities("mysql", [User, Blog]).then((sql) => {
console.log(sql);
});
在《联合提交的材料》中
如果您想将提供者用作JS程序,您可以使用提供者如下:
创建名为新文件 load.js 内容如下:
#!/usr/bin/env node
const loadEntities = require("@ariga/atlas-provider-typeorm/build/load").loadEntities;
const EntitySchema = require("typeorm").EntitySchema;
// require typeorm entities you want to load
const post = new EntitySchema(require("./entities/Post"));
const category = new EntitySchema(require("./entities/Category"));
loadEntities("mysql", [post, category]).then((sql) => {
console.log(sql);
});
下一步, 在您的工程目录中创建一个新文件 atlas.hcl 内容如下:
data "external_schema" "typeorm" {
program = [
"ts-node",
"load.ts", // for javascript: "node", "load.js"
]
}
env "typeorm" {
src = data.external_schema.typeorm.url
dev = "docker://mysql/8/dev"
migration {
dir = "file://migrations"
}
format {
migrate {
diff = "{{ sql . \" \" }}"
}
}
}
使用量
一旦安装了提供者,您就可以使用它将您的 TypeORM 计划应用到数据库:
应用
你可以用这个 atlas schema apply 命令来规划和应用您当前 TypeORM 策略的迁移
到您的数据库。 检查目标数据库并将其与目标数据库进行比较
TypeORM计划并创建一个迁移计划. 阿特拉斯会促使你确认迁移计划
在将其应用到数据库之前.
atlas schema apply --env typeorm -u "mysql://root:password@localhost:3306/mydb"
这里 -u 旗帜接受 網址 页:1
目标数据库.
抖动
Atlas支持a 版本迁移
工作流程,其中对数据库的每次更改都会被版本并记录在迁移文件中. 你可以用这个
atlas migrate diff 命令以自动生成将迁移数据库的迁移文件
从最新版本到当前 TypeORM 计划.
atlas migrate diff --env typeorm
支持的数据库
提供者支持下列数据库:
- MySQL 数据
- 马里亚DB
- 邮递SQL
- SQL 点
- 微软 SQL 服务器
问题
请报告本报告中的任何问题或特征要求 阿里加/阿特拉斯 仓库.
许可证
本项目根据以下规定获得许可证: Apache 许可证 2.0。 。 。 .