Ich versuche, TypeORM-Migrationen damit ormconfig.json
auszuführen
{
"name": "default",
"type": "postgres",
"host": "ip-is-here",
"port": 5432,
"username": "name",
"password": "12345",
"database": "db1",
"synchronize": false,
"logging": false,
"entities": ["dist/storage/**/*.js"],
"migrations": ["dist/storage/migrations/**/*.js"],
"cli": {
"entitiesDir": "src/storage",
"migrationsDir": "src/storage/migrations"
}
}
über yarn typeorm migration:run
Aber erhalte eine Fehlermeldung:
Missing required argument: dataSource
Was ich machen muss? Vielen Dank für Ihre Ratschläge!
Lösung des Problems
TypeOrm hat die Verwendung von ormconfig.json in letzterer Version aufgegeben. Sie sollten neue sintaxis verwenden. Erstellen Sie ormconfig.ts und geben Sie Optionen für Ihre Datenbank an, in meinem Fall sieht es so aus:
export const connectionSource = new DataSource({
migrationsTableName: 'migrations',
type: 'postgres',
host: 'localhost',
port: 5432,
username: 'user',
password: 'pass',
database: 'somehealthchecker',
logging: false,
synchronize: false,
name: 'default',
entities: ['src/**/**.entity{.ts,.js}'],
migrations: ['src/migrations/**/*{.ts,.js}'],
subscribers: ['src/subscriber/**/*{.ts,.js}'],
});
Nach dem Ausführen der Verbindung
await connectionSource.initialize();
Dann können Sie Entitäten abrufen, indem Sie verwenden
const myRepo = connectionSource.getRepository(SomeEntity)
Auch Ihre Skripte in peckage.json sollten wie in diesem Beispiel aussehen
"migration:generate": "./node_modules/.bin/ts-node./node_modules/.bin/typeorm migration:generate -d src/modules/config/ormconfig.ts",
"migration:up": "./node_modules/.bin/ts-node./node_modules/.bin/typeorm migration:run -d src/modules/config/ormconfig.ts",
"migration:down": "./node_modules/.bin/ts-node./node_modules/.bin/typeorm migration:revert -d src/modules/config/ormconfig.ts",
Geben Sie nach dem Befehl einfach den Namen für die Migration in der Konsole ohne Option -n ein
Keine Kommentare:
Kommentar veröffentlichen