منصوبے کے بارے میں
Goose ایک ڈیٹا بیس مائیگریشن ٹول ہے جو کمانڈ لائن انٹرفیس اور Go لائبریری دونوں کے طور پر تقسیم کیا جاتا ہے۔ یہ ڈیٹا بیس اسکیما کی ارتقاء کو انکریمنٹل مائیگریشن فائلوں کے ذریعے منظم کرتا ہے، جو یا تو SQL یا Go فنکشنز کے طور پر لکھی جاتی ہیں۔
سپورٹ شدہ ڈیٹا بیسز میں Postgres، MySQL، MariaDB، Spanner، SQLite، YDB، ClickHouse، MSSQL، Vertica، Redshift، TiDB، StarRocks، Turso اور Azure SQL شامل ہیں۔ بائنری کو بلڈ ٹیگز کے ذریعے غیر ضروری ڈرائیورز کو خارج کر کے چھوٹا کیا جا سکتا ہے۔
انسٹالیشن `go install`، macOS پر Homebrew، یا کسٹم بلڈ کے ذریعے دستیاب ہے۔ کنفیگریشن کمانڈ آرگیومنٹس یا ماحولیاتی متغیرات جیسے GOOSE_DRIVER، GOOSE_DBSTRING، GOOSE_MIGRATION_DIR اور GOOSE_TABLE کے ذریعے دی جا سکتی ہے، بشمول `.env` فائلوں سے لوڈ کرنا۔
CLI مائیگریشن بنانے (`create`)، لاگو کرنے (`up`، `up-by-one`، `up-to`)، واپس رول کرنے (`down`، `down-to`، `reset`، `redo`)، حالت کا معائنہ کرنے (`status`، `version`) اور فائلوں کی توثیق کرنے (`validate`، `fix`) کے لیے کمانڈز پیش کرتا ہے۔ ایک `-allow-missing` فلیگ آؤٹ آف آرڈر مائیگریشنز کو قابل بناتا ہے، اور ٹیم ورک فلو کے لیے ٹائم اسٹیمپس کو ترتیب وار نمبرنگ کے ساتھ ملا کر ایک ہائبرڈ ورژننگ طریقہ تجویز کیا جاتا ہے۔
SQL مائیگریشنز میں `-- +goose Up` اور `-- +goose Down` جیسے انوٹیشنز استعمال ہوتے ہیں، پیچیدہ سٹیٹمنٹس کے لیے اختیاری `NO TRANSACTION` اور `StatementBegin`/`StatementEnd` مارکرز کے ساتھ۔ ماحولیاتی متغیر کی تبدیلی کو فی فائل `ENVSUB ON`/`ENVSUB OFF` کے ساتھ فعال کیا جا سکتا ہے۔ Go مائیگریشنز `goose.AddMigration` کے ذریعے رجسٹر ہوتی ہیں اور Go کے embed پیکج کا استعمال کر کے بائنری میں شامل کی جا سکتی ہیں۔ ڈیٹا سیڈنگ اور ایمبیڈڈ مائیگریشنز بھی سپورٹ ہیں۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.