해결된 질문
작성
·
289
0
테이블 삭제도 시도해보고 싶어서 터미널에
$ npm run schema:drop 을 입력하였더니 아래와 같은 내용이 나왔습니다.
Drops all tables in the database on your default dataSource. To drop table of a
concrete connection's database use -c option.
옵션:
-h, --help 도움말 표시 [불리언]
-d, --dataSource Path to the file where your DataSource instance is defined.
[필수]
-v, --version 버전 표시 [불리언]
필수 인수가 주어지지 않았습니다: dataSource
dataSource가 주어지지 않았다고 해서 살펴보다
package.json/scripts/schema에 다른 명령어들과는 다르게 경로가 지정되어 있지 않는것 같아
아래와 같이 수정했고,
{
"scripts": {
"seed": "ts-node ./node_modules/typeorm-extension/bin/cli.cjs seed:run -d ./dataSource.ts",
"schema:drop": "ts-node ./node_modules/typeorm/cli.js schema:drop -d ./dataSource.ts",
"schema:sync": "ts-node ./node_modules/typeorm/cli.js schema:sync",
}
}
테이블 삭제에 성공했습니다.
$ npm run schema:drop
> a-nest@0.0.1 schema:drop
> ts-node ./node_modules/typeorm/cli.js schema:drop -d ./dataSource.ts
query: SELECT VERSION() AS `version`
query: SELECT * FROM `INFORMATION_SCHEMA`.`SCHEMATA` WHERE `SCHEMA_NAME` = '00_nestjs_typeorm'
query: START TRANSACTION
query: SELECT concat('DROP VIEW IF EXISTS `', table_schema, '`.`', table_name, '`') AS `query` FROM `INFORMATION_SCHEMA`.`VIEWS` WHERE `TABLE_SCHEMA` = '00_nestjs_typeorm'
query: SELECT concat('DROP TABLE IF EXISTS `', table_schema, '`.`', table_name, '`') AS `query` FROM ` `INFORMATION_SCHEMA`.`TABLES` WHERE `TABLE_SCHEMA` = '00_nestjs_typeorm' INFORMATION_SCHEMA`.`TABLES` WHERE `TABLE_SCHEMA` = '00_nestjs_typeorm'
query: DROP TABLE IF EXISTS `00_nestjs_typeorm`.`channelchats`
query: DROP TABLE IF EXISTS `00_nestjs_typeorm`.`channelmembers`
query: DROP TABLE IF EXISTS `00_nestjs_typeorm`.`channels`
query: DROP TABLE IF EXISTS `00_nestjs_typeorm`.`dms`
query: DROP TABLE IF EXISTS `00_nestjs_typeorm`.`mentions`
query: DROP TABLE IF EXISTS `00_nestjs_typeorm`.`migrations`
query: DROP TABLE IF EXISTS `00_nestjs_typeorm`.`users`
query: DROP TABLE IF EXISTS `00_nestjs_typeorm`.`workspacemembers`
query: DROP TABLE IF EXISTS `00_nestjs_typeorm`.`workspaces`
query: SET FOREIGN_KEY_CHECKS = 1;
query: COMMIT
Database schema has been successfully dropped.
혹시 schema:drop, schema:sync 명령어에 경로를 지정하지 않으신 이유가 있으신지,
경로를 빼놓은 상태로 유지하다가, 정말 필요할 때에만 경로 지정하고 명령어를 사용하는게 좋은지가 궁금합니다.
실수로 입력해서 데이터 손실이 발생하는 것을 막기 위해서일까요?
네 답변 감사합니다!