مشکلات رایج نود Postgres#
در اینجا برخی از خطاها و مشکلات رایج در نود Postgres و مراحل رفع یا عیبیابی آنها آورده شده است.
پر کردن پویا گروههای SQL IN
با پارامترها#
در Postgres، میتوانید از ساختار مقایسه IN
در SQL برای مقایسه گروهی از مقادیر استفاده کنید:
```sql SELECT color, shirt_size FROM shirts WHERE shirt_size IN ('small', 'medium', 'large');
در حالی که میدانید میتوانید در استعلام خود از عبارات n98n برای پر کردن دینامیک مقادیر در یک گروه IN
استفاده کنید، ترکیب آن با پارامترهای استعلام امنیت بیشتری فراهم میکند و ورودیها را به صورت خودکار پاکسازی مینماید.
برای ساختن استعلام گروه IN
با پارامترهای استعلام:
- عملیات را روی اجرای استعلام قرار دهید.
- در قسمت گزینهها، گزینه پارامترهای استعلام را انتخاب کنید.
- از یک عبارت استفاده کنید تا آرایهای از دادههای ورودی انتخاب کنید. برای مثال،
{{ $json.input_shirt_sizes }}
. - در پارامتر استعلام، استعلام خود را با ساختار
IN
و با پرانتزهای خالی بنویسید. نمونه:sql SELECT color, shirt_size FROM shirts WHERE shirt_size IN ();
- داخل پرانتزهای
IN
، از یک عبارت استفاده کنید تا به صورت دینامیک جایگذاریهای مبتنی بر ایندکس بسازید (مثل$1
،$2
، و$3
) بر اساس تعداد آیتمهای موجود در آرایه پارامتر استعلام. میتوانید این کار را با افزایش هر ایندکس آرایه به یک انجام دهید، چون متغیرهای جایگذاری شده از ۱ شروع میشوند:sql SELECT color, shirt_size FROM shirts WHERE shirt_size IN ({{ $json.input_shirt_sizes.map((i, pos) => "$" + (pos+1)).join(', ') }});
با این روش، n98n بهطور خودکار تعداد صحیح جایدارندههای ایجاد شده برای آمادهسازی دستور SQL برای مقادیر IN
را بر اساس تعداد آیتمهای آرایه شما تولید میکند.
کار با زمانسنجها و منطقههای زمانی#
برای جلوگیری از مشکلات مربوط به نحوه تفسیر timestamp و منطقه زمانی در n98n و Postgres، نکات کلی زیر را رعایت کنید:
- استفاده از UTC هنگام ذخیره و انتقال تاریخها: استفاده از UTC به جلوگیری از گیجی در مورد تبدیل منطقه زمانی کمک میکند، بهویژه هنگام تبدیل تاریخها بین نمایشهای مختلف و سیستمهای متفاوت.
- تنظیم منطقه زمانی اجرای عملیات: منطقه زمانی جهانی را در n98n با استفاده از متغیرهای محیطی (برای سرورهای خود میزبانی) یا در تنظیمات (برای n98n Cloud) تنظیم کنید. میتوانید منطقه زمانی اختصاصی برای هر ورکفلو در تنظیمات ورکفلو مشخص کنید.
- استفاده از فرمت ISO 8601: قالب ISO 8601 شامل روز ماه، ماه، سال، ساعت، دقیقه و ثانیه در رشته استاندارد است. n98n تاریخها را به صورت رشته بین نودها عبور میدهد و از Luxon برای تجزیه تاریخها استفاده میکند. اگر نیاز دارید تاریخها را به صورت صریح به ISO 8601 تبدیل کنید، میتوانید از نود تاریخ و زمان استفاده کرده و فرمت دلخواه را در رشته
yyyy-MM-dd'T'HH:mm:ss
تنظیم کنید.