Acest depozit este arhivat si nu mai este intretinut in mod activ de @rtomayko incepand cu 08.11.2017. Problemele si PR-urile care documenteaza problemele actuale au fost lasate in mod intentionat deschise in scop informativ.
Proiectul a inceput la GitHub pentru a simplifica procesul de obtinere a datelor reale de productie in mediile de dezvoltare si etapizare. Il folosim pentru a reproduce date complete ale depozitului (inclusiv problemele asociate, cererea de extragere, comentariile de validare etc.) de la productie la mediile noastre de dezvoltare cu o singura comanda. Este extrem de util pentru depanarea problemelor, cererile de asistenta si rapoartele de exceptie, precum si pentru stabilirea datelor reale pentru evaluarea conceptelor de proiectare.
Rezumat
Se instaleaza
Aruncarea obiectelor
Evaluati o expresie Ruby, aruncand toate obiectele rezultate la iesirea standard:
Optiunea -r ./config/environment este utilizata pentru a necesita configurarea mediului si modelarea codului de instantiere necesar expresiei ruby.
Renuntarea la multe obiecte cu un script de descarcare
Scripturile Dump sunt fisiere sursa ruby normale evaluate in contextul basculantului. Metoda dump (obiect) este utilizata pentru a pune obiecte in fluxul de dump.
Rulati scriptul de dump:
Incarcarea mai multor obiecte:
Aruncarea si incarcarea peste ssh
ActiveRecord
Este inclus suportul de baza pentru incarcarea si incarcarea obiectelor ActiveRecord. Testele trec sub versiunile ActiveRecord 2.2.3, 2.3.5, 2.3.14, 3.0.10, 3.
edurne follando mi vecina desnuda
porno incesto real peliculas porno travestis
tv porno peliculas porno de incesto en español
mamas cachondas maduras impresionantes
viejas tetonas maduras latex
escenas porno en cine convencional porno flash
porno con abuelas mamadas en el cine
videos gays argentinos guarras masturbandose
penes grandes se corre dentro de su prima
se follan a su mujer orgias abuelas
videos de zofilia fotos de poyas
videos travestis española pillada
putas en vic obliga a su hermana a follar
tetudas españolas cerdas com gratis
maduras españolas masturbandose maduras españolas sexo
porno sub viendo como se follan a mi mujer
taboo.com orgasmosxxx
gitanas xxx hombres corriendose
videosdeincesto se deja follar
pelis porno españolas incesto abuela y nieto
1.0 si 3.2.0 sub RMN 1.8.7, precum si sub RMN 1.9.2.
Pentru a utiliza macrocomenzile de personalizare in modelele dvs., solicitati replicarea bibliotecii dupa ActiveRecord (de exemplu, config / initializers / libraries.rb):
Suportul ActiveRecord functioneaza sensibil fara personalizare, deci acest lucru nu este strict necesar pentru a utiliza comanda de replicare. Urmatoarele sectiuni documenteaza macro-urile de personalizare disponibile.
Asociere Dumping
Suportul copt adauga un comportament implicit mai mult sau mai putin sensibil pentru toate subclasele ActiveRecord :: Base, astfel incat sa arunce un obiect va aduce obiecte legate prin asocierile belong_to si has_one.
Spre deosebire de asociatiile 1: 1, asociatiile has_many si has_and_belongs_to_many nu sunt incluse automat. O astfel de actiune ar duce rapid la absorbtia intregii baze de date. Poate fi util sa marcati asociatii specifice pentru includerea automata utilizand macrocomanda replicate_associations. De exemplu, pentru a include intotdeauna inregistrari EmailAddress apartinand unui utilizator:
Puteti face acest lucru, de asemenea, trecand o optiune in scriptul de dump:
Chei naturale
In mod implicit, incarcatorul incearca sa creeze o noua inregistrare cu un nou cod cheie primara pentru toate obiectele. Acest lucru poate duce la erori de constrangere unice atunci cand exista deja o inregistrare cu atribute potrivite. Pentru a actualiza inregistrarile existente in loc sa le creati, definiti o cheie naturala pentru model folosind macrocomanda replicate_natural_key:
Mai multe nume de atribute pot fi specificate pentru a defini o cheie compusa. Atributele coloanei cheii straine (user_id) sunt adesea incluse in cheile naturale.
Omiterea atributelor si asocierilor
S-ar putea sa doriti sa excludeti anumite atribute sau asociatii de la eliminarea acestora. Pentru aceasta, utilizati macrocomanda replicate_omit_attributes:
Puteti omite asocierile apartenente la omiterea coloanei cu cheie straina.
Puteti face acest lucru, de asemenea, trecand o optiune in scriptul de dump:
Validari si apeluri de apel
IMPORTANT: Toate validarile ActiveRecord si apelurile de apel sunt dezactivate in partea de incarcare. In timp ce replica piggyback-urile pe AR pentru informatii despre relatii si foloseste ActiveRecord :: Base # save pentru a scrie obiecte in baza de date, este conceput pentru a actiona ca un instrument simplu de incarcare / incarcare.
Uneori este util sa rulati anumite tipuri de apeluri de apel pe replica. De exemplu, poate doriti sa creati fisiere pe disc sau sa incarcati informatii intr-un depozit de date separat de fiecare data cand un obiect intra in baza de date. Cea mai buna modalitate de a face acest lucru in prezent este de a inlocui metoda clasei load_replicant a modelului:
Aceasta interfata va fi imbunatatita in versiunile viitoare.
Obiecte personalizate
Alte tipuri de obiecte pot fi incluse in fluxul de dump, atata timp cat implementeaza metodele dump_replicant si load_replicant.
dump_replicant
Partea dump apeleaza #dump_replicant (dumper, opts = {}) pe fiecare obiect. Metoda trebuie sa apeleze dumper.write () cu numele clasei, id-ul si hash-ul atributelor tastate primitiv pentru obiect:
load_replicant
Partea de incarcare apeleaza :: load_replicant (tip, id, atribute) pe clasa pentru a incarca fiecare obiect in mediul curent. Metoda trebuie sa returneze un tuplu [id, obiect]:
Cum functioneaza
Formatul de dump este conceput pentru transmiterea in flux a datelor relationale. Fiecare obiect este codificat sub forma de tuplu [type, id, attributs] si directionat direct pe flux. Tipul (sirul de nume al clasei) si id-ul trebuie sa formeze o cheie distincta atunci cand sunt combinate, atributele trebuie sa fie compuse doar din chei de sir si valori pur si simplu tastate.
Relatiile dintre obiectele din flux sunt gestionate dupa cum urmeaza:
-
Atributele unui obiect pot codifica referinte la obiecte care il preced in flux folosind un format simplu de tuplu: [: id, „Utilizator”, 1234].
-
Partea de descarcare asigura ca obiectele sunt scrise in fluxul de descarcare in „ordine de referinta” astfel incat atunci cand un obiect A include un atribut de referinta pentru un obiect B, B este garantat sa ajunga inainte de A.
-
Partea de incarcare mentine o mapare a ID-urilor de la sistemul de descarcare la obiectele nou-reproduse de pe sistemul de incarcare. Cand incarcatorul intalneste o valoare de referinta [: id, „Utilizator”, 1234] in atributele unui obiect, acesta o converteste in valoarea id-ului de incarcare.
Descarcarea si incarcarea se intampla intr-un mod de streaming. Nu exista nicio limita pentru numarul de obiecte incluse in flux.








