このプロジェクトについて

migrateは、Goで書かれたデータベースマイグレーションツールで、コマンドラインインターフェースとして、またはGoプロジェクトにライブラリとしてインポートして使用できます。mattes/migrateからフォークされました。 動作仕組み: migrateは設定されたソースからマイグレーションファイルを読み取り、正しい順序でターゲットデータベースに適用します。設計上、データベースドライバは軽量で「愚か」に保たれており、migrate自身がロジックを調整し動作を検証します。ドライバはユーザー入力を推測したり修正したりせず、疑わしい場合は失敗します。 対応データベース: PostgreSQL、PGX v4およびv5、Redshift、Ql、Cassandra/ScyllaDB、SQLite、SQLite3、SQLCipher、MySQL/MariaDB、Neo4j、MongoDB、CrateDB、Shell、Google Cloud Spanner、CockroachDB、YugabyteDB、ClickHouse、Firebird、MS SQL Server、rqlite。接続文字列はdbdriver://username:password@host:port/dbname?param1=trueのようなURL形式を使用し、URLの予約文字はパーセントエンコードする必要があります。 マイグレーションソース: ローカルファイルシステム、Go io/fs、Go-Bindata、pkger、GitHub、GitHub Enterprise、Bitbucket、GitLab、AWS S3、Google Cloud Storage。 CLIはライブラリの薄いラッパーであり、Ctrl+C(SIGINT)を適切に処理し、設定検索パス、設定ファイル、マジック環境変数の注入を意図的に避けています。基本的な呼び出し例: migrate -source file://path/to/migrations -database postgres://localhost:5432/database up 2。Dockerイメージ(migrate/migrate)も公開されています。 Goライブラリとして、APIはv3およびv4リリースで安定かつ凍結されていると説明されており、Goモジュールを使用し、GracefulStopチャネルによるグレースフルストップをサポートしてデータベース破損を防ぎ、独自のロガーを持ち込むことができ、内部でio.Readerストリームを使用してメモリオーバーヘッドを低く抑え、スレッドセーフでgoroutineリークがないと説明されています。スタンドアロンで使用するか、WithInstanceを介して既存のデータベースクライアントと併用できます。 マイグレーションファイルはアップとダウンのペアで提供されます。例: 1481574547_create_users_table.up.sql と .down.sql。プロジェクトは、入門ガイド、CockroachDBとPostgreSQLのチュートリアル、マイグレーション作成のベストプラクティスドキュメント、FAQへのリンクを提供しています。バージョンv3はサポートされなくなりました。v4とmasterがサポート対象です。