Metabase

مقدمه‌ای بر اکشن‌ها

فعلاً اکشن‌ها فقط برای PostgreSQL و MySQL در دسترس هستند.

مثال اکشن

اکشن‌ها چیستند؟

اکشن‌ها موجودیت‌هایی در متابیس هستند که به شما امکان می‌دهند فرم‌ها و منطق کسب‌وکار سفارشی بسازید.

اکشن‌ها به شما امکان می‌دهند SQL پارامتری‌شده بنویسید که به پایگاه دادهٔ شما می‌نویسد. اکشن‌ها می‌توانند به دکمه‌ها در داشبوردها متصل شوند تا گردش کارهای سفارشی ایجاد کنند. حتی می‌توانید فرم‌های پارامتری‌شده‌ای که اکشن‌ها تولید می‌کنند را به‌صورت عمومی به‌اشتراک بگذارید تا داده جمع‌آوری کنید.

در اینجا چند ایده برای آنچه می‌توانید با اکشن‌ها انجام دهید آورده شده است:

  • مشتری‌ای که در یک داشبورد مشاهده می‌کنید را به‌عنوان VIP علامت‌گذاری کنید.
  • به اعضای تیم امکان حذف داده‌های اضافی را بدهید.
  • یک فرم بازخورد مشتری ایجاد کنید و آن را در وب‌سایتتان جاسازی کنید.

اکشن‌ها باید به یک مدل اضافه شوند، اما اکشن‌ها فقط روی جداول خامی که آن مدل‌ها را پشتیبانی می‌کنند اجرا می‌شوند (بنابراین اکشن‌ها هرگز تعریف مدل شما را ویرایش نمی‌کنند).

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

فعال‌سازی اکشن‌ها برای یک پایگاه داده

برای اینکه اکشن‌ها کار کنند، ابتدا باید دو کار زیر را انجام دهید:

  1. فعال‌سازی اکشن‌های مدل برای اتصال پایگاه داده. برای فعال‌سازی اکشن‌ها برای یک اتصال پایگاه داده، ادمین‌ها باید روی آیکون gear در گوشهٔ بالا سمت راست کلیک کنند و به Admin settings > Databases بروند، سپس روی پایگاه داده‌ای که می‌خواهید برای آن اکشن ایجاد کنید کلیک کنند. در سمت راست فرم تنظیمات اتصال، گزینهٔ Model actions را toggle کنید. برای اینکه اکشن‌ها کار کنند، حساب کاربر پایگاه داده (حسابی که برای اتصال به پایگاه داده استفاده می‌کنید) باید مجوزهای نوشتن داشته باشد. و فعلاً اکشن‌ها فقط در پایگاه‌داده‌های PostgreSQL و MySQL پشتیبانی می‌شوند.
  2. حداقل یک مدل از آن پایگاه داده ایجاد کنید. اکشن‌ها با مدل‌ها مرتبط هستند، بنابراین باید حداقل یک مدل ایجاد کرده باشید (یا به آن دسترسی داشته باشید) قبل از اینکه بتوانید شروع به ایجاد اکشن کنید.

چه کسانی می‌توانند از اکشن‌ها استفاده کنند

  • برای ایجاد یا ویرایش یک اکشن، یک شخص باید در گروهی با مجوزهای ویرایش کوئری Native برای پایگاه دادهٔ مرتبط باشد.
  • برای اجرای یک اکشن، فقط نیاز به دسترسی مشاهده به مدل یا داشبورد اکشن (یا یک لینک به یک اکشن عمومی) دارید.

انواع اکشن‌ها

دو نوع اکشن وجود دارد:

اجرای اکشن‌ها

راه‌های متعددی برای اجرای اکشن‌ها وجود دارد:

اکشن‌ها داده را در جداول تغییر می‌دهند، که بر مدل‌ها تأثیر می‌گذارد

فقط چیزی برای روشن‌سازی اینجا: اکشن‌ها، حتی اگر به مدل‌ها اضافه شوند، تغییراتشان را در جدول زیربنایی که یک مدل کوئری می‌کند اعمال می‌کنند. که به این معنی است که هر کسی که به جدول زیربنایی دسترسی دارد، یا به سؤال‌ها یا مدل‌های دیگر بر اساس آن جدول، قادر به دیدن تأثیرات یک اکشن خواهد بود. ابزارهای دیگر غیر از متابیس که به آن پایگاه داده متصل هستند نیز این تغییرات را دریافت می‌کنند.

در این معنا، مدل‌ها کانتینرهایی برای اکشن‌ها هستند؛ مدل‌ها راهی برای سازمان‌دهی اکشن‌ها هستند. در واقع، می‌توانید (در تئوری) یک اکشن سفارشی به یک مدل اضافه کنید که به‌روزرسانی غیرمرتبط با دادهٔ مدلش را انجام می‌دهد. به‌عنوان مثال، می‌توانید یک اکشن سفارشی بنویسید که جدول Accounts را به‌روزرسانی می‌کند، و آن اکشن را به یک مدل اضافه کنید که فقط یک جدول غیرمرتبط (مثلاً جدول Orders) را کوئری می‌کند. اما، می‌دانید، شاید این کار را نکنید (مگر اینکه دلیل خوبی داشته باشید). با این حال، اکشن‌های پایه فقط برای مدل‌هایی که یک جدول خام واحد را می‌پوشانند در دسترس هستند.

قبل از استفاده از اکشن‌ها در production، در نظر بگیرید که با اکشن‌ها روی برخی داده‌های نمونه (مثل Sample Database همراه متابیس) بازی کنید تا احساس کنید چگونه کار می‌کنند.

نکات اکشن‌ها

  • اگر کش برای جدول یا مدل مرتبط فعال باشد، ممکن است تأثیرات یک اکشن را در متابیس نبینید تا زمانی که متابیس داده را به‌روزرسانی کند (اگرچه همیشه می‌توانید داده را به صورت دستی به‌روزرسانی کنید).
  • هنگام ایجاد رکوردها در جدولی که فاقد کلید اصلی تولیدشده به‌طور خودکار است، باید یک ID در دسترس وارد کنید (یعنی یک ID که قبلاً توسط رکورد دیگری استفاده نشده باشد).
  • نمی‌توانید اکشن‌ها را "undo" کنید. با این حال، می‌توانید یک اکشن ایجاد و اجرا کنید تا یک رکورد حذف‌شده را دوباره ایجاد کنید، یا یک رکورد به‌روزرسانی‌شده را به مقادیر اصلی‌اش برگردانید (به شرطی که مقادیر اصلی را بدانید).
  • اکشن‌ها برای داشبوردهای عمومی و داشبوردها در جاسازی‌های ایستا در دسترس نیستند.

مطالعهٔ بیشتر