alembic
إدارة ترحيلات قاعدة البيانات باستخدام Alembic
إدارة تغييرات مخطط قاعدة البيانات يدويًا عرضة للأخطاء ويصعب تتبعها. توفر هذه المهارة أنماط Alembic الشاملة لمشاريع SQLAlchemy، مما يتيح عمليات ترحيل آمنة وخاضعة لإدارة الإصدارات مع دعم غير متزامن وأفضل الممارسات.
スキルZIPをダウンロード
Claudeでアップロード
設定 → 機能 → スキル → スキルをアップロードへ移動
オンにして利用開始
テストする
「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)
```
セキュリティ監査
低リスク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.
低リスクの問題 (1)
リスク要因
⚡ スクリプトを含む
📁 ファイルシステムへのアクセス (1)
品質スコア
作れるもの
إضافة جداول وأعمدة جديدة
إنشاء وتطبيق الترحيلات عند إضافة جداول أو أعمدة قاعدة بيانات جديدة إلى تطبيق Python.
تعديل المخطط الحالي بأمان
إجراء تغييرات هيكلية على جداول قاعدة البيانات مع الحفاظ على البيانات وتمكين القدرة على التراجع.
تنسيق ترحيلات الفريق
تطبيق الترحيلات عبر بيئات التطوير والتجهيز والإنتاج مع تتبع الإصدارات.
これらのプロンプトを試す
أحتاج إلى إنشاء ترحيل لمشروع SQLAlchemy الخاص بي باستخدام Alembic. يجب أن يقوم الترحيل بـ [صف التغيير الخاص بك، مثل إضافة جدول مستخدمين بأعمدة البريد الإلكتروني وكلمة المرور]. أرني الأوامر لإنشاء وتطبيق هذا الترحيل.
قم بإعداد Alembic لـ SQLAlchemy 2.0 غير المتزامن في مشروعي. لدي رابط قاعدة بيانات وأحتاج إلى تكوين env.py للعمل مع الاتصالات غير المتزامنة. قدم التكوين الكامل.
يستخدم مشروعي SQLite وأحتاج إلى إجراء تغييرات في المخطط. يشتكي Alembic من العمليات غير المدعومة. أرني كيفية استخدام وضع الدفعات وكتابة الترحيلات التي تعمل مع SQLite.
أريد تخصيص كيفية إنشاء Alembic للترحيلات. على وجه التحديد، أريد [تخطي جداول معينة / إضافة منطق مخصص / تصفية الأعمدة]. أرني كيفية استخدام include_object أو process_revision_directives.
ベストプラクティス
- قم دائمًا بتشغيل الإنشاء التلقائي مع --dry-run أولاً لمراجعة التغييرات قبل تطبيق الترحيلات
- اختبر الترحيلات في بيئة تجهيز قبل النشر إلى الإنتاج
- قم بتضمين رسائل ترحيل ذات مغزى تصف الغرض التجاري من التغيير
- حافظ على عمليات التخفيض وظيفية لتمكين التراجع الآمن عن عمليات النشر الفاشلة
回避
- تحرير ملفات الترحيل يدويًا بعد تطبيقها على قواعد البيانات المشتركة
- تخطي خطوة المراجعة للترحيلات المُنشأة تلقائيًا دون فهم التغييرات
- تطبيق الترحيلات دون التحقق مما إذا كانت قاعدة البيانات محدثة بالفعل
- استخدام عمليات غير حتمية مثل NOW() أو RANDOM() في ملفات الترحيل