类型ORM:尝试运行迁移时"No migrations pending"



重现显示问题的小存储库的步骤:

我正在做一个关于nestjs的typeform项目。问题是即使在生成迁移文件后运行迁移后,我得到没有迁移正在等待

我使用的命令是

"scripts": {
"typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli -d ./dist/modules/config/app-migration.js",
"migration:create": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli migration:create ./src/migrations/migration",
"migration:run": "npm run typeorm -- migration:run",
"migration:revert": "npm run typeorm -- migration:revert",
"migration:generate": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli -d ./src/modules/config/app-migration.ts migration:generate ./src/migrations/migration"
},

软件包版本:-

"typeorm": "^0.3.11",
"typeorm-cli": "^1.0.7"
"ts-node": "^10.0.0",
"tsconfig-paths": "4.1.0",

BTW: my src/module/config/app-migration。文件如下所示

import { cwd } from 'process';
import { DataSource, DataSourceOptions } from 'typeorm';
import configuration from './configuration';
import { config } from 'dotenv';
config();
const {
database: { username, password, database, host, port, schema },
nodeEnv,
} = configuration();
let entities = '/src/**/*.entity.ts';
let migrations = '/src/migrations/*.ts';
if (nodeEnv.toLowerCase() === 'production') {
entities = '/dist/**/*.entity.js';
migrations = '/dist/migrations/*.js';
}
const dataSourceObj: DataSourceOptions = {
type: 'postgres',
host: host,
port: parseInt(port),
username: username,
password: password,
database: database,
schema: schema,
entities: [cwd() + entities],
migrations: [cwd() + migrations],
extra: {
seeds: [cwd() + '/src/seeds/*.ts'],
},
migrationsTableName: 'migrations',
synchronize: false,
dropSchema: false,
};
export const dataSource = new DataSource(dataSourceObj);
export default dataSourceObj;

我试过了NPM运行构建NPM运行迁移:run

出来把

base-nest-project@0.0.1迁移:运行NPM run typeform——migration:run

base-nest-project@0.0.1 typeormTs-node -r tsconfig-paths/register ./node_modules/typeorm/cli -d ./dist/modules/config/app-migration.js

查询:SELECT * FROM current_schema()查询:SELECT version();查询:SELECT * FROM "information_schema";在"table_schema"= 'rms-academic' AND ';="迁移"查询:SELECT * FROM "schema" migrations"migrations"按"id"排序DESC没有挂起的迁移

in typeform version 0.3.x您必须提供实体、迁移……与数组,不赞成使用glob模式

那么试试这样做就可以了:

const ENTITIES=[User]
const MIGRATIONS=[migration1]
export const DATA_SOURCE_OPTIONS: DataSourceOptions = {
type: 'postgres',
host: process.env.DATABASE_HOST || 'localhost',
port: parseInt(process.env.DATABASE_PORT, 10),
database: process.env.DATABASE_NAME,
username: process.env.DATABASE_USER,
password: process.env.DATABASE_PASSWORD,
entities: ENTITIES,
migrations: MIGRATIONS,
migrationsTableName: 'typeorm_migrations',
namingStrategy: new SnakeNamingStrategy(),
migrationsRun: false,
synchronize: false,
};
export default new DataSource(DATA_SOURCE_OPTIONS);