Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

scenerio feature #40

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open

Conversation

ijozwiak
Copy link

@ijozwiak ijozwiak commented Mar 22, 2019

zmiana zapisu projektu z:
"tables": { "test": { "testcol": { "action": "empty" } } },

na

"tables": { "test": { "testcol": { "default": { "action": "empty" }, "scenerio": { "action": "delete", "attributes": { "where": "id>0" } } } } },

Daje to możliwość tworzenia scenariuszy dzięki którym można czyścić bazę przed wykonaniem anonimizacji w zakresie jaki potrzebujemy (np. zostawiamy jednego bądź kilku klientów)

Dodanie konfiguracji dumpu dla scenariusza:

"dump_action": { "path": "path to dump dir", "scenerio": { "file": "file.sql", "tables": { "test": { "where": "id in (1,2)" }, "test2": { } } } }

Z pierwszej tabeli zostaną zrzucone dwa rekordy, druga tabela zostanie zrzucona w całości.

Zadanie, które wykonuje scenariusz wraz ze zrzutem to:
Rake.application.invoke_task("project:anonymize_database_with_scenerio[#{project_name}, default]")

Domyślnie każda tabela powinna mieć scenariusz default

@ijozwiak
Copy link
Author

ijozwiak commented Mar 22, 2019

Dodałam jeszcze możliwość tworzenia parametrów parametrów dla scenariuszy dumpu.
"dump_action": { "path": "path to dump dir", "scenerio": { "file": "file.sql", "tables": { "test": { "where": "idtest = %id%" }, "test2": { } } } }

Zmienił się przez to sposób uruchomienia zadania:

RUBY_ENV=dump bundle exec rake project:anonymize_database_with_scenerio[dump,'scenerio','id:1']

Jeżeli istnieje potrzeba przekazania kilku parametrów, przekazuje się je po średniku ";" np:

RUBY_ENV=dump bundle exec rake project:anonymize_database_with_scenerio[dump,'scenerio','id:1;id2:2;key:someurl']

Parametry również dostępne będą w części anonimizera w tworzonych zapytaniach do bazy

@ijozwiak
Copy link
Author

Dodałam opcję multiparametrów i domyślny template magento 1.9 aby wysłać kilka ID klienta np trzeba to rozdzielić "|" np
RUBY_ENV=dump bundle exec rake project:anonymize_database_with_scenerio[dump,'scenerio','id:1|2;key:someurl']

różnica pomiędzy poprzednim zapisem tj.
RUBY_ENV=dump bundle exec rake project:anonymize_database_with_scenerio[dump,'scenerio','id:1;id2:2;key:someurl']

jest taka, że | stworzy wartość po przecinku dla zapytania sql z wykorzystaniem IN bądź NOT IN, a ten zapis niżej przekazuje dwa różne parametry tj id i id2 z wartościami kolejno 1 i 2 (id=1 i id2=2)

@ijozwiak
Copy link
Author

dodałam testy + rozdzieliłam zadania na anonimizację i dump osobno teraz wykonuje się tak:
RUBY_ENV=dump bundle exec rake project:anonymize_database_with_scenerio[dump,'scenerio','id:1|2;key:someurl']
RUBY_ENV=dump bundle exec rake project:dump_database_with_scenerio[dump,'scenerio','id:1|2;key:someurl']

Ponad to teraz nazwa węzła "dump_action" zmieniła się na "dump_actions".
Scenariusze znajdujące się w węźle "dump_actions" przeniesione zostały do węzła "scenerios". Poprawny obecny zapis to:
"dump_actions": { "path": "path to dump dir", "scenerios": {"scenerio": { "file": "file.sql", "tables": { "test": { "where": "idtest = %id%" }, "test2": { } } } }}

Dodatkowa zmiana to możliwość dumpu wszystkich tabel a nie wybranych za pomocą "tables": "*"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants