data-migration-scripts
データベーススキーマの変更、システム間のデータ移行、大規模なデータ変換を行う際に使用します。ロールバック機能、データバリデーション、ゼロダウンタイムデプロイメントを備えた、安全で可逆性のあるデータベースマイグレーションスクリプトを生成します。
description の原文を見る
> Create safe, reversible database migration scripts with rollback capabilities, data validation, and zero-downtime deployments. Use when changing database schemas, migrating data between systems, or performing large-scale data transformations.
SKILL.md 本文
データマイグレーションスクリプト
目次
概要
データベーススキーマの変更とデータ変換を、最小限のダウンタイムで実行するための堅牢で安全、かつ可逆的なマイグレーションスクリプトを作成します。
使用場面
- データベーススキーマの変更
- カラムの追加/削除/変更
- データベースシステム間での移行
- データの変換とクリーンアップ
- テーブルの分割またはマージ
- データ型の変更
- インデックスと制約の追加
- データの埋め戻し
- マルチテナントデータの移行
クイックスタート
最小限の動作例:
import { Knex } from "knex";
// migrations/20240101000000_add_user_preferences.ts
export async function up(knex: Knex): Promise<void> {
// Create new table
await knex.schema.createTable("user_preferences", (table) => {
table.uuid("id").primary().defaultTo(knex.raw("gen_random_uuid()"));
table
.uuid("user_id")
.notNullable()
.references("id")
.inTable("users")
.onDelete("CASCADE");
table.jsonb("preferences").defaultTo("{}");
table.timestamp("created_at").defaultTo(knex.fn.now());
table.timestamp("updated_at").defaultTo(knex.fn.now());
table.index("user_id");
});
// Migrate existing data
await knex.raw(`
INSERT INTO user_preferences (user_id, preferences)
SELECT id, jsonb_build_object(
'theme', COALESCE(theme, 'light'),
// ... (see reference guides for full implementation)
リファレンスガイド
詳細な実装は references/ ディレクトリを参照してください:
| ガイド | 内容 |
|---|---|
Knex.js Migrations (Node.js) | Knex.js Migrations (Node.js) |
Alembic Migrations (Python/SQLAlchemy) | Alembic Migrations (Python/SQLAlchemy) |
Large Data Migration with Batching | バッチ処理による大規模データマイグレーション |
Zero-Downtime Migration Pattern | ゼロダウンタイムマイグレーションパターン |
Migration Validation | マイグレーション検証 |
Cross-Database Migration | クロスデータベースマイグレーション |
ベストプラクティス
✅ やるべきこと
- 常に
upとdownの両方のマイグレーションを実装する - 本番環境に似たデータでマイグレーションをテストする
- アトミックな操作にはトランザクションを使用する
- 大規模なデータセットはバッチで処理する
- データ挿入後にインデックスを追加する
- マイグレーション後にデータを検証する
- 進捗状況とエラーをログに記録する
- アプリケーションコード変更にはフィーチャーフラグを使用する
- マイグレーション実行前にデータベースをバックアップする
- ロールバック手順をテストする
- マイグレーションの副作用をドキュメント化する
- すべてのマイグレーションをバージョン管理する
- べき等な操作を使用する
❌ やってはいけないこと
- テストされていないマイグレーションを本番環境で実行する
- 後方互換性のない破壊的な変更を行う
- 数百万行のデータを1つのトランザクションで処理する
- ロールバック実装をスキップする
- マイグレーション失敗を無視する
- 古いマイグレーションを修正する
- バックアップなしでデータを削除する
- 本番環境でマイグレーションを手動で実行する
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- aj-geddes
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/aj-geddes/useful-ai-prompts / ライセンス: MIT
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。