数据库迁移
配置数据库连接
./src/data-source.ts
ts
export const AppDataSource = new DataSource({
type: "mysql",
connectorPackage: "mysql2", // mysql8.0 用 mysql2 插件
host: "127.0.0.1",
port: 3306,
username: "test",
password: "test",
database: "test",
dropSchema: false, // 每次连接时删除数据表
synchronize: false, // 每次连接时自动创建数据库架构,表和字段的创建应该使用迁移功能实现
logging: true,
logger: "file", // 日志记录到文件中
entities: ['src/entity/*.ts'], // 路径要相对于执行命令所在目录
migrations: ['src/migration/*.ts'], // 路径要相对于执行命令所在目录
subscribers: []
})创建迁移文件
sh
typeorm migration:create src/migration/create-test-table
# Migration D:\web-www\RuoYi-NodeJS\src\migration/1696836975501-create-test-table.ts has been generated successfully./src/migration/1696836975501-create-test-table.ts
ts
import { MigrationInterface, QueryRunner, Table } from "typeorm"
export class CreateTest1Table1696837012074 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.createTable(
new Table({
name: "test",
columns: [
{
name: "id",
type: "int",
isPrimary: true
},
{
name: "name",
type: "varchar"
}
]
}),
true
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
}
}执行迁移文件
sh
pnpm run typeorm migration:run -d .\src\data-source.ts