GOOGLE ADS

Sonntag, 24. April 2022

Geben Sieorm ein, wenn Sie versuchen, Migrationen auszuführen: Erforderliches Argument fehlt: dataSource

Ich versuche, TypeORM-Migrationen damit ormconfig.jsonauszufü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

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...