Arquivo de configuração default do Knex. Exemplo no próprio site da documentação do Knex. O caminho do knexfile.js pode ser passado por parametro na função Knex.
Knex json
Json de configuração do Knex. Segue a mesma estrutura do knexfile.js, porém já transformado em json. Pode ser passado por parametro na função Knex.
Knex client
Também é possivel passar um client do Knex para o multischemase, para que seja criado um novo client do Knex utilizando a configuração inicial do Knex informado por parametro. Deve se usar a função Knex.
Migrações
O Multischemase vai procurar arquivos de migração no diretório que você informar, porém por default ele vai procurar na pasta migrations na raiz do projeto. Esses arquivos de migração devem atender ao regex informado no arquivo multischemase.json, o regex default é: ^\d+[\w-]+\.sql$. No caso de passar um arquivo no formato knexfile.js, o regex será ignorado. Teste o regex.
Importando
ES6 Modules:
import Multischemase from '@seniorsistemas/multischemase';
Todos os metodos de migração de base do Multischemase retornam promises. Caso tenha algumas dificuldades ou nunca trabalhou com promises, aqui vai alguns links para auxiliar: Promises e async/await.
Documentação
Custom
Metodo assincrono que gera uma instancia de Multischemase. Pode receber por parâmetro um json ou uma string com o caminho para o arquivo de configuração. Se não for informado nenhum parâmetro a função irá procurar pelo arquivo multischemase.json.
Metodo assincrono que gera uma instancia de Multischemase. Pode receber por parâmetro uma string contendo o caminho do knexfile.js, um json ou um client do knex. Se não informado nenhum parâmetro a função irá procurar pelo arquivo knexfile.js. Em casos em que é informado o caminho do knexfile, também pode se informar a env a ser utilizada, por default é utilizado o padrão: process.env.NODE_ENV || 'development'.
Classe que controla e possui as funções de migrações de base multi schema.
Mecanismo de lock
Após executar uma das funções documentadas abaixo, a classe Multischemase checa se uma migration está sendo executada e caso estiver, ela bloqueia a ação atual lançando um erro.
setContext
Metodo que define em qual Contexto o Multischemase deve realizar as próximas migrações ou consultas de migração. Por default o Contexto sempre vai ser atribuído em lowerCase.
Migrate
Realiza as migrações restantes com base no Contexto, na configuração de conexão da base e dos arquivos de migração. O Knex mantém no Contexto as migrações já realizadas, assim ele consegue saber quais migrações precisam ser executadas.
Clean
Realiza o delete do Contexto, removendo todas as tabelas, objetos, funções e etc.
Current
Mostra o nome da ultima migração executada no Contexto.
List
Lista todas as migrações executadas e pendentes no Contexto.
Destroy
Após executar o multischemase e após ter a certeza de que nao sera mais executado nenhuma função do mesmo, deve se destruir o objeto. Chamando a função .destroy()
getClient
Método que retorna a instancia do Knex com o schema atribuído.
Contexto
Os contextos são como o Multischemase trata o multi schema. Cada schema é um contexto diferente para o Multischemase, sempre que é modificado o contexto através da função setContext, é criado um novo objeto do Knex com uma nova conexão apontando para este schema. Você pode sempre trocar o contexto de uma instancia do Multischemase, desde que ele não esteja com nenhuma execução em andamento.
Todo contexto passado para o multischemase, será tratado como lowerCase.
OBS: Não recomendamos que você tenha várias instancias de Multischemase apontando para vários contextos de uma unica base. Se você for trabalhar com uma única base, recomendamos utilizar uma unica instancia de Multischemase.
Exemplos
Dentro da pasta examples possui alguns exemplos de uso. Para testar basta ter um postgres local com user e pass como postgres. Para rodar basta executar npm start. É possível mudar a configuração default dos exemplos alterando o arquivo examples/multischemase.json