عن المشروع
Goose هي أداة لترحيل قواعد البيانات تُوزَّع كواجهة سطر أوامر ومكتبة Go. تدير تطور مخطط قاعدة البيانات من خلال ملفات ترحيل تدريجية مكتوبة إما بلغة SQL أو كدوال Go.
قواعد البيانات المدعومة تشمل Postgres وMySQL وMariaDB وSpanner وSQLite وYDB وClickHouse وMSSQL وVertica وRedshift وTiDB وStarRocks وTurso وAzure SQL. يمكن تقليص حجم الملف الثنائي عن طريق استبعاد برامج التشغيل غير الضرورية عبر وسوم البناء.
التثبيت متاح عبر `go install` أو Homebrew على macOS أو بناء مخصص. يمكن تمرير الإعدادات كوسائط أوامر أو عبر متغيرات بيئة مثل GOOSE_DRIVER وGOOSE_DBSTRING وGOOSE_MIGRATION_DIR وGOOSE_TABLE، بما في ذلك التحميل من ملفات `.env`.
توفر الواجهة أوامر لإنشاء الترحيلات (`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` ويمكن تضمينها في الملف الثنائي باستخدام حزمة embed في Go. كما تُدعم بيانات البذر والترحيلات المضمنة.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.