Metabase

به‌روزرسانی متابیس

در این صفحه یاد می‌گیرید چگونه متابیس را به نسخهٔ جدید ارتقا دهید.

به‌روزرسانی Metabase Cloud

اگر از پلن Metabase Cloud استفاده می‌کنید، با هر انتشار جدید متابیس شما به‌صورت خودکار به‌روزرسانی می‌شود و نیازی به اقدام شما نیست ( مگر این‌که از SDK تع嬬ب تحلیلی استفاده کنید ).

این‌که چه زمانی به‌روزرسانی شوید به نوع انتشار بستگی دارد:

  • انتشارهای جزئی (مثلاً x.54.4 به x.54.5): معمولاً حدود یک هفته.
  • انتشارهای اصلی (مثلاً x.53.4 به x.54.1): طولانی‌تر، معمولاً چند ماه، تا مطمئن شویم همه‌چیز روان پیش می‌رود.

مشتریان کلود می‌توانند با ایمیل به help@metabase.com درخواست به‌روزرسانی زودتر بدهند. لطفاً URL نمونهٔ متابیس خود را ذکر کنید.

نمونه‌هایی که روی Metabase Cloud از SDK تع嬬ب تحلیلی استفاده می‌کنند باید درخواست به‌روزرسانی بدهند

اگر در Metabase Cloud از SDK تع嬬ب تحلیلی استفاده می‌کنید، نسخهٔ شما را «پین» می‌کنیم تا خودکار به‌روزرسانی نشود، چون باید پیش از ارتقا تغییرها را آزمایش کنید.

برای به‌روزرسانی لازم است از طریق تماس با پشتیبانی درخواست خود را ثبت کنید.

راهنمای ارتقای SDK تع嬬ب تحلیلی را ببینید.

به‌روزرسانی متابیس با میزبانی شخصی

مراحل ارتقا به نسخهٔ جدید (چه جزئی چه اصلی):

۱. از پایگاه‌دادهٔ برنامه نسخهٔ پشتیبان بگیرید

پایگاه‌دادهٔ برنامه همه‌چیز (به‌جز دادهٔ منبع متصل) را دربارهٔ نمونهٔ متابیس ذخیره می‌کند. هرچند احتمال نیاز به بازگشت پایین است، اما داشتن نسخهٔ پشتیبان خیالتان را راحت می‌کند.

به پشتیبان‌گیری از داده‌های برنامهٔ متابیس مراجعه کنید.

۲. نسخهٔ جدید متابیس را جایگزین کنید

بسته به این‌که از ایمیج کانتینر استفاده می‌کنید یا فایل JAR، مراحل متفاوت است.

ارتقای ایمیج کانتینر

  1. کانتینر فعلی را متوقف کنید.

  2. آخرین ایمیج Docker متابیس را بکشید (ترجیحاً به‌جای latest یک تگ مشخص استفاده کنید).

    نسخهٔ متن‌باز متابیس:

    docker pull metabase/metabase:latest
    

    نسخهٔ Pro یا Enterprise:

    docker pull metabase/metabase-enterprise:latest
    
  3. کانتینر جدید را اجرا کنید. با توجه به پورت‌ها و نام کانتینر، فرمان نمونه:

    نسخهٔ متن‌باز:

    docker run -d -p 3000:3000 -e MB_DB_CONNECTION_URI="jdbc:postgresql://<host>:5432/metabase?user=<username>&password=<password>" --name metabase metabase/metabase:latest
    

    نسخهٔ Pro یا Enterprise:

    docker run -d -p 3000:3000 -e MB_DB_CONNECTION_URI="jdbc:postgresql://<host>:5432/metabase?user=<username>&password=<password>" --name metabase metabase/metabase-enterprise:latest
    

در راه‌اندازی، متابیس به‌طور خودکار مهاجرت‌ها را انجام می‌دهد و پس از اتمام، نسخهٔ جدید فعال است.

ارتقای فایل JAR

برای ارتقا باید سرویس را متوقف کنید، فایل JAR را با نسخهٔ جدید جایگزین کنید و سرویس را مجدداً بالا بیاورید.

برای مثال، وقتی در Debian متابیس را به‌عنوان سرویس با Nginx اجرا می‌کنید:

  1. سرویس متابیس را متوقف کنید. اگر نام سرویس metabase.service است:

    sudo systemctl stop metabase.service
    
  2. آخرین نسخهٔ فایل JAR را دانلود کنید:

    فایل JAR قدیمی را با نسخهٔ جدید جایگزین کنید.

  3. سرویس را دوباره راه‌اندازی کنید:

    sudo systemctl restart metabase.service
    

ارتقا از نسخه‌های قدیمی‌تر متابیس

اگر روی نسخه‌ای قدیمی‌تر از متابیس ۴۰ هستید، باید مرحله‌به‌مرحله تا آخرین نسخهٔ سری ۴۰ ارتقا دهید و از آن‌جا به نسخهٔ فعلی بپرید.

مثلاً اگر متابیس ۱.۳۸ اجرا می‌کنید:

  • 1.38.X
  • 1.39.X
  • 1.40.X
  • آخرین نسخه

X یعنی آخرین نسخهٔ در دسترس هر سری.

فهرست انتشارهای متابیس را بررسی کنید.

هنگام ارتقا بین نسخه‌های اصلی (مثل v53.x به v54.x)، همیشه از آخرین نسخهٔ جزئی آن سری استفاده کنید؛ مثلاً برای ارتقا از v50 به v51، آخرین نسخهٔ نقطه‌ای سری ۵۱ را نصب کنید.

ارتقای متابیس روی پلتفرم‌های دیگر

در طول ارتقا یا داون‌گرید چه می‌شود؟

در یک ارتقای نسخهٔ اصلی (مثلاً 53.1 یا 54.1)، متابیس:

  • تمام مهاجرت‌های لازم را انجام می‌دهد، از جمله تغییرات طرح پایگاه‌دادهٔ برنامه.
  • همهٔ متادیتای لازم را در پایگاه‌دادهٔ برنامه حفظ می‌کند.

همهٔ این کارها خودکار انجام می‌شود.

اگر پس از ارتقای نسخهٔ اصلی نیاز به داون‌گرید داشته باشید، باید از نسخهٔ پشتیبان برگردید یا دستی به نسخهٔ پایین‌تر مهاجرت کنید، وگرنه احتمال دارد متابیس اجرا نشود.

در ارتقای نسخهٔ جزئی (مثلاً 54.1 به 54.2)، معمولاً فقط کافی است کانتینر یا JAR جدید را جایگزین کنید و در موارد نادر مهاجرت انجام می‌شود؛ همان‌طور که در ارتقای اصلی هم متابیس این روند را خودکار انجام می‌دهد. (و البته که قبل از هر ارتقا نسخهٔ پشتیبان می‌گیرید!)

بازگشت از ارتقا یا رجوع به نسخهٔ قدیمی‌تر

فرمان downgrade باید روی فایل JAR با شمارهٔ نسخهٔ بالاتر اجرا شود.

در کل، بهترین راهکار داشتن نسخه‌های پشتیبان منظم است؛ بنابراین برای بازگرداندن ارتقا توصیه می‌کنیم از پشتیبان پایگاه‌دادهٔ برنامه استفاده کنید.

اگر پس از ارتقا تغییرهایی داشته‌اید (مثل افزودن پرسش یا داشبورد) که می‌خواهید حفظ کنید، می‌توانید از فرمان migrate down استفاده کنید تا طرح پایگاه‌داده به نسخهٔ قبلی برگردد. هنگام ارتقا، متابیس مهاجرت‌هایی انجام می‌دهد که ممکن است طرح پایگاه‌دادهٔ برنامه را عوض کند؛ migrate down این تغییرها را برمی‌گرداند. توصیهٔ ما همچنان بازیابی از پشتیبان است و فقط در صورت نیاز به حفظ تغییرهای جدید از migrate down کمک بگیرید.

استفاده از فرمان migrate down

متابیس را متوقف کنید و از JAR فعلی (نسخهٔ ارتقایافته، نه نسخهٔ قدیمی) برای اجرای migrate down استفاده کنید. مطمئن شوید جزئیات اتصال پایگاه‌دادهٔ برنامه در متغیرهای محیطی تنظیم شده است:

export MB_DB_TYPE=postgres
export MB_DB_DBNAME=metabaseappdb
export MB_DB_PORT=5432
export MB_DB_USER=username
export MB_DB_PASS=password
export MB_DB_HOST=localhost
java --add-opens java.base/java.nio=ALL-UNNAMED -jar metabase.jar migrate down

اگر از Docker استفاده می‌کنید، فرمان "migrate down" (با کوتیشن) را همراه با متغیرهای اتصال اجرا کنید:

docker run
  -e "MB_DB_TYPE=postgres" \
  -e "MB_DB_DBNAME=metabaseappdb" \
  -e "MB_DB_PORT=5432" \
  -e "MB_DB_USER=name" \
  -e "MB_DB_PASS=password" \
  -e "MB_DB_HOST=my-database-host" \
--rm metabase/metabase:<tag> "migrate down"

به کوتیشن‌های "migrate down" توجه کنید. همچنین می‌توانید به داخل کانتینر شل بزنید و فرمان را همان‌جا اجرا کنید.

بعد از اتمام مهاجرت، متابیس را با JAR یا ایمیج نسخه‌ای که می‌خواهید اجرا کنید بالا بیاورید.

به‌روزرسانی متابیس در کلاستر

اگر متابیس را در کلاستر اجرا می‌کنید:

  1. تعداد نودها را به یک نود کاهش دهید. نمی‌توان همهٔ نودها را همزمان ارتقا داد، چون فرآیند ارتقا با گرفتن قفل مهاجرت روی پایگاه‌دادهٔ برنامه توسط یک نود انجام می‌شود. اگر چند نود همزمان فعال باشند و طرح پایگاه‌داده تغییر کند، نودهای قدیمی رفتار ناسازگار خواهند داشت.
  2. ارتقا را طبق مراحل بالا انجام دهید.
  3. تعداد نودها را به مقدار قبلی برگردانید.

مطمئن شوید ارکستریتور یا مدیر کلاستر هنگام مهاجرت متابیس را متوقف نکند؛ در غیر این صورت احتمال خراب شدن پایگاه‌دادهٔ برنامه وجود دارد و باید از پشتیبان بازیابی کنید.