아직도 에러 원인을 모르겠음.
foreign key 제약을 준 다른 테이블들은 모두 run에 성공하였으나, 딱 encounter 테이블과 연관된 테이블에서만 문제가 발생.
typeorm 드라이버까지 들어가서 콘솔을 찍으며 확인을 해봤으나, 아직까지 원인 파악이 되지 않음.
const { Table, TableForeignKey, TableColumn } = require("typeorm");
module.exports = class CreateEncounterTalkTbl1683711208609 {
async up(queryRunner) {
await queryRunner.createTable(
new Table({
name: "encounter_talk",
columns: [
{
name: "id",
type: "serial",
isPrimary: true,
isNullable: false,
generationStrategy: "increment",
},
],
}),
true,
true
);
await queryRunner.addColumn(
"encounter_talk",
new TableColumn({
name: "encounter_id",
type: "int",
isNullable: false,
})
);
await queryRunner.addColumn(
"encounter_talk",
new TableColumn({
name: "talk_id",
type: "int",
isNullable: false,
})
);
await queryRunner.createForeignKey(
"encounter_talk",
new TableForeignKey({
name: "encounter_id",
columnNames: ["encounter_id"],
referencedColumnNames: ["id"],
referencedTableName: "encounter_situations",
onDelete: "CASCADE",
})
);
await queryRunner.createForeignKey(
"encounter_talk",
new TableForeignKey({
name: "talk_id",
columnNames: ["talk_id"],
referencedColumnNames: ["id"],
referencedTable: "small_talk",
onDelete: "CASCADE",
})
);
}
async down(queryRunner) {
await queryRunner.dropTable("encounter_talk");
}
};
TypeError: Cannot read properties of undefined (reading 'split')
at PostgresDriver.parseTableName (/Users/simchaewon/Desktop/small_talkie/node_modules/typeorm/driver/postgres/PostgresDriver.js:669:30)
at PostgresDriver.parseTableName (/Users/simchaewon/Desktop/small_talkie/node_modules/typeorm/driver/postgres/PostgresDriver.js:651:33)
at PostgresQueryRunner.getTablePath (/Users/simchaewon/Desktop/small_talkie/node_modules/typeorm/query-runner/BaseQueryRunner.js:222:47)
at PostgresQueryRunner.createForeignKeySql (/Users/simchaewon/Desktop/small_talkie/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:2496:48)
at PostgresQueryRunner.createForeignKey (/Users/simchaewon/Desktop/small_talkie/node_modules/typeorm/driver/postgres/PostgresQueryRunner.js:1430:25)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async CreateEncounterTalkTbl1683711208609.up (/Users/simchaewon/Desktop/small_talkie/db/migrations/1683711208609-create_encounter_talk_tbl.js:35:3)
at async MigrationExecutor.executePendingMigrations (/Users/simchaewon/Desktop/small_talkie/node_modules/typeorm/migration/MigrationExecutor.js:225:17)
at async DataSource.runMigrations (/Users/simchaewon/Desktop/small_talkie/node_modules/typeorm/data-source/DataSource.js:260:35)
at async Object.handler (/Users/simchaewon/.nvm/versions/node/v16.19.0/lib/node_modules/typeorm/commands/MigrationRunCommand.js:68:13)
- 혹시라도... 같은 어려움을 겪으신 분이 계신다면 제 코드와 오류 좀 봐주세요...
const { Table, TableForeignKey } = require("typeorm");
module.exports = class CreateEncounterTalkTbl1683711208609 {
async up(queryRunner) {
await queryRunner.createTable(
new Table({
name: "encounter_talk",
columns: [
{
name: "id",
type: "serial",
isPrimary: true,
isNullable: false,
generationStrategy: "increment",
},
{
name: "encounter_id",
type: "int",
isNullable: false,
},
{
name: "talk_id",
type: "int",
isNullable: false,
},
],
}),
true,
true
);
const encounter_fk = new TableForeignKey({
columnNames: ["encounter_id"],
referencedColumnNames: ["id"],
referencedTableName: "encounter_situations",
onDelete: "CASCADE",
});
const talk_fk = new TableForeignKey({
columnNames: ["talk_id"],
referencedColumnNames: ["id"],
referencedTableName: "small_talk",
onDelete: "CASCADE",
});
await queryRunner.createForeignKey("encounter_talk", encounter_fk);
await queryRunner.createForeignKey("encounter_talk", talk_fk);
}
async down(queryRunner) {
await queryRunner.dropTable("encounter_talk");
}
};