Problemas ao nomear migration com typeorm

Caros, estou com problemas ao direcionar o caminho da migration e direcioná-la.

Descrição do erro:

❯ yarn migrations -n CreateUsers
yarn run v1.22.18
warning ../../../../../package.json: No license field
$ typeorm migration:create src/database/migrations/ -n CreateUsers
typeorm migration:create <path>

Creates a new migration file.

Opções:
  -h, --help       Exibe ajuda                  [booleano]
  -o, --outputJs   Generate a migration file on Javascript
                   instead of Typescript
                                [booleano] [padrão: false]
  -t, --timestamp  Custom timestamp for the migration name
                                  [número] [padrão: false]
  -v, --version    Exibe a versão               [booleano]

Argumento desconhecido: n
error Command failed with exit code 1.

Estou estou utilizando typeorm para fazer toda gestão com o bando de dados, porém ao criar a migration, o arquivo não aceita o parâmetro -n (para nomear a migration), sendo assim só está disponível a opção de definir o caminho de salvamento definindo um nome padrão.

"migrations": "typeorm migration:create src/database/migrations/"

Consultei a documentação do typeorm e lá consta o seguinte:

  • "migrationsTableName": "migrations" - Especifique esta opção apenas se precisar que o nome da tabela de migração seja diferente de "migrations" .

legal, mas definir um nome irá defini-lo como padrão.

Para que fique mais claro, a documentação pede pra que usemos o arquivo de configuração ormconfig.json para definir as configurações da conexão, nesse arquivo é possível definir a CLI indicando o caminho de salvamento, porém ao continuar, quando criamos o arquivo que chama a conexão, ele informa que createConnection está obsoleto e logo entrará em desuso. O que me obriga a utilizar DataSource para configurar a conxão, porém DataSource não permite especificar a CLI e, só me permite criar tabelas com um nome padrão.

import { DataSource } from "typeorm";

const datasource = new DataSource({
    type: "postgres",
    host: "localhost",
    port: 5432,
    username: "postgres",
    password: "docker",
    database: "marvel_app",
    migrations: [ "src/database/migrations/*.ts" ]
})

datasource.initialize()
    .then(()=> {
        console.log('Connected')
    }).catch((err)=> console.log(err))


export default datasource```

Sou novato com o uso do typeorm e gostaria muito se pudessem me dar um feedback por algo fora de contexto. O que eu preciso, é de uma maneira que me permita personalizar o nome da migration no momento em que for criá-la.

Bom, eu já havia encontrado a solução mas aguardei para poder aceitar alguma possível resposta. Como não houve, sigo aqui respondendo minha própria pergunta.

No meu caso consegui contornar a situação instalando uma versão anterior do typeorm (0.2.24). Com isso, antes se era necessário declarar um Data source para instanciar o banco dados, agora posso usar as configurações do arquivo ormconfig.json normalmente com as definições de rota de salvamento e o uso do parametro -n para nomear a migration.

1 curtida