nando 1.0.6
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.
- checksums.yaml +7 -0
- data/.env +2 -0
- data/.gitignore +19 -0
- data/.rspec +3 -0
- data/.travis.yml +7 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +47 -0
- data/LICENSE +201 -0
- data/README.md +49 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/exe/nando +83 -0
- data/lib/nando/baseline_templates/migration.rb +9 -0
- data/lib/nando/errors.rb +13 -0
- data/lib/nando/generator.rb +86 -0
- data/lib/nando/interface.rb +87 -0
- data/lib/nando/logger.rb +30 -0
- data/lib/nando/migration.rb +347 -0
- data/lib/nando/migrator.rb +369 -0
- data/lib/nando/parser.rb +68 -0
- data/lib/nando/parser_templates/migration.rb +13 -0
- data/lib/nando/schema_diff.rb +805 -0
- data/lib/nando/templates/migration.rb +9 -0
- data/lib/nando/templates/migration_without_transaction.rb +9 -0
- data/lib/nando/updater.rb +372 -0
- data/lib/nando/utils.rb +22 -0
- data/lib/nando/version.rb +3 -0
- data/lib/nando.rb +12 -0
- data/nando.gemspec +44 -0
- data/notes.txt +128 -0
- metadata +200 -0
data/notes.txt
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
To run tests:
|
|
2
|
+
|
|
3
|
+
bundle exec rspec spec
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
To test in irb:
|
|
7
|
+
|
|
8
|
+
gem build nando.gemspec
|
|
9
|
+
gem install nando-0.1.0.gem
|
|
10
|
+
gem install --local nando-0.1.0.gem
|
|
11
|
+
irb
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
To create a migration:
|
|
15
|
+
|
|
16
|
+
./bin/generate -n TestMigration
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
To migrate the database:
|
|
20
|
+
./bin/migrate
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
To rollback the database:
|
|
24
|
+
./bin/rollback
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
Might need to add:
|
|
28
|
+
- erb
|
|
29
|
+
- optparse
|
|
30
|
+
- dotenv
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
To fix CDB migration
|
|
34
|
+
ALTER TYPE casper.chore_template_id ADD VALUE IF NOT EXISTS 'ppc-irs-payment';
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
\c toc_recon
|
|
38
|
+
drop database new_tests_diss;
|
|
39
|
+
create database new_tests_diss;
|
|
40
|
+
\c new_tests_diss
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
\c toc_recon
|
|
44
|
+
drop database if exists test_nando_1;
|
|
45
|
+
create database test_nando_1;
|
|
46
|
+
\c test_nando_1
|
|
47
|
+
|
|
48
|
+
\c toc_recon
|
|
49
|
+
drop database if exists test_nando_cdb;
|
|
50
|
+
create database test_nando_cdb;
|
|
51
|
+
\c test_nando_cdb
|
|
52
|
+
|
|
53
|
+
\c toconline
|
|
54
|
+
drop database if exists test_nando_tables;
|
|
55
|
+
create database test_nando_tables;
|
|
56
|
+
\c test_nando_tables
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
# @db_connection.exec('BEGIN')
|
|
60
|
+
# @db_connection.exec('COMMIT')
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
pg_dump -t 'entity_1.customers' --schema-only test_nando_tables
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
# Calling logger methods
|
|
67
|
+
|
|
68
|
+
_warn 'TESTING'
|
|
69
|
+
_debug 'TESTING'
|
|
70
|
+
_error 'TESTING'
|
|
71
|
+
_success 'TESTING'
|
|
72
|
+
_info 'TESTING'
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
grep -i -e "execute <<-([.\n]*)CREATE OR REPLACE FUNCTION common.document_settings_for_print" ./db/migrate/*
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
r = ordinary table
|
|
79
|
+
i = index
|
|
80
|
+
v = view
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
S = sequence
|
|
84
|
+
|
|
85
|
+
m = materialized view
|
|
86
|
+
c = composite type
|
|
87
|
+
t = TOAST table
|
|
88
|
+
f = foreign table
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
Starting psql with "psql -E" let's you see the queries executed in \d for example
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
TEMPORARY NOTES
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
DBMATE
|
|
98
|
+
|
|
99
|
+
MIGRATE
|
|
100
|
+
|
|
101
|
+
findMigrationFiles => Encontra os ficheiro de migrações
|
|
102
|
+
iterar por todas as entries no diretório de migrações
|
|
103
|
+
se for um diretório, continue
|
|
104
|
+
se não der match com o regex "migrationFileRegexp", continue
|
|
105
|
+
sort do array de resultados (não sei se isto é mesmo preciso, mas eles fazem, prolly para garantir que corre tudo na ordem correta)
|
|
106
|
+
|
|
107
|
+
if there are no migration files => error
|
|
108
|
+
|
|
109
|
+
if db.WaitBefore (deve ser alguma variável interna para concorrência) => wait
|
|
110
|
+
|
|
111
|
+
openDatabaseForMigration => open DB for migration
|
|
112
|
+
|
|
113
|
+
SelectMigrations => obter migrations from schema_migrations
|
|
114
|
+
|
|
115
|
+
iterar pelos files |filename|
|
|
116
|
+
obter a version a partir do filename
|
|
117
|
+
verificar se já existe nas migrações já corridas
|
|
118
|
+
se sim, continue
|
|
119
|
+
print "applying"
|
|
120
|
+
obter o método up com "parseMigration"
|
|
121
|
+
se for para criar transaction
|
|
122
|
+
abrir transaction
|
|
123
|
+
correr migração
|
|
124
|
+
se não for
|
|
125
|
+
correr migração
|
|
126
|
+
correr migração consiste em
|
|
127
|
+
executar o código a migração
|
|
128
|
+
InsertMigration => record migration, assumo que deve ser adicionar ao schema_migrations
|
metadata
ADDED
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: nando
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 1.0.6
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Fernando Alves
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: exe
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2021-05-30 00:00:00.000000000 Z
|
|
12
|
+
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: bundler
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: 1.17.3
|
|
20
|
+
type: :development
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: 1.17.3
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: rake
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '10.0'
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: '10.0'
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: rspec
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - "~>"
|
|
46
|
+
- !ruby/object:Gem::Version
|
|
47
|
+
version: '3.2'
|
|
48
|
+
type: :development
|
|
49
|
+
prerelease: false
|
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
51
|
+
requirements:
|
|
52
|
+
- - "~>"
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '3.2'
|
|
55
|
+
- !ruby/object:Gem::Dependency
|
|
56
|
+
name: byebug
|
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
|
58
|
+
requirements:
|
|
59
|
+
- - ">="
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0'
|
|
62
|
+
type: :development
|
|
63
|
+
prerelease: false
|
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
65
|
+
requirements:
|
|
66
|
+
- - ">="
|
|
67
|
+
- !ruby/object:Gem::Version
|
|
68
|
+
version: '0'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: pg
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: 1.2.3
|
|
76
|
+
type: :runtime
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: 1.2.3
|
|
83
|
+
- !ruby/object:Gem::Dependency
|
|
84
|
+
name: optparse
|
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
|
86
|
+
requirements:
|
|
87
|
+
- - "~>"
|
|
88
|
+
- !ruby/object:Gem::Version
|
|
89
|
+
version: 0.1.0
|
|
90
|
+
type: :runtime
|
|
91
|
+
prerelease: false
|
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
93
|
+
requirements:
|
|
94
|
+
- - "~>"
|
|
95
|
+
- !ruby/object:Gem::Version
|
|
96
|
+
version: 0.1.0
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: dotenv
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - "~>"
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: 2.7.6
|
|
104
|
+
type: :runtime
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - "~>"
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: 2.7.6
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: colorize
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - "~>"
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: 0.8.1
|
|
118
|
+
type: :runtime
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - "~>"
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: 0.8.1
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: awesome_print
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - "~>"
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: 1.8.0
|
|
132
|
+
type: :runtime
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - "~>"
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: 1.8.0
|
|
139
|
+
description: NANDO - Nando AdmiNs Database Objects
|
|
140
|
+
email:
|
|
141
|
+
- fernando.alves@cldware.com
|
|
142
|
+
executables:
|
|
143
|
+
- nando
|
|
144
|
+
extensions: []
|
|
145
|
+
extra_rdoc_files: []
|
|
146
|
+
files:
|
|
147
|
+
- ".env"
|
|
148
|
+
- ".gitignore"
|
|
149
|
+
- ".rspec"
|
|
150
|
+
- ".travis.yml"
|
|
151
|
+
- Gemfile
|
|
152
|
+
- Gemfile.lock
|
|
153
|
+
- LICENSE
|
|
154
|
+
- README.md
|
|
155
|
+
- Rakefile
|
|
156
|
+
- bin/console
|
|
157
|
+
- bin/setup
|
|
158
|
+
- exe/nando
|
|
159
|
+
- lib/nando.rb
|
|
160
|
+
- lib/nando/baseline_templates/migration.rb
|
|
161
|
+
- lib/nando/errors.rb
|
|
162
|
+
- lib/nando/generator.rb
|
|
163
|
+
- lib/nando/interface.rb
|
|
164
|
+
- lib/nando/logger.rb
|
|
165
|
+
- lib/nando/migration.rb
|
|
166
|
+
- lib/nando/migrator.rb
|
|
167
|
+
- lib/nando/parser.rb
|
|
168
|
+
- lib/nando/parser_templates/migration.rb
|
|
169
|
+
- lib/nando/schema_diff.rb
|
|
170
|
+
- lib/nando/templates/migration.rb
|
|
171
|
+
- lib/nando/templates/migration_without_transaction.rb
|
|
172
|
+
- lib/nando/updater.rb
|
|
173
|
+
- lib/nando/utils.rb
|
|
174
|
+
- lib/nando/version.rb
|
|
175
|
+
- nando.gemspec
|
|
176
|
+
- notes.txt
|
|
177
|
+
homepage:
|
|
178
|
+
licenses: []
|
|
179
|
+
metadata:
|
|
180
|
+
allowed_push_host: https://rubygems.org
|
|
181
|
+
post_install_message:
|
|
182
|
+
rdoc_options: []
|
|
183
|
+
require_paths:
|
|
184
|
+
- lib
|
|
185
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
186
|
+
requirements:
|
|
187
|
+
- - ">="
|
|
188
|
+
- !ruby/object:Gem::Version
|
|
189
|
+
version: '0'
|
|
190
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
191
|
+
requirements:
|
|
192
|
+
- - ">="
|
|
193
|
+
- !ruby/object:Gem::Version
|
|
194
|
+
version: '0'
|
|
195
|
+
requirements: []
|
|
196
|
+
rubygems_version: 3.0.9
|
|
197
|
+
signing_key:
|
|
198
|
+
specification_version: 4
|
|
199
|
+
summary: Nando AdmiNs Database Objects
|
|
200
|
+
test_files: []
|