はじめに
今回はNestJSもそうですが、
そもそもTypeScriptもTypeORMも初めてなチャレンジングな開発で、
DBスキーマの変更を行いたいため、色々参考にしながら進めていながらも、
狙ったフォルダにmigrationファイルが作成されない問題が発生しているので
解決できるまでゆるっとメモを残そうというメモである。
一応、下記のサイトを参考にはしている。
起こっていること
マイグレーションファイルを作るとルートフォルダに作成されてしまう
→ 本当はsrc/migration配下にできてほしい
$ npm run typeorm migration:create -- -n AddRestaurantDescription
↑こんな感じでルートフォルダにできてしまう。
設定の確認を行う
package.jsonの設定を確認
"scripts": { ~~~~~~~~~~~~~~~~~~~~ "typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js --config src/config/typeorm.config.ts" },
特に今回は、–configオプションで--config src/config/typeorm.config.ts
を指定しているのでsrc/migration配下にmigrationファイルが指定できていると思っているのだが、、そうはなっていない。
2020年1月15日追記
そもそもConfigオプションはディレクトリを指定するオプションでないため、まったく関係ない。
ディレクトリを指定する場合は、-- dir src/migration
こんな感じで行えば問題なかった。
src/config/typeorm.config.tsの記述を確認する
import { TypeOrmModuleOptions } from '@nestjs/typeorm'; export const typeOrmConfig: TypeOrmModuleOptions = { type: 'postgres', host: 'localhost', port: 5432, username: 'ああああ', password: 'いいいい', database: 'うううう', entities: [__dirname + '/../**/*.entity.{js,ts}'], ← これも最初エラーになってた synchronize: true, migrations: ['src/migration/*.ts'], cli: { migrationsDir: 'src/migration', }, };
2020年1月15日追記
やっぱりここは問題なかった。migrationDir
でsrc/migrationフォルダ配下を指定しておりここも問題なさそうである。。。
2020年1月16日追記
package.jsonのscriptsリストに--dir
オプションを記載しているとtypeorm migration:run
未知の引数がある旨のエラーが発生するのでこれは指定してはいけない。
そもそも、ormconfig.jsonはルートフォルダに配置すればそもそも問題ない。
2020年1月15日追記(解決した)
→ そもそも、typeormのConfigmigrationファイルはルートフォルダを見に行く設定となっている。
→ 今回はルートフォルダにormconfig.json
を配置することで正常にmigrationが動作するようになった。
こちらを参照したのでシェア