@prisma-psm/core 1.0.5 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/.idea/developer-tools.xml +6 -0
  2. package/README.en.md +189 -0
  3. package/README.md +98 -99
  4. package/README.pt.md +196 -0
  5. package/package.json +9 -6
  6. package/src/configs.d.ts +2 -0
  7. package/src/configs.d.ts.map +1 -1
  8. package/src/configs.ts +2 -0
  9. package/src/driver.d.ts +78 -6
  10. package/src/driver.d.ts.map +1 -1
  11. package/src/driver.ts +95 -6
  12. package/src/launcher/commands/check.ts +1 -1
  13. package/src/launcher/commands/{migrate.d.ts → commit.d.ts} +2 -2
  14. package/src/launcher/commands/commit.d.ts.map +1 -0
  15. package/src/launcher/commands/{migrate.js → commit.js} +8 -6
  16. package/src/launcher/commands/commit.js.map +1 -0
  17. package/src/launcher/commands/{migrate.ts → commit.ts} +7 -6
  18. package/src/launcher/commands/deploy.d.ts.map +1 -1
  19. package/src/launcher/commands/deploy.js +11 -3
  20. package/src/launcher/commands/deploy.js.map +1 -1
  21. package/src/launcher/commands/deploy.ts +11 -4
  22. package/src/launcher/commands/generate.d.ts.map +1 -1
  23. package/src/launcher/commands/generate.js +1 -1
  24. package/src/launcher/commands/generate.js.map +1 -1
  25. package/src/launcher/commands/generate.ts +2 -3
  26. package/src/launcher/index.js +25 -3
  27. package/src/launcher/index.js.map +1 -1
  28. package/src/launcher/index.ts +1 -4
  29. package/src/tools/{migrate.d.ts → commit.d.ts} +2 -2
  30. package/src/tools/commit.d.ts.map +1 -0
  31. package/src/tools/{migrate.js → commit.js} +44 -33
  32. package/src/tools/commit.js.map +1 -0
  33. package/src/tools/{migrate.ts → commit.ts} +48 -37
  34. package/src/tools/common.d.ts +14 -0
  35. package/src/tools/common.d.ts.map +1 -0
  36. package/src/tools/common.js +70 -0
  37. package/src/tools/common.js.map +1 -0
  38. package/src/tools/common.ts +46 -0
  39. package/src/tools/deploy.d.ts +42 -0
  40. package/src/tools/deploy.d.ts.map +1 -1
  41. package/src/tools/deploy.js +161 -0
  42. package/src/tools/deploy.js.map +1 -1
  43. package/src/tools/deploy.ts +147 -0
  44. package/src/tools/generate.d.ts.map +1 -1
  45. package/src/tools/generate.js +9 -4
  46. package/src/tools/generate.js.map +1 -1
  47. package/src/tools/generate.ts +16 -8
  48. package/src/launcher/commands/migrate.d.ts.map +0 -1
  49. package/src/launcher/commands/migrate.js.map +0 -1
  50. package/src/tools/migrate.d.ts.map +0 -1
  51. package/src/tools/migrate.js.map +0 -1
package/README.pt.md ADDED
@@ -0,0 +1,196 @@
1
+
2
+ # PSM - Prisma Safe Migrate
3
+
4
+ ## Descrição
5
+
6
+ **PSM (Prisma Safe Migrate)** é uma ferramenta avançada para geração e aplicação segura de migrações SQL baseadas no modelo Prisma. Seu principal objetivo é garantir que alterações no banco de dados sejam aplicadas sem risco de perda de dados, algo que o sistema padrão de migrações do Prisma não assegura completamente.
7
+
8
+ ---
9
+
10
+ ## Motivação
11
+
12
+ Migrações de banco de dados são processos críticos que precisam preservar a integridade e os dados existentes. O Prisma fornece um sistema eficiente para migrações, porém sem garantias absolutas contra perda de dados em alterações complexas, como renomear colunas, alterar tipos de dados ou remover tabelas.
13
+
14
+ O PSM preenche essa lacuna ao criar uma camada extra de validação, controle rigoroso de revisões e aplicação incremental segura em ambientes de produção.
15
+
16
+ ---
17
+
18
+ ## Instalação
19
+
20
+ Instale os pacotes do PSM como dependências de desenvolvimento no seu projeto:
21
+
22
+ ```bash
23
+ npm install --save-dev @prisma-psm/core @prisma-psm/pg
24
+ ```
25
+
26
+ ---
27
+
28
+ ## Configuração
29
+
30
+ No seu arquivo `schema.prisma`, configure o gerador do PSM para gerar os arquivos SQL e conectar ao banco:
31
+
32
+ ```prisma
33
+ generator psm {
34
+ provider = "psm generate"
35
+ output = "./psm/"
36
+ driver = "@prisma-psm/pg"
37
+ url = env("DATABASE_URL")
38
+ }
39
+ ```
40
+
41
+ - **provider**: gerador do PSM que substitui o padrão do Prisma para geração de migrações.
42
+ - **output**: diretório onde serão gerados os arquivos SQL e artefatos do PSM.
43
+ - **driver**: driver específico para o banco (exemplo: PostgreSQL).
44
+ - **url**: variável de ambiente contendo a string de conexão ao banco.
45
+
46
+ ---
47
+
48
+ ## Como funciona - Fluxo geral
49
+
50
+ ### 1. Geração da migração (`npx prisma generate`)
51
+
52
+ - Gera os artefatos do Prisma normalmente.
53
+ - Gera dois arquivos principais na pasta `next`:
54
+ - `migration.next.check.sql`: script para validar se a migração está consistente com o banco atual.
55
+ - `migration.next.sql`: script que aplicará as alterações.
56
+ - Se `DATABASE_URL` estiver configurada:
57
+ - Executa automaticamente o script de check.
58
+ - Se sucesso: mantém os dois arquivos na pasta `next`.
59
+ - Se falha: mantém só `migration.next.check.sql` e um arquivo de erro, removendo `migration.next.sql` se existir.
60
+ - Se `DATABASE_URL` não estiver definida:
61
+ - Apenas gera ambos os arquivos, sem validar.
62
+ - Atualiza o arquivo `psm.yml` com informações da migração, como status, driver, URL, esquema, e histórico.
63
+
64
+ ### 2. Aplicação da migração (`psm commit`)
65
+
66
+ - Valida novamente a migração executando `migration.next.check.sql`.
67
+ - Se validado:
68
+ - Aplica o `migration.next.sql` no banco.
69
+ - Gera uma revisão definitiva em `revision/${timestamp}-${label}/` com:
70
+ - Script da migração aplicada.
71
+ - Arquivo `psm.yml` atualizado.
72
+ - Registra no banco a migração aplicada para controle.
73
+ - Se falha, aborta e mostra o erro.
74
+
75
+ ### 3. Deploy em produção (`psm deploy`)
76
+
77
+ - Aplica todas as revisões pendentes armazenadas na pasta `revision/` de forma incremental.
78
+ - Garante que o banco esteja sempre sincronizado com o histórico de migrações.
79
+
80
+ ---
81
+
82
+ ## Motor de migração (engine) detalhado
83
+
84
+ O PSM usa um esquema shadow temporário para garantir segurança dos dados:
85
+
86
+ 1. Cria um schema temporário `shadow_${random}`.
87
+ 2. Cria tabelas temporárias para cada modelo Prisma, sem constraints (ex: `temp_1_user` para o modelo `user`).
88
+ 3. Copia os dados das tabelas reais para as temporárias.
89
+ 4. Aplica as constraints (chaves, índices, relacionamentos) nas tabelas temporárias.
90
+ 5. Se na validação (check) tudo passar:
91
+ - Remove o schema shadow e as tabelas temporárias.
92
+ 6. Se na aplicação (commit next) tudo passar:
93
+ - Remove as tabelas reais.
94
+ - Move as tabelas temporárias do schema shadow para o schema final.
95
+ - Renomeia as tabelas temporárias para os nomes reais.
96
+ - Remove o schema shadow.
97
+ - Registra a migração aplicada no banco para controle.
98
+
99
+ Esse processo impede alterações destrutivas diretas nas tabelas reais antes da validação completa, evitando perda de dados.
100
+
101
+ ---
102
+
103
+ ## Estrutura de arquivos gerados
104
+
105
+ - **next/**
106
+ - `migration.next.check.sql` — script para validar a migração.
107
+ - `migration.next.sql` — script para aplicar a migração.
108
+ - (opcional) arquivo de erro em caso de falha.
109
+ - **revision/${timestamp}-${label}/**
110
+ - `migration.sql` — script definitivo da migração.
111
+ - `psm.yml` — metadados e histórico da migração aplicada.
112
+ - **psm.yml**
113
+ - Arquivo principal com estado, configurações, histórico e resultados das validações.
114
+
115
+ ---
116
+
117
+ ## Variável de ambiente
118
+
119
+ Configure a conexão com seu banco no arquivo `.env` ou no ambiente:
120
+
121
+ ```env
122
+ DATABASE_URL="postgresql://usuario:senha@localhost:5432/seubanco"
123
+ ```
124
+
125
+ ---
126
+
127
+ ## Comandos principais
128
+
129
+ | Comando | Descrição |
130
+ |-----------------------|----------------------------------------------------------------------------------------|
131
+ | `npx prisma generate` | Gera os arquivos de migração na pasta `next` e valida (se `DATABASE_URL` configurada). |
132
+ | `psm commit` | Valida e aplica a próxima migração. Cria revisão definitiva na pasta `revision/`. |
133
+ | `psm deploy` | Aplica todas as migrações pendentes da pasta `revision/` na ordem correta. |
134
+
135
+ ---
136
+
137
+ ## Exemplo de uso
138
+
139
+ ```bash
140
+ # Gerar migração e validar (se DATABASE_URL definida)
141
+ npx prisma generate
142
+
143
+ # Validar e aplicar a migração gerada
144
+ psm commit
145
+
146
+ # Aplicar todas as migrações pendentes em produção
147
+ psm deploy
148
+ ```
149
+
150
+ ---
151
+
152
+ ## Benefícios
153
+
154
+ - **Garantia contra perda de dados** com validação rigorosa.
155
+ - **Rollback facilitado** e controle de revisões.
156
+ - **Validação automática** durante geração de migrações.
157
+ - **Histórico detalhado** das alterações aplicadas.
158
+ - **Suporte inicial para PostgreSQL**, com possibilidade de expansão.
159
+
160
+ ---
161
+
162
+ ## Roadmap
163
+
164
+ - Suporte a mais bancos (MySQL, SQLite, etc.).
165
+ - ‘Interface’ gráfica para gestão de migrações.
166
+ - Integração com pipelines CI/CD.
167
+ - Migrações manuais e customizadas.
168
+ - Suporte multi-schema e multi-tenant.
169
+
170
+ ---
171
+
172
+ ## Contribuição
173
+
174
+ Contribuições são bem-vindas! Abra issues para bugs ou sugestões, e envie pull requests para melhorias.
175
+
176
+ ---
177
+
178
+ ## Licença
179
+
180
+ Projeto licenciado sob a [Apache 2.0](./LICENSE).
181
+
182
+ ---
183
+
184
+ ## Traduções
185
+
186
+ [Português](./README.pt.md) | [English](./README.en.md)
187
+
188
+ ---
189
+
190
+ ## Contato
191
+
192
+ Para dúvidas, sugestões ou suporte, abra uma issue ou entre em contato via email.
193
+
194
+ ---
195
+
196
+ **PSM - Migrações seguras e confiáveis para seu banco de dados com Prisma.**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prisma-psm/core",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "description": "PSM - Prisma SAFE MIGRATE: ferramenta CLI para migração segura de bancos Prisma com suporte avançado.",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -13,11 +13,13 @@
13
13
  },
14
14
  "dependencies": {
15
15
  "@prisma/generator-helper": "^6.13.0",
16
- "deepmerge": "^4.3.1",
16
+ "chalk": "^2.4.2",
17
17
  "dotenv": "^17.2.1",
18
+ "json5": "^2.2.3",
18
19
  "moment": "^2.30.1",
19
20
  "nanoid": "^5.1.5",
20
- "yaml": "^2.8.1"
21
+ "yaml": "^2.8.1",
22
+ "yargs": "^18.0.0"
21
23
  },
22
24
  "repository": {
23
25
  "type": "git",
@@ -37,11 +39,12 @@
37
39
  "cli",
38
40
  "safe migrate",
39
41
  "nodejs",
40
- "psm"
42
+ "psm",
43
+ "sql",
44
+ "typescript"
41
45
  ],
42
46
  "devDependencies": {
43
47
  "@types/yaml": "^1.9.6",
44
- "@types/yargs": "^17.0.33",
45
- "yargs": "^18.0.0"
48
+ "@types/yargs": "^17.0.33"
46
49
  }
47
50
  }
package/src/configs.d.ts CHANGED
@@ -3,6 +3,7 @@ export interface PSMConfigFile {
3
3
  migration: string;
4
4
  driver: string;
5
5
  url: string;
6
+ sys: string;
6
7
  output: string;
7
8
  schema: string;
8
9
  };
@@ -12,6 +13,7 @@ export interface PSMConfigFile {
12
13
  messages: string[];
13
14
  };
14
15
  migration?: {
16
+ revision: string;
15
17
  instate: string;
16
18
  preview: string;
17
19
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["configs.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC1B,GAAG,EAAE;QACD,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,EAAE,MAAM,CAAA;QACd,GAAG,EAAE,MAAM,CAAA;QACX,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,CAAA;KACjB,CAAC;IACF,IAAI,EAAE;QACF,KAAK,EAAE,SAAS,GAAC,SAAS,CAAC;QAC3B,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAA;KACrB,CAAC;IACF,SAAS,CAAC,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACjB,CAAA;CACJ"}
1
+ {"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["configs.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC1B,GAAG,EAAE;QACD,SAAS,EAAE,MAAM,CAAA;QACjB,MAAM,EAAE,MAAM,CAAA;QACd,GAAG,EAAE,MAAM,CAAA;QACX,GAAG,EAAE,MAAM,CAAA;QACX,MAAM,EAAE,MAAM,CAAA;QACd,MAAM,EAAE,MAAM,CAAA;KACjB,CAAC;IACF,IAAI,EAAE;QACF,KAAK,EAAE,SAAS,GAAC,SAAS,CAAC;QAC3B,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAA;KACrB,CAAC;IACF,SAAS,CAAC,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;KACjB,CAAA;CACJ"}
package/src/configs.ts CHANGED
@@ -3,6 +3,7 @@ export interface PSMConfigFile {
3
3
  migration: string
4
4
  driver: string
5
5
  url: string
6
+ sys: string
6
7
  output: string
7
8
  schema: string
8
9
  },
@@ -12,6 +13,7 @@ export interface PSMConfigFile {
12
13
  messages: string[]
13
14
  },
14
15
  migration?: {
16
+ revision: string,
15
17
  instate: string,
16
18
  preview: string,
17
19
  label: string,
package/src/driver.d.ts CHANGED
@@ -70,6 +70,7 @@ export interface PSMModel {
70
70
  apply?: "ALWAYS" | "WHEN" | "WHEN_EXCEPTION";
71
71
  from?: "query" | "query:linked" | "relation" | "model";
72
72
  expression?: string;
73
+ exists?: string;
73
74
  when?: string;
74
75
  };
75
76
  };
@@ -98,29 +99,100 @@ export interface MigrationOptions {
98
99
  }
99
100
  export interface PSMMigrationOptions {
100
101
  check: string;
102
+ core: string;
101
103
  url: string;
102
104
  migrate: string;
103
105
  }
106
+ export interface Migrated {
107
+ sid: string;
108
+ date: Date;
109
+ }
110
+ export interface PSMMigratedOptions {
111
+ url: string;
112
+ sys: string;
113
+ }
104
114
  export interface PSMMigrationResult {
105
115
  success?: boolean;
106
116
  messages?: string[];
107
117
  error?: any;
108
118
  }
109
- export type PSMGenerator = (opts: PSMParserOptions) => {
110
- check(): string;
119
+ export interface PSMGenerator {
111
120
  migrate(): string;
112
- };
113
- export type PSMMigrator = (opts: PSMMigrationOptions) => {
121
+ check(): string;
122
+ core(): string;
123
+ }
124
+ export interface PSMMigrated {
125
+ messages: string[];
126
+ error?: any;
127
+ success?: boolean;
128
+ migrated?: Migrated[];
129
+ }
130
+ export interface PSMMigrator {
131
+ core(): Promise<PSMMigrationResult>;
114
132
  test(): Promise<PSMMigrationResult>;
115
133
  migrate(): Promise<PSMMigrationResult>;
134
+ }
135
+ export interface QueryBuilderResult {
136
+ sql: string;
137
+ template: string[];
138
+ values: any;
139
+ push(...builders: QueryBuilderResult[]): void;
140
+ }
141
+ export type ScriptLine = {
142
+ line: number;
143
+ filename: string;
144
+ error: Error;
145
+ column: number;
146
+ func: string;
147
+ };
148
+ export type RevisionProps<Props extends {
149
+ [p in keyof Props]: Props[p];
150
+ }> = Props;
151
+ export type RevisionWhen<Props> = boolean | ((props: RevisionProps<Props>) => boolean) | ((props: RevisionProps<Props>) => Promise<boolean>);
152
+ export interface RegistryOptions<Props> {
153
+ identifier?: string;
154
+ connection?: string | "default" | "standard" | "superuser";
155
+ unique?: boolean;
156
+ force?: string;
157
+ flags?: string[];
158
+ level?: "critical" | "normal" | "optional";
159
+ line?: ScriptLine;
160
+ when?: RevisionWhen<Props>;
161
+ }
162
+ export interface SimpleFile {
163
+ filename: string;
164
+ }
165
+ export type PatchOptions<Props> = RegistryOptions<Props> & {
166
+ module?: NodeModule | SimpleFile;
167
+ };
168
+ export type RevisionListener = {
169
+ onRegister?(error: Error, onRelease: () => void): void;
170
+ };
171
+ type SQLTemplate = (sqlTemplate: TemplateStringsArray, ...values: any[]) => QueryBuilderResult & {
172
+ sql: SQLTemplate;
173
+ joins(...builders: QueryBuilderResult[]): void;
116
174
  };
175
+ export interface SqlPatch<Props> {
176
+ opts: RegistryOptions<Props> & PatchOptions<Props>;
177
+ str: string | QueryBuilderResult;
178
+ values: any[] | RevisionListener;
179
+ listener?: RevisionListener;
180
+ line: ScriptLine;
181
+ }
117
182
  export interface PSMDriver {
118
- generator: PSMGenerator;
119
- migrator: PSMMigrator;
183
+ migrated: (opts: PSMMigratedOptions) => Promise<PSMMigrated>;
184
+ generator: (opts: PSMParserOptions) => PSMGenerator;
185
+ migrator: (opts: PSMMigrationOptions) => PSMMigrator;
120
186
  prepare: (model: ModelOptions) => Promise<any> | void;
187
+ sql: SQLTemplate;
188
+ joins(...builders: QueryBuilderResult[]): void;
189
+ patch<Props>(opts: PatchOptions<Props>, sql: QueryBuilderResult, listener?: RevisionListener): SqlPatch<Props>;
190
+ patchSQL<Props>(opts?: PatchOptions<Props>, listener?: RevisionListener): SQLTemplate;
121
191
  }
122
192
  export interface DriverConfigs {
123
193
  driver: string;
124
194
  url: string;
195
+ sys: string;
125
196
  }
197
+ export {};
126
198
  //# sourceMappingURL=driver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["driver.ts"],"names":[],"mappings":"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"}
package/src/driver.ts CHANGED
@@ -5,7 +5,6 @@ export interface PSMField {
5
5
  }
6
6
  }
7
7
 
8
-
9
8
  export interface UniqueOptions {
10
9
  name:string,
11
10
  fields:string[]
@@ -73,6 +72,7 @@ export interface PSMModel {
73
72
  apply?:"ALWAYS"|"WHEN"|"WHEN_EXCEPTION",
74
73
  from?: "query"|"query:linked"|"relation"|"model"
75
74
  expression?:string
75
+ exists?:string
76
76
  when?:string
77
77
  }
78
78
  }
@@ -105,10 +105,21 @@ export interface MigrationOptions {
105
105
 
106
106
  export interface PSMMigrationOptions {
107
107
  check:string,
108
+ core:string,
108
109
  url:string,
109
110
  migrate:string
110
111
  }
111
112
 
113
+ export interface Migrated {
114
+ sid:string,
115
+ date: Date
116
+ }
117
+
118
+ export interface PSMMigratedOptions {
119
+ url:string,
120
+ sys:string
121
+ }
122
+
112
123
  export interface PSMMigrationResult {
113
124
  success?:boolean
114
125
  messages?:string[]
@@ -116,16 +127,94 @@ export interface PSMMigrationResult {
116
127
  }
117
128
 
118
129
 
119
- export type PSMGenerator = ( opts:PSMParserOptions )=>{ check():string, migrate():string}
120
- export type PSMMigrator = ( opts:PSMMigrationOptions )=>{ test():Promise<PSMMigrationResult>, migrate():Promise<PSMMigrationResult>}
130
+ export interface PSMGenerator {
131
+ migrate():string,
132
+ check():string,
133
+ core():string,
134
+ }
135
+
136
+ export interface PSMMigrated {
137
+ messages:string[]
138
+ error?:any
139
+ success?:boolean
140
+ migrated?:Migrated[]
141
+ }
142
+
143
+ export interface PSMMigrator {
144
+ core():Promise<PSMMigrationResult>,
145
+ test():Promise<PSMMigrationResult>,
146
+ migrate():Promise<PSMMigrationResult>,
147
+ }
148
+
149
+ export interface QueryBuilderResult {
150
+ sql:string,
151
+ template:string[],
152
+ values:any
153
+ push( ...builders:QueryBuilderResult[] ):void
154
+ }
155
+
156
+ export type ScriptLine = {
157
+ line:number,
158
+ filename: string,
159
+ error:Error,
160
+ column:number,
161
+ func:string
162
+ }
163
+
164
+ export type RevisionProps<Props extends {[p in keyof Props]:Props[p]}> = Props
165
+ export type RevisionWhen<Props> = boolean|( (props:RevisionProps<Props>)=>boolean)|( (props:RevisionProps<Props>)=>Promise<boolean>);
166
+
167
+ export interface RegistryOptions <Props>{
168
+ identifier?: string;
169
+ connection?: string|"default"|"standard"|"superuser";
170
+ unique?: boolean;
171
+ force?: string;
172
+ flags?: string[];
173
+ level?: "critical" | "normal" | "optional";
174
+ line?:ScriptLine,
175
+ when?:RevisionWhen<Props>
176
+ }
177
+
178
+ export interface SimpleFile {
179
+ filename: string;
180
+ }
181
+
182
+ export type PatchOptions<Props> = RegistryOptions<Props> & {
183
+ module?: NodeModule | SimpleFile
184
+ }
185
+ // Define o tipo de ouvinte de revisão que inclui tratamento de atualização
186
+ export type RevisionListener = {
187
+ onRegister?(error: Error, onRelease: () => void): void;
188
+ }
189
+
190
+ type SQLTemplate = ( sqlTemplate:TemplateStringsArray, ...values:any[] ) => QueryBuilderResult & {
191
+ sql:SQLTemplate
192
+ joins( ...builders:QueryBuilderResult[] ):void
193
+ }
194
+
195
+ export interface SqlPatch <Props>{
196
+ opts:RegistryOptions<Props> & PatchOptions<Props>
197
+ str: string | QueryBuilderResult;
198
+ values: any[] | RevisionListener;
199
+ listener?: RevisionListener;
200
+ line:ScriptLine
201
+ }
202
+
203
+
121
204
  export interface PSMDriver {
122
- generator:PSMGenerator,
123
- migrator:PSMMigrator,
124
- prepare: ( model:ModelOptions )=>Promise<any>|void
205
+ migrated:( opts:PSMMigratedOptions )=>Promise<PSMMigrated>,
206
+ generator:( opts:PSMParserOptions )=>PSMGenerator,
207
+ migrator:( opts:PSMMigrationOptions ) =>PSMMigrator,
208
+ prepare: ( model:ModelOptions )=>Promise<any>|void,
209
+ sql:SQLTemplate,
210
+ joins( ...builders:QueryBuilderResult[] ):void
211
+ patch <Props>(opts:PatchOptions<Props>, sql:QueryBuilderResult, listener?: RevisionListener):SqlPatch<Props>
212
+ patchSQL <Props>(opts?:PatchOptions<Props>, listener?: RevisionListener):SQLTemplate
125
213
  }
126
214
 
127
215
  export interface DriverConfigs {
128
216
  driver:string,
129
217
  url:string,
218
+ sys:string,
130
219
  }
131
220
 
@@ -1,5 +1,5 @@
1
1
  import {CommandModule} from "yargs";
2
- import {migrate} from "../../tools/migrate";
2
+ import {commit} from "../../tools/commit";
3
3
  import {check} from "../../tools/check";
4
4
 
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { CommandModule } from "yargs";
2
- import { MigrateOptions } from "../../tools/migrate";
2
+ import { MigrateOptions } from "../../tools/commit";
3
3
  declare const command: CommandModule<MigrateOptions, MigrateOptions>;
4
4
  export = command;
5
- //# sourceMappingURL=migrate.d.ts.map
5
+ //# sourceMappingURL=commit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit.d.ts","sourceRoot":"","sources":["commit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AACpC,OAAO,EAAS,cAAc,EAAC,MAAM,oBAAoB,CAAC;AAG1D,QAAA,MAAM,OAAO,EAAC,aAAa,CAAC,cAAc,EAAE,cAAc,CA4BzD,CAAA;AAED,SAAS,OAAO,CAAC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
+ const commit_1 = require("../../tools/commit");
2
3
  const command = {
3
- command: "migrate commit",
4
+ command: "commit",
4
5
  describe: "Migrate next schema structure into dev environment",
5
6
  builder: args => {
6
7
  args.options("schema", {
@@ -19,11 +20,12 @@ const command = {
19
20
  return args;
20
21
  },
21
22
  handler: (argv) => {
22
- console.log(argv);
23
- // migrate(argv).then( value => {
24
- // }).catch( reason => {
25
- // })
23
+ (0, commit_1.commit)(argv).then(value => {
24
+ console.log("Commited!");
25
+ }).catch(reason => {
26
+ console.error(reason);
27
+ });
26
28
  }
27
29
  };
28
30
  module.exports = command;
29
- //# sourceMappingURL=migrate.js.map
31
+ //# sourceMappingURL=commit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit.js","sourceRoot":"","sources":["commit.ts"],"names":[],"mappings":";AACA,+CAA0D;AAG1D,MAAM,OAAO,GAAiD;IAC1D,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,oDAAoD;IAC9D,OAAO,EAAE,IAAI,CAAC,EAAE;QACZ,IAAI,CAAC,OAAO,CAAE,QAAQ,EAAE;YACpB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;SACb,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE;YACnB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,GAAG;SACb,CAAC,CAAC,OAAO,CAAE,OAAO,EAAE;YACjB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;SAEb,CAAC,CAAC,OAAO,CAAE,kBAAkB,EAAE;YAC5B,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;SACb,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,EAAC,CAAE,IAAI,EAAE,EAAE;QACd,IAAA,eAAM,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACtB,OAAO,CAAC,GAAG,CAAE,WAAW,CAAC,CAAA;QAC7B,CAAC,CAAC,CAAC,KAAK,CAAE,MAAM,CAAC,EAAE;YACf,OAAO,CAAC,KAAK,CAAE,MAAM,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;IACN,CAAC;CACJ,CAAA;AAED,iBAAS,OAAO,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import {CommandModule} from "yargs";
2
- import {migrate, MigrateOptions} from "../../tools/migrate";
2
+ import {commit, MigrateOptions} from "../../tools/commit";
3
3
 
4
4
 
5
5
  const command:CommandModule<MigrateOptions, MigrateOptions> = {
6
- command: "migrate commit",
6
+ command: "commit",
7
7
  describe: "Migrate next schema structure into dev environment",
8
8
  builder: args => {
9
9
  args.options( "schema", {
@@ -24,10 +24,11 @@ const command:CommandModule<MigrateOptions, MigrateOptions> = {
24
24
  return args;
25
25
  },
26
26
  handler:( argv) =>{
27
- console.log( argv )
28
- // migrate(argv).then( value => {
29
- // }).catch( reason => {
30
- // })
27
+ commit(argv).then(value => {
28
+ console.log( "Commited!")
29
+ }).catch( reason => {
30
+ console.error( reason)
31
+ })
31
32
  }
32
33
  }
33
34
 
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AACpC,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AAGjD,QAAA,MAAM,OAAO,EAAC,aAAa,CAAC,aAAa,EAAE,aAAa,CASvD,CAAA;AAED,SAAS,OAAO,CAAC"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,aAAa,EAAS,MAAM,oBAAoB,CAAC;AAG1D,QAAA,MAAM,OAAO,EAAC,aAAa,CAAC,aAAa,EAAE,aAAa,CAgBvD,CAAA;AAED,SAAS,OAAO,CAAC"}
@@ -1,12 +1,20 @@
1
1
  "use strict";
2
+ const deploy_1 = require("../../tools/deploy");
2
3
  const command = {
3
- command: "migrate deploy",
4
- describe: "Deploy to production environment",
4
+ command: "deploy",
5
+ describe: "Deploy all commited revision into server",
5
6
  builder: args => {
7
+ args.options("schema", {
8
+ type: "string",
9
+ alias: "s"
10
+ });
6
11
  return args;
7
12
  },
8
13
  handler: (argv) => {
9
- console.log("TODO - psm migrate deploy ainda não esta implementado");
14
+ (0, deploy_1.deploy)(argv).then(value => {
15
+ }).catch(reason => {
16
+ console.error(reason);
17
+ });
10
18
  }
11
19
  };
12
20
  module.exports = command;
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["deploy.ts"],"names":[],"mappings":";AAIA,MAAM,OAAO,GAA+C;IACxD,OAAO,EAAE,gBAAgB;IACzB,QAAQ,EAAE,kCAAkC;IAC5C,OAAO,EAAE,IAAI,CAAC,EAAE;QACZ,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,EAAC,CAAE,IAAI,EAAE,EAAE;QACd,OAAO,CAAC,GAAG,CAAE,uDAAuD,CAAC,CAAA;IACzE,CAAC;CACJ,CAAA;AAED,iBAAS,OAAO,CAAC"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["deploy.ts"],"names":[],"mappings":";AACA,+CAA0D;AAG1D,MAAM,OAAO,GAA+C;IACxD,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,0CAA0C;IACpD,OAAO,EAAE,IAAI,CAAC,EAAE;QACZ,IAAI,CAAC,OAAO,CAAE,QAAQ,EAAE;YACpB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,GAAG;SACb,CAAC,CAAA;QACF,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,EAAC,CAAE,IAAI,EAAE,EAAE;QACd,IAAA,eAAM,EAAE,IAAI,CAAE,CAAC,IAAI,CAAE,KAAK,CAAC,EAAE;QAC7B,CAAC,CAAC,CAAC,KAAK,CAAE,MAAM,CAAC,EAAE;YACf,OAAO,CAAC,KAAK,CAAE,MAAM,CAAE,CAAC;QAC5B,CAAC,CAAC,CAAA;IACN,CAAC;CACJ,CAAA;AAED,iBAAS,OAAO,CAAC"}