در pgmigrate2 یک ابزار پایتون که کمک می کند تا شما را به تکامل پایگاه داده خود را به همراه درخواست خود را است.
واحد اساسی PGmigrate قطعه SQL تک به نام پچ است.
پچ پایگاه داده نمونه
& nbsp؛ از گربه 000049_Added_index_on_CategorySlug.sql
--- ID: 89ccfca6-6851-11e1-99d8-a088b4e3b168
--- نویسنده: SERG
--- یادداشت: اضافه شده شاخص در CategorySlug
تاریخ ---: 2012-03-07 14:32
ایجاد catalog_category_slug_shop_id_slug منحصر به فرد INDEX
& nbsp؛ در catalog_category_slug
و nbsp؛ با استفاده از btree
و nbsp؛ (shop_id، مثل حلزون حرکت کردن).
همانطور که می پچ دیدن یک فایل SQL معتبر، که حتی می تواند به طور مستقیم اجرا است. این شهر همچنین دارای خوب، نام فایل قابل خواندن توسط انسان، و برخی از ابرداده.
شروع سریع
مقداردهی اولیه پایگاه داده
& nbsp؛ در pgmigrate2 PostgreSQL و init انجام: // کاربر @ رمز عبور / testdb
این جدول __applied_patches__ در testdb ایجاد کنید. این جدول استفاده می شود برای پیگیری که تکه های در حال حاضر استفاده شود.
ایجاد یک مخزن پچ و پچ اول
& nbsp؛ در mkdir به patchrepo
& nbsp؛ در pgmigrate2 newpatch patchrepo
... ویرایش پچ در ویرایشگر متن خود را ...
نوشته 'patchrepo / 000001_creating_table_x.sql'
این پچ خالی ایجاد و باز کردن آن در ویرایشگر متن خود را. پچ SQL، و یادداشت اختیاری را وارد کنید، توصیف آنچه عملکرد این پچ است.
PGmigrate خواهد یک فایل مانند patchrepo / 000001_creating_table_x.sql که در آن 000001 شماره سریال پچ است، ایجاد و creating_table_x پچ یادداشت slugified است. PGmigrate خواهد بقیه پچ فراداده های خود را پر کنید.
بررسی آنچه باید به اعمال
& nbsp؛ در pgmigrate2 چک patchrepo / PostgreSQL و: // کاربر @ رمز عبور / testdb
نیاز به درخواست: ایجاد جدول X
انتخاب همه تکه های در پچ مخزن طول می کشد، و چاپ یک لیست از تکه های که نیاز به testd به کار گرفته شوند.
درخواست تکه
& nbsp؛ در pgmigrate2 مهاجرت patchrepo / PostgreSQL و: // کاربر @ رمز عبور / testdb
نیاز به درخواست 1 تکه:
استفاده از 'ایجاد جدول X'
مهاجرت تمام تکه های از پچ مخزن طول می کشد، و به ترتیب کسانی که از آنها، که شناسه هستند در حال حاضر در __applied_patches__ جداول از testdb نمی صدق می کند.
کدهای جاسازی
در اینجا به عنوان مثال چگونه استفاده می کنیم PGmigrate در پروژه ما است:
### دستورات مهاجرت از پایگاه داده
@ finaloption.command (config_opts)
دف dbmigrate (پیکربندی):
& nbsp؛ از واردات shopium.core.config read_config
& nbsp؛ در پیکربندی = read_config (پیکربندی)
& nbsp؛ از واردات pgmigrate2 API
& nbsp؛ در api.migrate بازگشت ('مهاجرت'، config.db_uri)
@ finaloption.command (config_opts)
دف dbnewpatch (پیکربندی):
& nbsp؛ از واردات shopium.core.config read_config
& nbsp؛ در پیکربندی = read_config (پیکربندی)
& nbsp؛ از واردات pgmigrate2 API
& nbsp؛ در واردات فرزند
& nbsp؛ در مسیر = api.newpatch ('مهاجرت')
& nbsp؛ اگر مسیر:
& nbsp؛ در subprocess.check_call (٪ مسیر، پوسته 'جیوه٪ اضافه کنید' = واقعی) # اضافه فقط پچ ایجاد به جیوه
@ finaloption.command (config_opts)
دف dbcheckstatus (پیکربندی):
& nbsp؛ از واردات shopium.core.config read_config
& nbsp؛ در پیکربندی = read_config (پیکربندی)
& nbsp؛ از واردات pgmigrate2 API
& nbsp؛ در api.check_status ('مهاجرت'، config.db_uri)
مورد نیاز:
پایتون
نظر یافت نشد