Closed tjsrn183 closed 1 year ago
lightsail의 config/config.ts에서 dialect가 없는 것 아닌가요? dialect가 undefined라고 뜨네요. 지금 보면 config/config.ts와 config/config.js 둘 다 존재하는데 config/config.js가 config/config.ts랑 서로 다른 내용인 것 아닌가요?
lightsail의 config/config.ts에서 dialect를 설정하는방법이 로컬에서와 다른가요..? 코드에 config파일에는 포함시켜놨습니다.
2차 검증으로 lightsail에서 리눅스 명령어 cd,ls,cat등을통해 dialect코드가 포함되어있는지도 확인하였습니다.
config.ts를 js로 단순변환한 파일이라 같은내용 아닌가요..? npx tsc를 통해 변환시킨..
로컬에선 되는데 lightsail에서만 안되는거면 제가 설정을 잘못한것일까요
아뇨, 로컬과 똑같습니다. config.ts랑 config.js 내용은 당연히 같아야 하는데, 그 당연한 상황이 벌어졌다면 에러도 발생하지 않았겠죠. 당연한 상황이 벌어지지 않은 겁니다. config.js가 틀린 거겠죠.
아무리봐도 해결책이 보이지않네요.. 그래도 좀 더 해보겠습니다. 질문받아주셔서 감사합니다
config.ts랑 config.js 둘 다 올려보세요
import dotenv from "dotenv"; dotenv.config();
import { Dialect } from "sequelize";
const dialect: Dialect = "mysql";
const config = { development: { username: "root", password: process.env.SEQUELIZE_PASSWORD || "", database: "running_mate", host: "127.0.0.1", dialect: dialect, }, test: { username: "root", password: process.env.SEQUELIZE_PASSWORD || "", database: "database_test", host: "127.0.0.1", dialect: dialect, }, production: { username: "root", password: process.env.SEQUELIZE_PASSWORD || "", database: "running_mate_production", host: "127.0.0.1", port: 8001, dialect: dialect, }, };
export default config;
"use strict"; var importDefault = (this && this.importDefault) || function (mod) { return (mod && mod.esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "esModule", { value: true }); const dotenv_1 = __importDefault(require("dotenv")); dotenv_1.default.config(); const dialect = "mysql"; const config = { development: { username: "root", password: process.env.SEQUELIZE_PASSWORD || "", database: "running_mate", host: "127.0.0.1", dialect: dialect, }, test: { username: "root", password: process.env.SEQUELIZE_PASSWORD || "", database: "database_test", host: "127.0.0.1", dialect: dialect, }, production: { username: "root", password: process.env.SEQUELIZE_PASSWORD || "", database: "running_mate_production", host: "127.0.0.1", port: 8001, dialect: dialect, }, }; exports.default = config;
import { Sequelize } from "sequelize"; //import { Sequelize } from "sequelize-typescript"; import User from "./user"; import Post from "./post"; import Run from "./run"; import ChatRoom from "./chatRoom"; import Chat from "./chat"; import configObj from "../config/config"; const env = (process.env.NODE_ENV as "production" | "test") || "development"; const config: any = configObj[env];
export const sequelize = new Sequelize( config.database, config.username, config.password, { host: config.host, dialect: "mysql" } );
User.initiate(sequelize); Post.initiate(sequelize); Run.initiate(sequelize); ChatRoom.initiate(sequelize); Chat.initiate(sequelize);
User.associate(); Post.associate(); Run.associate(); ChatRoom.associate(); Chat.associate();
export { User, Post, Run, ChatRoom, Chat };
입니다
exports.default = config; 지금 config.js 마지막이 이런데 module.exports = config 여야합니다.
와!!!!!!!!!! 선생님 됩니다!!!!!!!!!! 저의 사흘이 선생님에겐 5분이면 되는군요.. 이게 타입스크립트로 export = config; 이렇게 작성해줘야 js로 변환했을때 module.exports = config 이렇게 되는것같네요! 정말 감사합니다. 항상 건강하시고 행복하시고 복은 다받으세요!
이렇게 이슈남기는게 맞는방법인지 잘 모르겠습니다. 미숙하여 죄송합니다. 제 리포지토리에서 running-mate-backend폴더에서 config/config.ts 파일에 설정이 잘못된것인지 모르겠습니다. 로컬에서는 제대로 작동을 하는데 lightsail에서는 위 사진과 같이 에러가 뜹니다. 상황설명을 하겠습니다.
~,KAKAO_ID=,SEQUELIZE_PASSWORD=""이렇게 하였습니다.