0Pricing
Supabase Backend as a Service · درس

استخدام إضافات Postgres

اكتشف كيفية تفعيل إضافات PostgreSQL القوية واستخدامها لإضافة وظائف جديدة، مثل إنشاء UUID أو البحث في النصوص الكاملة

استخدام إضافات Postgres درس مجاني في Supabase Backend as a Service على CoddyKit. هذا هو الدرس 1 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Supabase Backend as a Service، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Supabase Backend as a Service 3 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

What are Postgres Extensions?

PostgreSQL is super powerful, but did you know you can make it even better? That's where extensions come in!

Extensions are like plugins for your database. They add new functions, data types, or operators that aren't available by default.

Supabase, built on PostgreSQL, lets you easily enable many of these extensions to boost your app's capabilities.

Enabling Extensions in Supabase

Turning on an extension in Supabase is straightforward. You usually do it through the SQL Editor in your Supabase Dashboard.

  • Go to the SQL Editor.
  • Run the command: CREATE EXTENSION extension_name;
  • Make sure you have admin privileges for your database.

Once enabled, the new features become available for use across your database.

CREATE EXTENSION "uuid-ossp"; -- Example for UUIDs

Unique IDs with `uuid-ossp`

Generating truly unique identifiers is crucial for many applications. PostgreSQL's built-in SERIAL or BIGINT sequences are great for simple auto-incrementing IDs, but they are sequential.

For global uniqueness, especially in distributed systems, Universally Unique Identifiers (UUIDs) are better. The uuid-ossp extension helps generate them.

Using `uuid-ossp`

After enabling uuid-ossp, you can create a table with a UUID primary key. Here's how to create a table and insert a row with a generated UUID:

-- First, ensure the extension is enabled (run once in SQL Editor)
-- CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

CREATE TABLE products (
  id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
  name TEXT NOT NULL,
  price NUMERIC
);

INSERT INTO products (name, price) VALUES
('Supabase T-Shirt', 25.00),
('Postgres Mug', 12.50);

SELECT id, name FROM products;

Fuzzy Search with `pg_trgm`

Have you ever searched for something and misspelled it, but still got relevant results? That's fuzzy search!

The pg_trgm extension helps you perform similarity searches based on trigrams (sequences of three characters). It's great for "did you mean?" features or finding close matches.

Using `pg_trgm` for Similarity

Let's enable pg_trgm and see how to find products with names similar to a search term. We'll use the similarity() function.

-- First, ensure the extension is enabled (run once in SQL Editor)
-- CREATE EXTENSION IF NOT EXISTS pg_trgm;

-- Create a sample table if it doesn't exist
CREATE TABLE IF NOT EXISTS articles (
  id SERIAL PRIMARY KEY,
  title TEXT NOT NULL
);

TRUNCATE TABLE articles; -- Clear previous data for fresh run
INSERT INTO articles (title) VALUES
('PostgreSQL Best Practices'),
('Supabase Authentication Guide'),
('Understanding Postgres Extensions'),
('Postgres Performance Tips');

-- Find titles similar to 'Postgres Extension'
SELECT title, similarity(title, 'Postgres Extension') AS score
FROM articles
WHERE similarity(title, 'Postgres Extension') > 0.3
ORDER BY score DESC;

Key-Value with `hstore`

Sometimes, you need to store flexible, unstructured data, like user preferences or product attributes, without creating many new columns.

The hstore extension provides a data type for storing sets of key/value pairs within a single column. It's like a mini-JSON object, but optimized for simple string key-value storage.

Using `hstore`

Let's add an hstore column to a table and store some flexible data. You can then query it using operators like -> to get a value by key.

-- First, ensure the extension is enabled (run once in SQL Editor)
-- CREATE EXTENSION IF NOT EXISTS hstore;

CREATE TABLE IF NOT EXISTS users (
  id SERIAL PRIMARY KEY,
  name TEXT NOT NULL,
  settings HSTORE
);

TRUNCATE TABLE users; -- Clear previous data for fresh run
INSERT INTO users (name, settings) VALUES
('Alice', 'theme=>dark, notifications=>true'),
('Bob', 'theme=>light, language=>en-US');

-- Query for users with dark theme
SELECT name, settings->'theme' AS user_theme
FROM users
WHERE settings->'theme' = 'dark';

Why Use Extensions?

PostgreSQL extensions offer several key benefits:

  • Extended Functionality: Add powerful features not available by default.
  • Performance: Many are highly optimized C functions, offering great speed.
  • Simplicity: Integrate complex logic directly into your database.

However, be mindful of over-reliance and ensure the extension is well-maintained and compatible with your Postgres version.

Extension Check

You've learned about a few powerful PostgreSQL extensions. Let's test your understanding!

Recap: Power Up Your Database!

In this lesson, we explored the world of PostgreSQL extensions! We learned that they are like powerful plugins that enhance your database's capabilities.

  • We saw how to enable extensions in Supabase.
  • We used uuid-ossp for generating unique IDs.
  • We used pg_trgm for fuzzy search.
  • We used hstore for flexible key-value storage.

These extensions help you build more robust and feature-rich applications directly within your database!

الأسئلة الشائعة

هل درس «استخدام إضافات Postgres» مجاني؟

نعم — نص درس «استخدام إضافات Postgres» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Supabase Backend as a Service، انتقل إلى CoddyKit PRO. تتضمن دورة Supabase Backend as a Service 3 دروس في المجموع.

ماذا ستتعلم في «استخدام إضافات Postgres»؟

اكتشف كيفية تفعيل إضافات PostgreSQL القوية واستخدامها لإضافة وظائف جديدة، مثل إنشاء UUID أو البحث في النصوص الكاملة تتمرن على Supabase Backend as a Service مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Supabase Backend as a Service؟

لا تُشترط خبرة سابقة. Supabase Backend as a Service على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 3.

كم من الوقت يستغرق درس «استخدام إضافات Postgres»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Supabase Backend as a Service هذا؟

نعم. كل درس في Supabase Backend as a Service يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. استخدام إضافات Postgres
  2. البيانات الجغرافية المكانية المتقدمة (PostGIS)
  3. البحث في النص الكامل والتضمينات المتجهية باستخدام pgvector
← العودة إلى Supabase Backend as a Service