Yoyo-göçler düz SQL DB-API kullanarak bir veritabanı şeması göç aracıdır.
yoyo-göçler ne yapıyor?
Veritabanı uygulamaları geliştikçe, veritabanı şeması değişiklikler genellikle gereklidir. Bunlar genellikle (herhangi bir SQL veya python komut yoyo-göçler ile kullanılabilir olmasına rağmen) masa ifadeleri ALTER / CREATE içeren bir defaya mahsus SQL komut olarak yazılabilir.
Yoyo-göçler gibi komut bir dizin okuma ve gerektiği gibi veritabanına bunları uygulamak için bir komut satırı aracı sağlar.
Veritabanı desteği
PostgreSQL, MySQL ve SQLite veritabanları desteklenmektedir.
Kullanım
Yoyo-göçler genellikle komut satırı komut dosyası olarak çağrılır.
Örnekler:
Dizin göçler tüm göçler oku ve PostgreSQL veritabanına uygulamak:
yoyo-migrate ./migrations/ postgres geçerlidir: // kullanıcı: şifre @ localhost / veritabanı
Geri alma göçler önce bir MySQL veritabanı uygulanan:
yoyo-migrate geri alma ./migrations/ mysql: // kullanıcı: şifre @ localhost / veritabanı
Yeniden uygulayın (yani sonra tekrar uygulayın geri alma) konum /home/sheila/important-data.db bir SQLite veritabanı göçleri:
takıp ./migrations/ sqlite yoyo-göç: ////home/sheila/important-data.db
Varsayılan olarak, yoyo-göçler kolay uygulamak ve geri alma için hangi göçler seçmek için yapım, uygulamadan önce her göç dosyası için isteyen, interaktif modda başlatır.
göçler dizin göç betikleri bir dizi içermelidir. Her göç komut adımlar bir dizi içeren bir python dosyası (.py) 'dir. Her adım, bir göç sorgu ve (isteğe bağlı olarak) geri alma sorgusu içermelidir. Örneğin:
#
# Dosya: göçler / 0001.create-foo.py
#
adım (
& Nbsp; "TABLO foo (id INT, bar VARCHAR (20), PRIMARY KEY (id)) CREATE",
& Nbsp; "DROP TABLE foo",
)
(.py uzantısı olmadan) her dosyanın dosya adı her göç tanımlayıcı olarak kullanılır. Göçler dosya sırayla uygulanır, böylece (örneğin '20090115-xyz.py') ya da başka artan sayıda bir tarih kullanarak dosyalarınızı adını yararlıdır.
yoyo-migrate uygulanmış olan göçler izlemek için, hedef veritabanı, _yoyo_migration bir tablo oluşturur.
Adımlar de geçerlidir birini, geri alma, ya da tüm olması gereken isteğe bağlı argüman ignore_errors, alabilir. Tablo foo zaten başka yollarla oluşturulmuş olabilir, önceki örnekte, biz ignore_errors ekleyebilirsiniz Eğer = göçler olursa olsun devam etmesi için adım 'uygulamak':
#
# Dosya: 0001.create-foo.py
#
adım (
& Nbsp; "TABLO foo (id INT, bar VARCHAR (20), PRIMARY KEY (id)) CREATE",
& Nbsp; "DROP TABLE foo",
& Nbsp; ignore_errors = 'uygulamak',
)
Adımlar ayrıca tek argüman olarak bir veritabanı bağlantısı almak piton çağrılabilir nesneler olabilir. Örneğin:
#
# Dosya: 0002.update_keys.py
#
def do_step (bağl):
& Nbsp; imleç = conn.cursor ()
& Nbsp; cursor.execute (
& Nbsp; "sysinfo INSERT INTO"
& Nbsp; "(OSName, hostname, sürüm, sürüm, kemer)"
& Nbsp; "DEĞERLER (% s,% s,% s,% s,% s% s)",
& Nbsp; os.uname ()
& Nbsp;)
adım (do_step)
Şifre güvenliği
Normalde komut satırında veritabanı bağlantı dizesi bir parçası olarak veritabanı kullanıcı adı ve parola belirtin. Bir çok kullanıcı makinesinde, diğer kullanıcıların işlem listesinde veritabanı şifrenizi görüntüleyebilir.
-p veya --prompt-şifre bayrağı bağlantı dizesinde belirtilen herhangi bir şifre yok sayarak, bir parola soracak yoyo-migrate neden olur. Bu şifre sisteminin işlem listesinde üzerinden diğer kullanıcılara olmayacaktır.
Bağlantı dizesi önbelleğe alma
Eğer göçler dizinde .yoyo-göç olarak adlandırılan bir dosya veritabanı bağlantı dizesi önbelleğe istiyorsanız göçler yeni bir dizi üzerinde yoyo-göç ilk çalıştırdığınızda, size sorulacaktır.
Aynı göç sette sonraki çalışır belirtilmesi veritabanı bağlantı dizesi gerekmez Bu önbellek, göçler dizinine yereldir.
Bu, yazarak kaydeder süreç listelerinde veritabanı kullanıcı adı ve şifre gösteren önler ve yanlışlıkla bir taşındı zaman komut tarihinin bir önceki yoyo-göç girişi yeniden çalıştırarak yani (yanlış veritabanı üzerinde yoyo-göç çalışan riskini azaltır Farklı dizin).
Eğer kullanılacak bu önbellek dosyası istemiyorsanız, komut satırı seçenekleri --no-önbellek parametresini ekleyin
Bu sürümde Yeni nedir:.
- Fix
sürüm 4.2.1 yeni nedir:
- kritik dosyaları ihmal önceki sürümü için Bugfix.
nedir sürüm 4.1.6 Yeni:
- (teşekkürler Peter Shinners için) eklendi pencere desteği
nedir sürüm 4.1.5 Yeni:
- günlük işleyicileri yapılandırın, böylece v anahtar nedenleri çıkış konsolu (Andrew Nelis sayesinde) gitmek için.
- `` -v`` komut satırı anahtarı artık bir argüman alır ama bunun yerine birden çok kez belirtilebilir (yani kullanım `` -vvv`` yerine `` -v3``). `` --verbosity`` Eski davranışı korur.
sürüm 4.1.3 yeni nedir: geri '_yoyo_migration' için
- değiştirildi varsayılan göç tablo adı
Gereksinimler :
- Python
Yorum Bulunamadı