Yoyo-miqrasiya düz SQL və DB-API istifadə edərək verilənlər bazası şeması miqrasiya yardım edir.
Yoyo-miqrasiya nə edir?
Verilənlər bazası proqramlar inkişaf kimi, verilənlər bazası şeması dəyişikliklər tez-tez tələb olunur. Bu adətən (hər hansı bir SQL və ya python script yoyo-köçlər ilə istifadə oluna bilər baxmayaraq) masa hesabatlarının ALTER / YARATDILAR olan bir-off SQL skript kimi yazıla bilər.
Yoyo-miqrasiya scripts bir kataloq oxu və tələb kimi verilənlər bazası onları tətbiq üçün bir command line aracı təmin edir.
Database dəstək
PostgreSQL, MySQL və SQLite verilənlər bazası dəstəklənir.
Istifadə
Yoyo-miqrasiya adətən command line script kimi istinad edilir.
Nümunələr:
Directory miqrasiyalar bütün miqrasiya oxumaq və PostgreSQL verilənlər bazası tətbiq:
yoyo-miqrasiya ./migrations/ Postgres aiddir: // user: parol @ localhost / bazası
Rollback miqrasiya əvvəl MySQL verilənlər bazası tətbiq:
yoyo-miqrasiya alma ./migrations/ mysql: // user: parol @ localhost / bazası
Yeniden (yəni sonra yenidən tətbiq Geriye Yuvarla) yer /home/sheila/important-data.db bir SQLite verilənlər bazası miqrasiya:
yeniden ./migrations/ SQLite yoyo-miqrasiya: ////home/sheila/important-data.db
Mənim cari olaraq, yoyo-miqrasiya asan tətbiq və Geriye Yuvarla olan miqrasiya seçmək üçün edilməsi, tətbiq əvvəl hər miqrasiya fayl üçün isteyen, interaktiv rejimdə başlayır.
miqrasiya kataloq miqrasiya scripts bir sıra olmalıdır. Hər miqrasiya script bir sıra addımlar olan bir python faylı (.py) təşkil edir. Hər bir addım miqrasiya sorğu və (isteğe bağlı) bir Geriye sorğu təşkil etməlidir. Məsələn:
#
# File: miqrasiya / 0001.create-foo.py
#
addım (
& Nbsp; "CƏDVƏL foo (id INT, bar VARCHAR (20), PRIMARY KEY (id)) yaratmaq",
& Nbsp; "DROP TABLE foo"
)
(.py uzadılması olmadan) hər bir fayl fayl hər miqrasiya üçün tanıdan kimi istifadə olunur. Miqrasiya fayl üçün tətbiq edilir, belə ki, (məsələn, "20090115-xyz.py") və ya digər incrementing sayı ilə bir tarix istifadə edərək faylları adını faydalıdır.
yoyo-miqrasiya tətbiq edilmiş miqrasiya izlemek üçün, hedef bazası, _yoyo_migration bir masa yaradır.
Steps də tətbiq biri Geriye Yuvarla və ya bütün olmalıdır isteğe arqument ignore_errors, bilər. Masa foo artıq başqa vasitə ilə yaradılmışdır ola bilər əvvəlki Məsələn, biz ignore_errors əlavə bilər = miqrasiya asılı olmayaraq davam imkan addım "tətbiq":
#
# File: 0001.create-foo.py
#
addım (
& Nbsp; "CƏDVƏL foo (id INT, bar VARCHAR (20), PRIMARY KEY (id)) yaratmaq",
& Nbsp; "DROP TABLE foo"
& Nbsp; ignore_errors = 'tətbiq',
)
Steps da onların bir arqument kimi bir verilənlər bazası bağlantısı almaq python callable obyektlərin ola bilər. Məsələn:
#
# File: 0002.update_keys.py
#
def do_step (Pak):
& Nbsp; kursor = conn.cursor ()
& Nbsp; cursor.execute (
& Nbsp; "SysInfo INSERT INTO"
& Nbsp; "(osname, kompüter adı, azad, version, arch)"
& Nbsp; "DƏYƏRLƏR (% s,% s,% s,% s,% s% s)",
& Nbsp; os.uname ()
& Nbsp;)
addım (do_step)
Parol təhlükəsizlik
Siz adətən command line verilənlər bazası keçid simli hissəsi kimi verilənlər bazası istifadəçi adınızı və şifrənizi daxil. Bir çox istifadəçi maşın, digər istifadəçilər prosesi siyahısında bazası parol görmək bilər.
p ya --prompt-parol bayrağı əlaqə simli müəyyən edilmiş hər hansı parol məhəl, parol təklif yoyo-keçirərkən səbəb olur. Bu parol sisteminin proses siyahısı vasitəsilə digər istifadəçilər üçün mövcud olmayacaq.
Bağlantı string caching
Siz miqrasiya kataloq .yoyo-miqrasiya adlı bir fayl verilənlər bazası keçid string önbelleğe istəyirsinizsə miqrasiya yeni dəsti yoyo-miqrasiya ilk çalıştırdığınızda, siz xahiş olunacaq.
Eyni miqrasiya set sonrakı çalışır müəyyən verilənlər bazası qoşulma simli ehtiyac yoxdur Bu cache, köçləri kataloq yerli.
Bu yazaraq saxlayır proses siyahıları bazası istifadəçi adınızı və şifrənizi göstərən qarşısını alır və təsadüfən bir köçürülüb zaman komanda tarixində əvvəlki yoyo-miqrasiya giriş yenidən çalışan, yəni (yanlış bazasında yoyo-miqrasiya çalışan riskini azaldır Müxtəlif kataloq).
Siz istifadə etmək üçün bu cache fayl istəmirsinizsə, command line variantları Heç bir-cache parametri əlavə
Bu azad Yeni nədir.
- Fix
versiyası 4.2.1 yeni nədir:
- tənqidi faylları çıxarılmışdır əvvəlki azad, üçün Bugfix.
nədir versiya 4.1.6-ci Yeni
- (thanks Peter Shinners For üçün) Əlavə Windows dəstək
nədir versiya 4.1.5-ci Yeni
- giriş işleyicileri Yapılandır ki, v keçid səbəbləri çıxış konsol (Andrew Nelis sayəsində) getmək üçün.
- `` -v`` command line keçid artıq mübahisə edir, lakin əvəzinə neçə dəfə müəyyən edilə bilər (yəni istifadə `` -vvv`` yerinə `` -v3``). `` --verbosity`` Köhnə davranış saxlayır.
versiya 4.1.3 yeni nədir: geri '_yoyo_migration "üçün
- dəyişdi default miqrasiya cədvəl adı
tələblər
- Python
Şərhlər tapılmadı