スキル alembic
📦

alembic

低リスク ⚡ スクリプトを含む📁 ファイルシステムへのアクセス

إدارة ترحيلات قاعدة البيانات باستخدام Alembic

إدارة تغييرات مخطط قاعدة البيانات يدويًا عرضة للأخطاء ويصعب تتبعها. توفر هذه المهارة أنماط Alembic الشاملة لمشاريع SQLAlchemy، مما يتيح عمليات ترحيل آمنة وخاضعة لإدارة الإصدارات مع دعم غير متزامن وأفضل الممارسات.

対応: Claude Codex Code(CC)
⚠️ 67 貧弱
1

スキルZIPをダウンロード

2

Claudeでアップロード

設定 → 機能 → スキル → スキルをアップロードへ移動

3

オンにして利用開始

テストする

「alembic」を使用しています。 إنشاء ترحيل لإضافة جدول مستخدمين بأعمدة الاسم والبريد الإلكتروني

期待される結果:

```bash
# Generate the migration
uv run alembic revision --autogenerate -m "Add users table"

# Apply the migration
uv run alembic upgrade head
```

ينشئ هذا ملف ترحيل في alembic/versions/ مع تغيير المخطط. تقوم ميزة الإنشاء التلقائي بمقارنة نماذج SQLAlchemy الخاصة بك بحالة قاعدة البيانات الحالية وتنشئ عمليات الترقية/التخفيض المناسبة.

「alembic」を使用しています。 كيف أقوم بتخفيض قاعدة البيانات الخاصة بي بمراجعة واحدة؟

期待される結果:

```bash
# Show current revision first
uv run alembic current

# Roll back one migration
uv run alembic downgrade -1

# Verify the rollback
uv run alembic history
```

يمكنك أيضًا التخفيض إلى مراجعة محددة من خلال توفير رمز المراجعة: `uv run alembic downgrade ae1027a6acf`

「alembic」を使用しています。 إعداد Alembic لـ SQLAlchemy غير المتزامن مع PostgreSQL

期待される結果:

قم بتكوين env.py الخاص بك لاستخدام asyncpg:

```python
from sqlalchemy.ext.asyncio import async_engine_from_config

database_url = settings.database_url.replace("postgresql://", "postgresql+asyncpg://")
config.set_main_option("sqlalchemy.url", database_url)

async def run_async_migrations():
connectable = async_engine_from_config(
config.get_section(config.config_ini_section, {}),
prefix="sqlalchemy.",
poolclass=pool.NullPool,
)
async with connectable.connect() as connection:
await connection.run_sync(do_run_migrations)
```

セキュリティ監査

低リスク
v5 • 1/21/2026

Documentation-only skill containing Alembic migration patterns. All static findings are false positives: bash commands are documentation examples, database URL access is standard configuration, and flagged keywords appear in legitimate documentation context.

2
スキャンされたファイル
1,006
解析された行数
3
検出結果
5
総監査数
低リスクの問題 (1)
Documentation contains bash command examples
The skill contains bash commands in documentation for educational purposes. These are static examples, not executable code, and pose no security risk.

リスク要因

⚡ スクリプトを含む
特定の場所は記録されていません
📁 ファイルシステムへのアクセス (1)
監査者: claude 監査履歴を表示 →

品質スコア

38
アーキテクチャ
100
保守性
87
コンテンツ
21
コミュニティ
88
セキュリティ
83
仕様準拠

作れるもの

إضافة جداول وأعمدة جديدة

إنشاء وتطبيق الترحيلات عند إضافة جداول أو أعمدة قاعدة بيانات جديدة إلى تطبيق Python.

تعديل المخطط الحالي بأمان

إجراء تغييرات هيكلية على جداول قاعدة البيانات مع الحفاظ على البيانات وتمكين القدرة على التراجع.

تنسيق ترحيلات الفريق

تطبيق الترحيلات عبر بيئات التطوير والتجهيز والإنتاج مع تتبع الإصدارات.

これらのプロンプトを試す

إنشاء ترحيل جديد
أحتاج إلى إنشاء ترحيل لمشروع SQLAlchemy الخاص بي باستخدام Alembic. يجب أن يقوم الترحيل بـ [صف التغيير الخاص بك، مثل إضافة جدول مستخدمين بأعمدة البريد الإلكتروني وكلمة المرور]. أرني الأوامر لإنشاء وتطبيق هذا الترحيل.
تكوين Alembic غير المتزامن
قم بإعداد Alembic لـ SQLAlchemy 2.0 غير المتزامن في مشروعي. لدي رابط قاعدة بيانات وأحتاج إلى تكوين env.py للعمل مع الاتصالات غير المتزامنة. قدم التكوين الكامل.
التعامل مع ترحيلات SQLite
يستخدم مشروعي SQLite وأحتاج إلى إجراء تغييرات في المخطط. يشتكي Alembic من العمليات غير المدعومة. أرني كيفية استخدام وضع الدفعات وكتابة الترحيلات التي تعمل مع SQLite.
تخصيص الترحيلات المُنشأة تلقائيًا
أريد تخصيص كيفية إنشاء Alembic للترحيلات. على وجه التحديد، أريد [تخطي جداول معينة / إضافة منطق مخصص / تصفية الأعمدة]. أرني كيفية استخدام include_object أو process_revision_directives.

ベストプラクティス

  • قم دائمًا بتشغيل الإنشاء التلقائي مع --dry-run أولاً لمراجعة التغييرات قبل تطبيق الترحيلات
  • اختبر الترحيلات في بيئة تجهيز قبل النشر إلى الإنتاج
  • قم بتضمين رسائل ترحيل ذات مغزى تصف الغرض التجاري من التغيير
  • حافظ على عمليات التخفيض وظيفية لتمكين التراجع الآمن عن عمليات النشر الفاشلة

回避

  • تحرير ملفات الترحيل يدويًا بعد تطبيقها على قواعد البيانات المشتركة
  • تخطي خطوة المراجعة للترحيلات المُنشأة تلقائيًا دون فهم التغييرات
  • تطبيق الترحيلات دون التحقق مما إذا كانت قاعدة البيانات محدثة بالفعل
  • استخدام عمليات غير حتمية مثل NOW() أو RANDOM() في ملفات الترحيل

よくある質問

كيف أتحقق مما إذا كانت قاعدة البيانات الخاصة بي محدثة مع الترحيلات؟
قم بتشغيل `uv run alembic current` لرؤية المراجعة الحالية. ثم قارن مع `uv run alembic heads` لمعرفة ما إذا كانت هناك ترحيلات معلقة. يمكنك أيضًا استخدام النهج البرمجي الموضح في المهارة للتحقق من حالة قاعدة البيانات في الكود.
هل يمكنني استخدام Alembic مع SQLite؟
نعم، لكن SQLite يتطلب معالجة خاصة. استخدم `render_as_batch=True` في تكوين env.py لجميع العمليات. بعض عمليات ALTER TABLE تحتاج إلى إعادة كتابتها كـ COPY + DROP + CREATE في وضع الدفعات.
كيف أتخطى جداول معينة من الإنشاء التلقائي؟
قم بتعريف دالة `include_object` ترجع False للجداول أو الأعمدة التي تريد تخطيها. هذا مفيد للجداول المؤقتة أو الأعمدة المُدارة من النظام التي لا ينبغي أن تخضع لإدارة الإصدارات.
ما الفرق بين الترقية والتخفيض؟
الترقية تطبق الترحيلات للأمام (إضافة جداول، أعمدة، تغييرات). التخفيض يعكسها (يزيل ما أضافته الترقية). اكتب دائمًا كلا العمليتين حتى تكون الترحيلات قابلة للعكس.
كيف أنشئ ترحيل فرع للتطوير المتوازي؟
استخدم `uv run alembic revision -m "message" --head=base --branch-label=feature_name` لإنشاء فرع. ادمج الفروع باستخدام `uv run alembic merge -m "merge message" feature@head main@head`.
هل يمكنني تشغيل الترحيلات برمجيًا من كود Python؟
نعم، استخدم وحدة alembic.command. قم بإنشاء كائن Config واستدعِ command.upgrade() أو command.revision() مباشرة. هذا مفيد لنصوص النشر وتهيئة التطبيق.

開発者の詳細

作成者

bossjones

ライセンス

MIT

参照

main

ファイル構成

📄 SKILL.md